我想要使用VBA读取Excel文件的XML部分,但无法找到任何资源来开始。这可能吗?我只看过.NET的解决方案。
要清楚......我已经能够创建一个CustomXMLPart并从我创建的内容中读取/写入。但是,我试图阅读Excel创建的标准XML部分(如果这是有道理的)。具体来说,我有兴趣阅读" workbook.xml"的内容。一部分。
有人可以提供一个基本参考和样本来帮助我入门吗?
非常感谢!
修改:
我被问到了如何尝试使用它的例子。
嗯,我可以使用很多例子,但这里有一个示例' workbook.xml'我建立。我如何阅读与“MyNamedRange”相关联的工作表和单元格引用?使用Office OpenXML引用?
顺便说一下......我知道还有其他方法可以做这个具体的例子,但我正在寻找OpenXML这样做的方法,这只是一个例子。
这里是xml:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<workbook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<fileVersion rupBuild="4507" lowestEdited="4" lastEdited="4" appName="xl"/>
<workbookPr defaultThemeVersion="124226" codeName="ThisWorkbook"/>
<bookViews>
<workbookView windowHeight="5970" windowWidth="11475" yWindow="45" xWindow="480"/>
</bookViews>
<sheets>
<sheet r:id="rId1" sheetId="1" name="Sheet1"/>
<sheet r:id="rId2" sheetId="2" name="Sheet2"/>
<sheet r:id="rId3" sheetId="3" name="Sheet3"/>
</sheets>
<definedNames>
<definedName name="MyNamedRange1">Sheet1!$A$1</definedName>
<definedName name="MyNamedRange2">Sheet1!$A$2</definedName>
</definedNames>
<calcPr calcId="125725"/>
</workbook>
答案 0 :(得分:0)
仅晚了4年,但我注意到该页面经常被浏览。 Jan Karel Pieterse有免费的可下载VBA宏集,可以编辑OOXML。 source
这不是一种超级优雅的方法,但确实有效。必须关闭要编辑的文件。该宏将文件解压缩,允许您使用VBA字符串操作对XML进行更改,然后重新压缩。大型文件的解压缩/重新压缩步骤很慢,因此它更适合于批处理情况,在这种情况下您可以让它在没有监督的情况下运行。