Freigeben über


Новые средства для решений Open XML

Пока я работаю над завершением еще одного решения блога, на этот раз посвященного импорту таблиц из Word в Excel, мне бы хотелось поделиться сведениями о двух полезных средствах, которыми можно воспользоваться при построении решений на основе Open XML. Первое средство, о котором я собираюсь рассказать, это следующий выпуск PowerTools для Open XML. PowerTools для Open XML представляет собой проект разработки открытого кода на веб-сайте CodePlex, который полностью основан на версии 1 пакета Open XML SDK. Это средство поддерживает архитектуру конвейеров PowerShell, предоставляя более 30 командлетов. Рассматривайте командлет как "черный ящик", в который поступает что-то одно, а наружу выходит что-то другое. В случае с PowerTools для Open XML командлеты различными способами создают и изменяют документы Open XML. Например, существуют командлеты для удаления примечаний, принятия отслеживаемых изменений, объединения документов или разделов и даже для создания диаграмм. Самым интересным является то, что ИТ-специалисты и разработчики могут выполнять пакетные сценарии непосредственно в PowerShell. Кстати, данное средство выпущено в качестве открытого кода в соответствии с общедоступной лицензией Майкрософт (Ms-PL), и это означает, что любой может свободно использовать код при создании собственных решений.

Эрик Уайт (Eric White) опубликовал очень хорошую запись в блоге, где описал некоторые подробности версии 1.1 пакета PowerTools для Open XML. В записи приводятся отличные примеры, демонстрирующие объединение разделов документов. В моей предыдущей записи я показал простой способ объединения документов Word с использованием altChunks. Версия 1.1 пакета PowerTools для Open XML выполняет объединение более сложным образом. Посмотрите и сообщите нам свое мнение.

Следующее средство, о котором мне бы хотелось поговорить, касается создания решений для документов Office в рамках машинного кода, такого как C++. Пакет Open XML SDK — это отличное средство, но оно привязано к технологиям .NET, т.к. зависит от пространства имен System.IO.Packaging. Как создать решение с использованием машинного кода? Раньше в подобных случаях вам бы пришлось либо создавать собственный уровень перехода от машинного кода к управляемому, или каким-то образом переключать контекст. Хорошая новость: Майкрософт недавно выпустила версию Win32 пространства имен System.IO.Packaging под названием Win32 OPC. Вопросы, касающиеся этой технологии, можно размещать на форуме или в блоге Win32 OPC.

Спасибо.

Зияд Раджаби (Zeyad Rajabi)

Это локализованная запись блога. Исходную статью можно найти по адресу https://blogs.msdn.com/brian_jones/archive/2009/03/26/more-open-xml-solution-tools.aspx.