簡體   English   中英

excel和xml-使用VBA添加樣式表參考

[英]excel and xml - Add Stylesheet Reference with VBA

我正在使用OpenXML導入XML並將其轉換為Excel:

Workbooks.OpenXML Filename:=sPath, Stylesheets:=Array(1)

在XML文檔中,我正在插入樣式表引用(因為它們不存在):

<?xml-stylesheet type='text/xsl' href='STIG_ckl.xsl'?>

但是,我想認為有一種使用樣式表的方法,而不必將其包含在XML文檔本身中。

使用OpenXML,“ Array(1)”使用XML中第一個引用的樣式表。

但我想給它一個樣式表,該樣式表與XML中的樣式表完全分開,例如:(但這不起作用)

Workbooks.OpenXML Filename:=sPath, Stylesheets:=sPathToXSL

謝謝。 肖恩

考慮將XSLT直接應用於XML,然后導入結果XML。 回顧XSLT是一種專用語言,旨在處理XML文檔,並且可以在樣式表聲明之外使用。 VBA配備了使用MSXML對象的XSLT處理器:

Sub XSLTransform()

   ' SET VBA REFERENCE MSXML v3, v6'
   Dim xmldoc As New MSXML2.DOMDocument 
   Dim xslDoc As New MSXML2.DOMDocument 
   Dim newDoc As New MSXML2.DOMDocument

   ' LOAD XML AND XSL FILES '
   xslDoc.async = False
   xmlDoc.Load "C:\Path\To\InputXML.xml"

   xslDoc.async = False    
   xslDoc.Load "C:\Path\To\XSLT_Script.xml"        

   ' TRANSFORM XML '
   xmldoc.transformNodeToObject xslDoc, newDoc

   ' SAVE OUTPUT '
   newDoc.Save "C:\Path\To\OutputXML.xml"

   Workbooks.OpenXML Filename:="C:\Path\To\OutputXML.xml"

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM