Excel - 使用相应的XSLT打开XML文档

时间:2017-06-01 15:39:46

标签: xml excel xslt

我从基础非OpenXML工作簿XML创建Excel文件是全新的,所以我希望有人可以帮助我。

假设我有一个xml文件, MyFile.XML 和一个相应的xslt文件 MyFile.XSLT ,它接受XML并将其转换为Excel的正确格式能够打开它。 this question / answer中提供的文件。

(基本上,在执行XSLT转换之前,XML绝不是OpenXML格式)

我的问题是,我是否可以直接在Excel中打开该XML文件(可能以某种方式引用XSLT),或者如果我需要首先使用另一个程序/一个运行XSLT转换我必须编写然后打开相应的输出。

同样,我是新手,所以如果有人在此之前做过这个过程/有任何提示指示我正确的方向,如何做到这一点将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

考虑两个使用Workbooks.OpenXML方法的选项:

带有样式表参数的

OpenXML 需要内联处理说明

XML

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="XSLTScript.xsl"?>
<root>
  ...

VBA

Workbooks.OpenXML Filename:="C:\Path\To\Output.xml", Stylesheets:=Array(1)
使用MSXML库进行XSLT转换后

OpenXML

Public Sub ImportXML()
    ' LOAD MSXML, v3.0
    Dim xmldoc As New MSXML2.DOMDocument, xslDoc As New MSXML2.DOMDocument, newDoc As New MSXML2.DOMDocument

    ' IMPORT XML AND XSL FILES
    xslDoc.async = False
    xmldoc.Load "C:\Path\To\Input.xml"

    xslDoc.async = False
    xslDoc.Load "C:\Path\To\XSLT\Script.xsl"

    ' TRANSFORM XML
    xmldoc.transformNodeToObject xslDoc, newDoc
    newDoc.Save "C:\Path\To\Output.xml"

    ' OPEN XML IN WORKBOOK
    Workbooks.OpenXML Filename:="C:\Path\To\Output.xml"

    ' RELEASE RESOURCES
    Set xmldoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing    
End Sub