0

我熟悉将普通的 excel 表转换为 xml,这几乎是一个平面结构。我的问题是我的表格有跨越所有表格列的标题。我无法将我的架构映射到单元格。月份将作为新行自动添加到成本节点。见例子。

成本 销售 利润
一月
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>

预先感谢您的帮助

4

1 回答 1

0

我不知道您可以调整多少源 Excel 工作表以及是否可以对 XML 文件进行后处理。

您可以插入一个“结转”月份的辅助列,尽管这不会帮助您完全摆脱整个月份。

在此处输入图像描述

有了这个,我得到了以下 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安德烈亚斯

于 2012-04-23T09:53:25.410 回答