将XML快速转换为Excel

时间:2010-04-13 17:01:07

标签: xml excel xslt

将XML中的112K行转换为Excel视图的最快(最少努力,而非超级性能)方法是什么。

7 个答案:

答案 0 :(得分:26)

为什么这么复杂?只需打开File with File-> Open即可 选择xml并加载它。看看会发生什么。

答案 1 :(得分:6)

如果您正在使用Excel 2007并希望使用XSLT,那么您最好的选择可能是使用EXPath Zip Module功能来修改现有的Excel .xslx文件。

但是,我首选的选项是使用小型Excel VBA宏。

我在下面列出了一个名为'load'的VBA过程的示例代码 - 此示例使用XML DOM,因此所有112K行的XML将首先加载到内存中,但如果性能不是问题则更简单比SAX替代品。

您需要修改xpathToExtractRow以适合您的XML输入结构。还假设XML行元素的直接子节点包含要作为文本节点导入的单元格数据,否则,您将需要使用SelectNode调用来获取所需的数据。 / p>

私人dom As DOMDocument60

Public Sub load()

Dim nodeList As IXMLDOMNodeList
Dim nodeRow As IXMLDOMNode
Dim nodeCell As IXMLDOMNode
Dim rowCount As Integer
Dim cellCount As Integer
Dim rowRange As Range
Dim cellRange As Range
Dim sheet As Worksheet

Dim xpathToExtractRow As String
xpathToExtractRow = "/feed/row"

Set dom = New DOMDocument60
dom.load ("c:\test\source.xml")
Set sheet = ActiveSheet
Set nodeList = dom.SelectNodes(xpathToExtractRow)

rowCount = 0
For Each nodeRow In nodeList
    rowCount = rowCount + 1
    cellCount = 0
    For Each nodeCell In nodeRow.ChildNodes
        cellCount = cellCount + 1
        Set cellRange = sheet.Cells(rowCount, cellCount)
        cellRange.Value = nodeCell.Text
    Next nodeCell
Next nodeRow

End Sub

示例输入XML:

<?xml version="1.0" encoding="utf-8"?>
<feed>
  <row>
    <firstname>joe</firstname>
    <lastname>smith</lastname>
    <country>jamaica</country>
  </row>
  <row>
    <firstname>bill</firstname>
    <lastname>coots</lastname>
    <country>uk</country>
  </row>
</feed>

答案 2 :(得分:1)

我建议使用Eurostat SDMX Converter,它是一个java程序,因此它与平台无关。使用Generic XML文件作为输入,使用Structure XMLfile作为DSD文件。

答案 3 :(得分:1)

您可以使用http://xmlgrid.net/xmlToExcel.html将XML转换为Excel。 XmlGrid允许您选择要转换为Excel文件的XML文档的根或任何其他元素。转换后的Excel文件将包含一张或多张纸,具体取决于XML文档的结构。

答案 4 :(得分:0)

可能只是用某种高级语言读取XML(JAVA,C#等都有这样的功能),将文件写成.csv文件,然后使用Data-&gt; Import功能将其导入excel 。

可能有更好的方法,但这只是一种简单的方法。

答案 5 :(得分:0)

  1. 打开XML文件。
  2. 右键单击页面并选择“导出到Microsoft Excel”。
  3. 点击打开的Excel页面,然后选择导入。
  4. Excel会通知您它将创建自己的架构。点击确定。
  5. Excel将询问您将数据放在何处,并默认为单元$ A $ 1。点击确定。
  6. 完成:)。

答案 6 :(得分:0)

我们制作了一个视频,其中显示了how to convert XML to Excel上的分步说明。

XML转换视频经历以下步骤

  • 将XML文件上传到Flexter(我们的免费XML转换器)

  • 将XML转换为文本文件(制表符分隔值,TSV)

  • 将文本文件导入Excel

  • 加入Excel中的数据集

  • 分析Excel PowerPivot表中的数据