【问题标题】:excel and xml - Add Stylesheet Reference with VBAexcel 和 xml - 使用 VBA 添加样式表引用
【发布时间】:2016-02-15 23:18:45
【问题描述】:

我正在使用 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

谢谢。肖恩。

【问题讨论】:

    标签: xml excel vba xslt openxml


    【解决方案1】:

    考虑将 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多