programing

excel: xml 데이터를 저장하거나 내보낼 수 없습니다.이 워크북의 xml 맵은 내보낼 수 없습니다.

linuxpc 2023. 6. 30. 22:08
반응형

excel: xml 데이터를 저장하거나 내보낼 수 없습니다.이 워크북의 xml 맵은 내보낼 수 없습니다.

다른 XML 파일에서 가져온 데이터를 수정한 후 XML 파일로 데이터를 다시 내보내려고 합니다(첫 번째 줄 변수는 변경되지 않음).

개발자 >> 내보내기를 클릭하면

Excel 표시:

XML 데이터를 저장하거나 내보낼 수 없습니다.이 워크북의 XML 맵은 내보낼 수 없습니다.

제가 데이터를 수정하기 위해 아무것도 하지 않을 때도 이런 일이 발생합니다.

유튜브에서 몇 가지 내보내기 튜토리얼을 봤지만 아무도 제 문제를 다루지 않았습니다.

일반적인 이유는 Excel이 매우 복잡한 XML을 이해하지 못하기 때문입니다.

office.microsoft.com 에서:

매핑된 요소와 다른 요소의 관계를 유지할 수 없는 경우 XML 매핑을 내보낼 수 없습니다.다음과 같은 이유로 이 관계가 유지되지 않을 수 있습니다.

매핑된 요소의 스키마 정의는 다음 속성을 가진 시퀀스에 포함됩니다.

  • maxocurs 특성이 1과 같지 않습니다.
  • 시퀀스에 두 개 이상의 직접 자식 요소가 정의되었거나 다른 구성 요소가 직접 자식 요소로 있습니다.
  • 반복되는 상위 요소가 동일한 비반복 형제 요소는 서로 다른 XML 테이블에 매핑됩니다.
  • 여러 반복 요소가 동일한 XML 테이블에 매핑되며 반복은 상위 요소에 의해 정의되지 않습니다.
  • 서로 다른 부모의 자식 요소가 동일한 XML 테이블에 매핑됩니다.

또한 XML 매핑에 다음 XML 스키마 구조 중 하나가 포함되어 있으면 내보낼 수 없습니다.

목록

  • 한 항목 목록에는 두 번째 항목 목록이 포함됩니다.

정규화되지 않은 데이터

  • XML 테이블에는 스키마에서 한 번 발생하도록 정의된 요소가 포함되어 있습니다(maxocurs 특성은 1로 설정됨).XML 테이블에 이러한 요소를 추가하면 Excel은 해당 요소의 여러 인스턴스로 테이블 열을 채웁니다.

선택.

  • 매핑된 요소는 스키마 구조의 일부입니다.

저의 경우 기존 xsd 또는 xml 파일 없이 간단한 테이블을 xml 파일로 내보내고 싶었습니다.그래서 이렇게 했습니다.

  1. xsd 파일 생성(아래 샘플 참조)
  2. 이 xsd를 Excel로 가져오기
  3. xml 구조의 노드를 열에 연결합니다(아래 화면 참조)
  4. 시트를 xml 파일로 내보내기

1단계 xsd 파일 생성

나는 다음 xsd를 편집기에 써서 파일에 저장했습니다.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="Sample_XML_Export">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Foo" type="xsd:int"/>
              <xsd:element name="Bar" type="xsd:string"/>
              <xsd:element name="Baz" type="xsd:int" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

2단계 xsd 파일 가져오기

이 xsd 파일을 Excel로 가져와야 합니다.엑셀에서 개발자 탭을 활성화해야 합니다.이 탭에서 XML 원본에서 가져올 수 있습니다("XML..." 버튼 참조).

Import_XSD

xsd 파일을 가져오면 트리 구조가 표시됩니다(폴더 참조).Root그리고.Sample_XML_Export).

3단계 xml 노드를 열에 매핑

이제 아래의 노드를 연결해야 합니다.Sample_XML_Export우수한 수준으로노드를 선택하고 마우스 오른쪽 버튼으로 클릭하여 이 노드를 열에 매핑합니다.

