xml数据转换为excel

时间:2015-06-26 15:13:31

标签: c# xml excel type-conversion

如何将以下数据转换为Excel。输入数据位于.txt个文件中,如下所示:

<xml>1,4,,5,<header>2,44,,55,6,2,</header></xml>
<xml><header>23,5,6,,2</header>3,4,5,66,,</xml>

and so on..

基本上剥离标签并将数据放入excel。每个数字应该在它自己的单元格中,空白值应该导致空白单元格。对于上面的示例,.xls中的输出应该看起来像这样..

1 4   5  2 44  55 6 2  
23 5 6  2 3 4 5 66  

无法进行任何格式化以使输出看起来更好,但基本上每个数字都在自己的单元格中,而空白则缺少数据。通过数据丢失,我在输入中的两个逗号之间没有任何意义,如上所示(,,)。

在人们问我尝试了什么之前,我正在将数据转换为csv,然后使用EPPlus将其写入excel文件但是有太多问题,它不是直接转换,数据是没有正确写,我的代码太乱了。所以排除故障并修复它并不是一个好主意。我确信有一个更简单的解决方案。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

如果可以使用XSLT,则可以使用以下样式表:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

   <xsl:output method="text"/>

   <xsl:strip-space elements="*"/>

   <xsl:template match="row">
      <xsl:value-of select="."/>
      <xsl:text>&#10;</xsl:text>
   </xsl:template>

</xsl:stylesheet>

应用于以下输入:

<input>
   <row>1,4,,5,<header>2,44,,55,6,2,</header></row>
   <row><header>23,5,6,,2</header>3,4,5,66,,</row>
</input>

生成以下CSV:

1,4,,5,2,44,,55,6,2,
23,5,6,,23,4,5,66,,

您也可以轻松添加一些列标题。

答案 1 :(得分:0)

所以在我真正花时间运行示例之后的最后几步:

1)在任何文本编辑器中加载文件

2)找到一种方法来运行“&lt;。*&gt;”的查找并替换为“”

3)使用.csv扩展名保存文件

4)在下一次开放时尝试用excel打开

- 这些步骤产生了你想要的东西