Excel: не удается сохранить или экспортировать данные XML. Карта XML в этой книге не экспортируется
Я столкнулся с проблемой экспорта в XML Excel. Чтобы упростить вопрос, я делаю следующие шаги:
1.Данные >> из импорта данных XML.
На самом деле, я хочу снова экспортировать его в XML-файл после некоторой модификации данных (эти переменные первой строки никогда не меняются)
2. Затем нажмите "Разработать" >> "Экспорт". Он показывает "невозможно сохранить или экспортировать данные XML. Карты XML в этой книге не экспортируются". (даже я ничего не делаю модификации по данным). Я уже смотрю несколько видеороликов по экспорту на YouTube, но, похоже, не решаю проблему. Я еще не нашел проблему.
7 ответов
Обычная причина в том, что Excel не понимает очень сложный XML.
XML-сопоставление не может быть экспортировано, если связь сопоставленного элемента с другими элементами не может быть сохранена. Эта связь не может быть сохранена по следующим причинам:
Определение схемы сопоставленного элемента содержится в последовательности со следующими атрибутами:
- Атрибут maxoccurs не равен 1.
- В последовательности определено более одного прямого дочернего элемента или другой композитор является прямым дочерним элементом.
- Неповторяющиеся элементы с одним и тем же повторяющимся родительским элементом отображаются в разные таблицы XML.
- Несколько повторяющихся элементов отображаются в одну и ту же таблицу XML, и повторение не определяется элементом-предком.
- Дочерние элементы от разных родителей отображаются в одну и ту же таблицу XML.
Кроме того, сопоставление XML нельзя экспортировать, если оно содержит одну из следующих конструкций схемы XML:
Список списков
- Один список предметов содержит второй список предметов.
Денормализованные данные
- Таблица XML содержит элемент, который был определен в схеме для однократного выполнения (атрибут maxoccurs установлен в 1). Когда вы добавляете такой элемент в таблицу XML, Excel заполняет столбец таблицы несколькими экземплярами элемента.
Выбор
- Сопоставленный элемент является частью конструкции схемы.
В моем случае я хотел экспортировать простую таблицу в виде файла xml без ранее существовавшего файла xsd или xml. Так что я сделал это
- Создайте файл xsd (см. пример ниже)
- Импортируйте этот xsd в excel
- Свяжите узлы в структуре xml со столбцом (см. экран ниже)
- Экспорт листа в виде 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. Вам нужно активировать вкладку разработчика в Excel . На этой вкладке вы можете импортировать данные из источника XML (см. кнопку "XML...").
После импорта файла xsd вы увидите древовидную структуру (см. папкуRoot
и ).
Шаг 3. Сопоставьте узлы xml со столбцами
Теперь вам нужно связать узел нижеSample_XML_Export
в excel-столбец. Выберите узел и щелкните его правой кнопкой мыши, чтобы сопоставить этот узел со столбцом.
Теперь выберите столбец, который вы хотите сопоставить / связать с узлом, щелкнув заголовок столбца.
Шаг 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, не соответствует порядку, в котором столбцы появляются на листе, я получаю эту ошибку. Я изменил порядок столбцов на своем листе, чтобы они соответствовали порядку элементов в схеме, и экспорт прошел успешно.
Я видел эту ошибку, когда в схеме был закомментирован элемент XSD. Когда я удалил закомментированный элемент, он сработал как шарм.
На многих веб-страницах есть инструкции по экспорту в xml (пример: https://www.excel-easy.com/examples/xml.html). Когда я создавал схему для уже существующих данных, я натолкнулся на следующее.
- забыл иметь один внешний тег оболочки для строк (основная причина ошибки, которая привела меня на эту страницу)
- не правильно понимал типы данных (то, что выглядело как числовое, на самом деле было текстом - я думаю, больше неудобно, но сначала я исправил это).
Ваш 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, который я использовал для создания карты. (Я создаю здесь шаблон для будущего импорта, пока не пытаюсь импортировать существующие данные, поэтому у меня была только одна запись с некоторыми фиктивными данными в ней.) Я просто скопировал запись с фиктивными данными под ее первым экземпляром, чтобы там было две записи ... и все было золотым. Импорт и экспорт неожиданно заработали.
Просто на заметку для тех из вас, кто находится в той же лодке, что и я.