将未格式化的Excel转换为XML

时间:2012-04-14 01:46:23

标签: xml excel

我熟悉将普通的excel表转换为xml,这几乎是一个扁平的结构。我的问题是我的表有包含所有表列的标题。我无法将我的Schema映射到Cells。这些月份会自动作为新行添加到成本节点。见例。

成本销售利润
      一月
100 150 50
20 40 20
      二月
100 150 50
20 40 20
      三月
100 150 50
20 40 20

这是我正在寻找的XML结果

<Sales>  
 <Period>  
   <Month>January</Month>  
   <Cost>100</Cost>  
   <Sell>150</Sell>  
   <Profit>50</Profit>  
  </Period>  
  <Period>  
   <Month>February</Month>  
   <Cost>100</Cost>  
   <Sell>150</Sell>  
   <Profit>50</Profit>  
  </Period>  
  <Period>  
   <Month>March</Month>  
   <Cost>100</Cost>  
   <Sell>150</Sell>  
   <Profit>50</Profit>  
 </Period>  
</Sales>

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我不知道您可以调整source-excel表单的数量,以及是否可以对XML文件进行后处理。

你可以插入一个“结转”月份的辅助列,但这不会帮助你彻底摆脱月份的骚扰。

enter image description here

有了这个,我得到以下XML导出。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Sales xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Period>
    <Month>January</Month>
    <Cost>January</Cost>
</Period>
<Period>
    <Month>January</Month>
    <Cost>100</Cost>
    <Sell>150</Sell>
    <Profit>50</Profit>
</Period>
<Period>
    <Month>January</Month>
    <Cost>20</Cost>
    <Sell>40</Sell>
    <Profit>20</Profit>
</Period>
[...]
</Sales>

然后,您可以使用适当的XSLT对此导出进行后处理,以消除仅限月份的行。或者更进一步使用辅助列,以便仅月份行将全部为空(即计算2个月的列和仅具有数值的成本列)。但我无法看到完全消除这些界限的方法。

HTH Andreas