从Excel创建XML

时间:2019-02-25 16:55:31

标签: excel xml

我正在将Excel用于Office 365 ProPlus。 而且我正在尝试根据Excel数据(不超过100行)创建XML文件。

从以下示例架构文件开始:

<?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 :(得分:1)

已解决(尽管我仍然无法解释为什么需要这种解决方法)。

  1. 将需要映射的所有列并按照架构中标记的顺序相邻放置;
  2. 不确定这是强制性的-但空白值可能会阻止它们后面的单元格映射;
  3. 将顶级标签(在我的情况下为GRADUATE)拖到第一列中的第一个数据单元中(可能与标头一起使用,但尚未经过测试);

现在,您将按其顺序和架构中标记的顺序映射所有列。该消息将更改为Map is exportable

欢迎那些可以解释为什么映射如此起作用的人发表评论,而不是按照所有手册的建议映射单个标签。