Relate column step 1

이제 열 머리글을 클릭하여 노드와 관련지어 매핑할 열을 선택합니다.

Relate column step 2

4단계 xml로 저장

파일 / 다른 이름으로 저장 또는 내보내기에서 xls 파일을 xml 파일로 저장할 수 있습니다.내보낸 xml 데이터입니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
    <Sample_XML_Export>
        <Foo>1234</Foo>
        <Bar>122</Bar>
        <Baz>12</Baz>
    </Sample_XML_Export>
    <Sample_XML_Export>
        <Foo>4567</Foo>
        <Bar>144</Bar>
        <Baz>13</Baz>
    </Sample_XML_Export>
    <Sample_XML_Export>
        <Foo>7890</Foo>
        <Bar>187</Bar>
        <Baz>14</Baz>
    </Sample_XML_Export>
</Root>

저도 비슷한 문제가 있었습니다.단순한 시트로 8개의 열만 포함되어 있었는데 XML 내보내기에서 계속 오류가 발생했습니다.XML 스키마에 요소가 나타나는 순서가 시트에 열이 나타나는 순서와 일치하지 않으면 이 오류가 발생했습니다.시트의 열을 스키마의 요소 순서와 동일하게 다시 정렬하여 내보내기에 성공했습니다.

많은 웹 페이지에는 xml(https://www.excel-easy.com/examples/xml.html) 로 내보내는 방법에 대한 지침이 있습니다.기존 데이터에 대한 스키마를 만들 때 다음과 같이 실행했습니다.

  1. 행에 대한 단일 외부 래퍼 태그가 있다는 것을 잊었습니다(이 페이지로 이동한 주요 오류 이유).
  2. 데이터 유형을 제대로 이해하지 못했습니다(숫자처럼 보이는 것은 실제로 텍스트였습니다. 더 귀찮은 것 같습니다만, 제가 먼저 고쳤습니다).

스키마로 변환되는 XML은 다음과 같아야 합니다(두 개의 "샘플 행"이 필요한지는 모르겠지만 외부 태그를 기억하는 데 도움이 됩니다).

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<singleOuterWrapperTag>
    <rowTag>
        <columnA>Data Type (numeric, text)</columnA>
        <columnB>Data Type</columnB>
    </rowTag>
    <rowTag>
        <columnA>Data Type (numeric, text)</columnA>
        <columnB>Data Type</columnB>
    </rowTag>
</singleOuterWrapperTag>

그래서 저는 여기에 제 해결책을 제공할 것입니다.물론, 그것은 당신의 것이 아닐 수도 있지만, 그럼에도 불구하고 유용한 정보이며, 누군가에게 도움이 될 것이라고 확신합니다.

스키마 대신 XML 인스턴스를 가져온 경우 Excel이 해당 인스턴스에서 스키마를 잘못 추론한다는 것을 알게 되었습니다.이는 반복 가능한 레코드가 맵을 만들 때 사용한 XML 내의 인스턴스가 하나뿐이기 때문입니다. (나중에 가져올 템플릿을 만드는 중입니다. 아직 기존 데이터를 가져오려고 하지 않아서 더미 데이터가 들어 있는 레코드가 하나만 있었습니다.)첫 번째 인스턴스 아래에 더미 데이터가 있는 기록을 복사해서 두 개의 기록이...그리고 모든 것이 황금빛이었습니다.수입과 수출이 갑자기 작동했습니다.

저와 같은 배에 타고 계신 분들을 위한 메모입니다.

XSD 요소를 스키마에서 주석 처리했을 때 이 오류가 발생했습니다.코멘트 아웃 요소를 제거했을 때 매력적으로 작동했습니다.

저한테는 효과가 있었어요, 당신은 필터를 제거해야 합니다.

언급URL : https://stackoverflow.com/questions/12794136/excel-cannot-save-or-export-xml-data-the-xml-map-in-this-workbook-are-not-expo

반응형