我想使用VBA访问XLSX文件的内部结构,以存储自定义元数据,有时还存储二进制对象。阅读OpenXML规范后,我找到了进入OPC维基百科页面的方式,这似乎表明OpenXML文档可以存储just about anything:
除了XML标记中的数据和文档内容外, ZIP包可以包含其他格式的文本和二进制文件,例如 PNG,BMP,AVI,PDF,RTF甚至是已经打包的ODF文件。
在打开文件时,需要通过自定义功能区和基础代码在Excel中访问我的自定义元数据,因此需要VBA。
OPC页面also describes the Microsoft Packaging API,似乎是一个处理按钮的很好的系统,可以处理ZIP压缩,OPC文件结构以及其中的对象。它还说这是一个基于COM的系统:
Microsoft .NET Framework 3.0本机支持OPC。 System.IO.Packaging命名空间。存在其他开源库 语言。从Windows 7开始,OPC本身也支持OPC。 Windows API通过一组COM接口统称为 作为包装API。
我是否正确理解这意味着它是一个COM对象,可以通过VBA中的“项目引用”进行访问。还是我不正确..
如果我正确的话,其引用和/或DLL的名称是什么?我查看了我的“引用”列表中的每个项目,但没有说OPC,打包或Open XML(尽管Microsoft XML有多个版本)。我想知道它是否不在通常的位置,未注册或仅从系统中丢失。?
那我该怎么做..?引用可能是什么?。
关于.Net,我曾考虑过创建Office加载项的可能性,但随后必须传递其安装程序才能正确使用文档。