在excel工作簿中存储xml

时间:2015-07-27 07:09:42

标签: xml excel vba excel-vba

我在.xml文件中定义了一些数据。我需要创建一个Excel工作簿,根据该文件中包含的信息提供一些功能。 XML数据必须放在该Excel文件中 - 即,它不能放入单独的文件中(因此,之后您可以保留.xlsx文件而不使用.xml)。

所以我想创建这样的东西:

sub Load()  'this function is called once, and after it was called the .xml file is no longer required'
  fName = "some path to data.xml"
  ActiveSheet.OLEObjects.Add(Filename:=fName) 
End Sub

'Does not open external .xml file'
Sub SomeFunction()
  Dim data As MSXML2.DOMDocument
  Set data = New MSXML2.DOMDocument
  data.Load(ActiveWorkbook.OLEObjects(1)) 'Load method can not be called like that'

  ' parse the data'

End Sub

我看到的方式是.xml文件应该作为OLE对象嵌入到Excel文件中。然而,我无法找到一种方法来在嵌入后读取数据(作为字符串)表单文件。

我知道使用MSXML2可以读取存储在外部文件中的.xml(MSXML2.DOMDocument.Load方法),以便对其进行解析。是否可以使用MSXML2对象打开嵌入式文档?或者是否有另一种方法可以在工作簿中存储外部XML结构?

1 个答案:

答案 0 :(得分:2)

您可以使用CustomXMLParts对象执行此操作 请参阅https://msdn.microsoft.com/en-us/library/office/ff863162.aspx
或对象浏览器