将XML快速转换为Excel

什么是最快(如最less的努力,而不是超级性能)的方式来将XML中的112K行转换为Excel视图。

如果您使用的是Excel 2007并希望使用XSLT,则最好的方法是使用EXPath Zip Modulefunction来修改现有的Excel .xslx文件。

然而,我的首选选项是使用一个小的Excel VBAmacros。

我已经在下面包含了一个名为“load”的VBA过程示例代码 – 这个示例使用XML DOM,所以您的XML的所有112K行将首先加载到内存中,但是如果性能不是问题,则比SAX简单替代。

您将需要修改xpathToExtractRow以适合您的XMLinput结构。 还假定XML行元素的直接子节点包含要作为文本节点导入的单元格数据,如果不是,则需要使用SelectNode调用来获取所需的数据。

私人DOM作为DOMDocument60

公共小负载()

 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 

结束小组

示例inputXML:

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

为什么这么复杂? 只需打开文件 – >打开selectXML并加载它。 看看会发生什么。

如果你有Windows 7+,使用PowerShell。 这非常快捷。

一内胆:

 ([xml](Get-Content myfile.xml)).xml.note | Export-Csv myoutput.csv 

为了使单行工作,您需要修改.xml.note代码以反映您的XML文件的结构。

myfile.xml的以下内容为例:

 <xml> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note> <to>Jason</to> <from>Alice</from> <heading>Help</heading> <body>I can't figure this out.</body> </note> </xml> 

您可以将XML分配给像这样的variables:

 [xml]$data = Get-Content myfile.xml 

现在你可以做各种各样的事情:

 $data.GetElementsByTagName('note') 

或干脆

 $data.xml.note.from 

我build议使用Eurostat SDMX Converter ,这是一个Java程序,所以它是平台独立的。 使用通用XML文件作为input,使用Structure XMLfile作为DSD文件。

可能只是用一些高级语言(JAVA,C#等)来读取XML,然后将这些文件写成一个.csv文件,然后使用Data-> Importfunction将其导入到Excel中。

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

您可以使用http://xmlgrid.net/xmlToExcel.html将XML转换为Excel&#x3002; XmlGrid允许您select要转换为Excel文件的XML文档的根目录或任何其他元素。 转换的Excel文件将有一张或多张依赖于您的XML文档的结构。

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

我们创build了一个video,演示如何将XML转换为Excel的分步说明。

XML转换video经过以下一系列步骤

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

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

  • 将文本文件导入到Excel

  • joinExcel中的数据集

  • 分析Excel PowerPivot表中的数据