我从基础非OpenXML工作簿XML创建Excel文件是全新的,所以我希望有人可以帮助我。
假设我有一个xml文件, MyFile.XML 和一个相应的xslt文件 MyFile.XSLT ,它接受XML并将其转换为Excel的正确格式能够打开它。 this question / answer中提供的文件。
(基本上,在执行XSLT转换之前,XML绝不是OpenXML格式)
我的问题是,我是否可以直接在Excel中打开该XML文件(可能以某种方式引用XSLT),或者如果我需要首先使用另一个程序/一个运行XSLT转换我必须编写然后打开相应的输出。
同样,我是新手,所以如果有人在此之前做过这个过程/有任何提示指示我正确的方向,如何做到这一点将非常感激。
谢谢!
答案 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