2015-06-26 62 views
-1

如何将以下数据转换为excel。输入数据是.txt文件,看起来像这样:xml data to excel转换

<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文件,但有太多问题,它不是直接转换和数据没有被正确写入,我的代码太杂乱。因此,排除故障并修复问题不是一个好主意。我确信有一个更简单的解决方案。任何帮助将不胜感激!

+0

看起来好像如果你可以简单地去掉所有标签数据已经是csv格式,这个excel可以处理 – pasquers

+0

就像一个解决方法,你可以尝试用单独的替换doble逗号(',,')逗号(',')在csv文件中。 –

+0

例如,您可以在大多数编辑器中用“”代替所有“<.*>” – pasquers

回答

0

所以最终的步骤后,我居然拿了通过例如运行时间:

1)在任何文本编辑器

2)找到一种方式来运行的“<一个发现加载文件。 *>”,并与替换 “”

3)保存该文件上在下一个开口尝试开口.csv扩展

4)使用Excel

个-those步骤产生你想要什么我

+0

我试过这样做,但是在某些情况下,某些数据元素非常长,在这种情况下,它们会跨越2-3个单元格。我想要1个单元格中的每个数字。这是我注意到的一个问题。其次,如果输入类似于12:30,则Excel将其显示为##### – sparta93

+0

hmmm。我们必须使用不同版本的Excel。输入一个很长的数字对我来说是四舍五入的,并且12:30被转换为12:30:00 ....你使用的是什么版本的excel? – pasquers

+0

可能,我正在使用Excel 2010 – sparta93

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,, 

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