Я хотел бы использовать VBA для доступа к внутренней структуре файлов XLSX для хранения пользовательских метаданных и иногда двоичных объектов. После прочтения спецификации OpenXML я нашел путь к странице Википедии для OPC, которая, кажется, указывает, что документы OpenXML могут хранить почти все :
Помимо данных и содержимого документа в разметке XML, файлы в
Пакет ZIP может включать другие текстовые и двоичные файлы в таких форматах, как
PNG, BMP, AVI, PDF, RTF или даже уже упакованный файл ODF.
Мои пользовательские метаданные должны быть доступны в Excel, когда файл открыт, через пользовательскую ленту и базовый код ... таким образом, требуется VBA.
На странице OPC также описывается Microsoft Packaging API , который, похоже, представляет собой приятную кнопку для обработки сжатия ZIP, файловой структуры OPC и объектов в ней. И это также говорит, что это система на основе COM:
OPC изначально поддерживается в Microsoft .NET Framework 3.0
System.IO.Packaging namespace. Открытые библиотеки существуют для других
языки. Начиная с Windows 7, OPC также изначально поддерживается в
Windows API через набор интерфейсов COM, совместно именуемых
как API упаковки.
Правильно ли я понимаю, что это означает, что это COM-объект, доступ к которому можно получить через ссылку на проект в VBA ..? Или я не прав? ..
Если я прав, как называется его ссылка и / или его DLL ...? Я посмотрел на каждый элемент в моем списке ссылок, и ничего не говорит OPC, Package или Open XML (хотя существует несколько версий Microsoft XML). Интересно, это не в обычном месте, не зарегистрировано или просто отсутствует в моей системе ..?
Так как мне это сделать ..? Какая ссылка может быть ..?
Что касается упоминания .Net, я рассмотрел возможность создания надстройки Office, но тогда для правильного использования документов необходимо было бы передать его установщик.