Создание XML из Excel - PullRequest
       3

Создание XML из Excel

0 голосов
/ 25 февраля 2019

Я использую Excel для Office 365 ProPlus.И я пытаюсь создать XML-файл из данных Excel (не более 100 строк).

Начинается со следующего образца файла схемы:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record>
       <LastName>Smith</LastName>
       <Sales>16753</Sales>
       <Country>UK</Country>
       <Quarter>Qtr 3</Quarter>
    </record>
    <record>
       <LastName>Johnson</LastName>
       <Sales>14808</Sales>
       <Country>USA</Country>
       <Quarter>Qtr 4</Quarter>
    </record>
</data-set>

И это работает на примерефайл данных: Sample Excel table

Сейчас я пробую ту же схему на извлечении из моих реальных данных (хотя на самом деле мне понадобится более сложная схема с 2 слоями - см. ниже): Some real Excel data

Теперь я получаю сообщение об ошибке: «... не экспортируется, поскольку содержит следующее: Невозможно сохранить взаимосвязь сопоставленных элементов с другими элементами.".

Я могу быть слепым, но я не вижу принципиальной разницы между двумя источниками.Я пытался скопировать форматирование, переназначение с нуля, переименование столбцов безрезультатно.

У кого-нибудь есть идеи, как заставить его работать?

Кстати,моя желаемая схема будет выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Graduate>
<HUSID>1600000000003</HUSID>
<OWNSTU>8936</OWNSTU>
<COUNTRY>XF</COUNTRY>
<EMAIL>a@the.uk</EMAIL>
<FNAMES>Diana</FNAMES>

<SURNAME>XYZ</SURNAME>
<UKTEL>02080000000</UKTEL>
<UKMOB>07700000000</UKMOB>
<PostalAddress>
<ADDRESSLN1>36 Street </ADDRESSLN1>
<ADDRESSLN2>London</ADDRESSLN2>
<ADDRESSLN4>United Kingdom</ADDRESSLN4>
<POSTCODE>HA7 HA7</POSTCODE>
</PostalAddress>
</Graduate>
<Graduate>
<HUSID>160000000013</HUSID>
<OWNSTU>8936</OWNSTU>
<COUNTRY>XF</COUNTRY>
<EMAIL>d@the.uk</EMAIL>
<FNAMES>Ana</FNAMES>

<SURNAME>LLL</SURNAME>
<UKTEL>02089999999</UKTEL>
<UKMOB>07777777777</UKMOB>
<PostalAddress>
<ADDRESSLN1>36  Park ,</ADDRESSLN1>
<ADDRESSLN2>London</ADDRESSLN2>
<ADDRESSLN4>United Kingdom</ADDRESSLN4>
<POSTCODE>HA7 HA8</POSTCODE>
</PostalAddress>
</Graduate>
</data-set>

1 Ответ

0 голосов
/ 26 февраля 2019

решено (хотя у меня до сих пор нет объяснения, почему этот обходной путь был необходим).

  1. Оставьте все столбцы, которые вам нужно отобразить, рядом друг с другом и впорядок тегов в вашей схеме;
  2. Не уверен, что это обязательно, но пустые значения могут помешать отображению ячеек после них;
  3. Перетащите тег верхнего уровня (GRADUATE в моем случае) впервая ячейка данных в первом столбце (может работать с заголовком, но еще не проверена);

Теперь все столбцы будут сопоставлены в их порядке и порядке тегов в вашей схеме.Сообщение изменится на Map is exportable.

Комментарии приветствуются теми, кто может объяснить, почему сопоставление работает таким образом, а не путем сопоставления отдельных тегов, как предлагают все руководства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...