office open xml что это такое

Сведения о пакете Open XML SDK 2.5 для Office

Open XML — это открытый стандарт для текстовых документов, презентаций и электронных таблиц, который может быть реализован в разных приложениях на различных платформах. Open XML позволяет точно представлять существующие текстовые документы, презентации и электронные таблицы, которые кодируются в двоичных форматах, используемых приложениями Microsoft Office. Причина популярности Open XML очевидна: теперь существуют миллиарды документов, но, к сожалению, данные в них тесно связаны с программой, в которой они были созданы. Цель стандарта Open XML — снять зависимость документов от приложений Microsoft Office, в которых они были созданы, чтобы с ними можно было работать в других приложениях независимо от формата и без потери данных.

Структура пакета Open XML

Файл Open XML хранится в ZIP-архиве, чтобы уменьшить размер файла. Структуру файла Open XML можно просмотреть с помощью средства просмотра ZIP-файлов. Документ Open XML состоит из нескольких частей документа. Отношения между частями хранятся в частях документа. Формат ZIP поддерживает произвольный доступ к каждой части. Например, приложение может переместить слайд из одной презентации в другую без синтаксического анализа содержимого слайда. Также приложение может удалить все примечания из текстового документа без анализа его содержимого.

Части документа в пакете Open XML создаются в виде разметки XML. Поскольку XML — это обычный структурированной текст, вы можете просмотреть содержимое части документа с помощью средства чтения текста или выполнить синтаксический анализ содержимого с помощью таких процессов, как XPath.

Текстовые документы описываются с помощью разметки WordprocessingML. Дополнительные сведения см. в разделе Работа с документами WordprocessingML (Open XML SDK). Документ WordprocessingML состоит из набора историй, где каждая история — это одно из следующих:

основной документ (единственная обязательная история);

верхний и нижний колонтитулы;

Презентации описываются с помощью разметки PresentationML. Дополнительные сведения см. в разделе Работа с документами PresentationML (Open XML SDK). Пакет презентации может содержать следующие части документа:

Листы книги описываются с помощью разметки SpreadsheetML. Дополнительные сведения см. в разделе Работа с документами SpreadsheetML (Open XML SDK). Пакет книги может содержать следующие элементы:

часть книги (обязательная);

один или несколько листов;

Пакет Open XML SDK 1.0

Версия 1 пакета Open XML SDK упрощает управление пакетами Open XML. API-интерфейс Open XML SDK позволяет выполнять многие распространенные задачи, которые обычно выполняются с пакетами Open XML, поэтому сложные операции можно реализовать несколькими строками кода. Вот некоторые распространенные задачи:

Поиск — несколькими строками кода можно выполнить поиск произвольных данных в коллекции листов Excel 2007.

Сборка документов — вы можете создавать документы, объединяя части существующих документов программными средствами. Например, можно извлечь слайды из различных презентаций PowerPoint 2007 и создать из них одну презентацию.

Проверка — несколькими строками кода можно проверить части документа в пакете или весь пакет на соответствие схеме.

Обновление данных — с помощью объектной модели Open XML можно легко изменить данные в нескольких пакетах.

Конфиденциальность — несколькими строками кода можно удалить примечания или другие личные данные из документа перед его публикацией.

Пакет Open XML SDK 2.0 для Microsoft Office

Пакет Open XML SDK 2.0 для Microsoft Office расширил поддержку строго типизированных классов от классов частей, которые представлены в версии 1.0, до XML-содержимого каждой части. Все функции, доступные в версии 1.0, по-прежнему поддерживаются. Версия 2.0 позволяет программно обрабатывать XML-содержимое частей. Пакет SDK поддерживает программирование в стиле LINQ to XML, который упрощает написание кода для работы с XML-содержимым, по сравнению с традиционной моделью программирования W3C XML DOM.

Пакет SDK поддерживает следующие распространенные задачи и сценарии:

Строго типизированные классы и объекты — вместо использования общих функций XML для обработки данных XML, для чего требуется помнить имена всех элементов, атрибутов и значений, а также пространства имен, для решения тех же задач можно использовать пакет Open XML SDK, просто обрабатывая объекты, представляющие элементы, атрибуты и значения. Все типы схемы представлены как строго типизированные классы среды выполнения CLR, а все значения атрибутов представлены как перечисления.

Формирование, поиск и обработка содержимого — технология LINQ встроена непосредственно в SDK. Таким образом вы можете создавать функциональные конструкции и запросы с лямбда-выражениями непосредственно для объектов, представляющих элементы Open XML. Кроме того, пакет SDK позволяет легко обходить и обрабатывать содержимое, предоставляя поддержку коллекций объектов, например таблиц и абзацев.

Проверка — Open XML SDK 2.0 для Microsoft Office предоставляет возможности проверки, что позволяет проверять документы Open XML на соответствие различным вариантам формата Open XML.

Пакет Open XML SDK 2.5 для Office

Пакет SDK 2.5 Open XML предоставляет пространства имен и члены для поддержки Microsoft Office 2013. Open XML SDK 2.5 также может читать файлы в строгом формате ISO/IEC 29500. Строгий формат — это подмножество переходного формат, который не содержит устаревшие функции — это теоретически облегчает поддержку для новых разработчиков, поскольку формат более прост.

Пакет SDK поддерживает следующие распространенные задачи и сценарии:

Поддержка формата файлов Office 2013 Preview — кроме классов Open XML SDK 2.0 для Microsoft Office, Пакет SDK 2.5 Open XML предоставляет новые классы, которые позволяют создавать приложения для обработки расширений файлов Open XML новых компонентов Office 2013.

Исправления Open XML SDK 2.0 для Microsoft Office — в Пакет SDK 2.5 Open XML исправлены известные проблемы Open XML SDK 2.0 для Microsoft Office. К ним относятся потерянные пробелы в презентациях PowerPoint и проблема с настраиваемым пользовательским интерфейсом в документах Word, из-за которой указанный аргумент считался выходящим за допустимый диапазон.

Дополнительные сведения об этих и других новых возможностях Пакет SDK 2.5 Open XML см. в статье Новые возможности в Open XML SDK 2.5 для Office.

Источник

Реализация стандарта Office Open XML (OOXML): О чём должны знать государственные учреждения

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Государственные учреждения по всему миру всё больше осознают важность открытых стандартов в области ИКТ, поскольку последние способствуют реализации права на выбор и возможности взаимозамены использующих их систем, влияют на снижение расходов и двигают вперёд инновации. Сама идея того, что для государственного документооборота должен использоваться открытый формат, стала уже сама собой разумеющейся, а использование открытых стандартов рассматривается как неотъемлемая часть стратегий создания систем электронного правительства.

Нынешняя путаница с OOXML берёт своё начало в создании нескольких версий стандарта в рамках ИСО/МЭК

Понимание того, какие неприятные обстоятельства поспособствовали разработке OOXML, помогает объяснить сегодняшнюю неразбериху, связанную с данным форматом.

В первую очередь необходимо понимать, что, когда речь идёт о стандартах, успешность измеряется в том, какие проблемы стандарт позволяет решить и какие он предоставляет возможности для инноваций. Чаще всего среди причин создания и введения открытых стандартов в области ИКТ называют потребность в интероперабельности, обеспечение возможности выбора и гибкости.

В противоположность этому, формат OOXML возник как реакция Microsoft на проблему отсутствия у них подходящего стандарта, осознанную в середине 2005 года, когда госучреждения начали требовать открытых стандартов, Евросоюз призывал к открытию форматов документов и всеми были действительно осознаны риски зависимости от одного поставщика. Без наличия в офисном ПО поддержки формата документов, соответствующего некоторому открытому стандарту, использование Microsoft Office в госучреждениях в разных странах могло встать под угрозу, в особенности в связи с тем, что открытым стандартам стали давать предпочтение. Раздел описания целей стандарта OOXML затрагивает данную конфликтную ситуацию, пытаясь охватить как цели «точного представления ранее сформированного корпуса электронных документов, таблиц и презентаций, созданных с помощью приложений Microsoft Office» начиная с версии Office 97, так и цели «упрощения расширяемости и интероперабельности (совместимости)…» [6]

При такой поспешности и довольно нелепых попытках переработать существующий проприетарный стандарт под требуемые цели, OOXML был создан без достаточных усилий к достижению отраслевого консенсуса, без попытки вместе с конкурирующими сторонами выработать приемлемый для всех индустриальный стандарт.

По сути, для того чтобы добиться принятия спецификации в качестве международного стандарта ISO, Microsoft согласилась вынести части OOXML, которые были зависимыми от ОС Windows и могли бы успешно быть реализованы только самим Microsoft, в «Переходную» часть стандарта, использование которой должно было быть ограничено исключительно переводом старых документов Microsoft Office в новые. Было недвусмысленно заявлено, что эта «Переходная» часть спецификации не должна использоваться для создания новых документов.

Прежде чем члены ISO могли быть в достаточной степени удовлетворены, «Строгий» класс соответствия должен был включить десятки улучшений. Учитывая те поправки и улучшения, которые были внесены вместе с возникновением «Строгого» класса соответствия, при втором голосовании OOXML был принят. Конечным результатом стало утверждение спецификации OOXML в марте 2008 года в качестве стандарта ИСО/МЭК (ISO/IEC 29500) и признание двух его разновидностей — «Строгой» и «Переходной». Брайан Джонс, менеджер проекта Office в Микрософт, прокомментировал значимость «Строгой» и «Переходной» версий следующим образом:

Брайан Джонс, менеджер проекта Office в Микрософтoffice open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

В противоположность этому, движущей силой при создании ODF было желание достичь совместимости (интероперабельности) офисного ПО и предоставить пользователям право выбора программного обеспечения.

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такоеДанный стандарт определяет характеристики основанного на XML независимого от прикладного ПО и операционной системы файлового формата цифровых документов, а также характеристики того ПО, которое будет читать, создавать и обрабатывать такие документы. [9]

Спецификация OASIS ODF 1.2office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Результаты соответствующим образом подтверждают значимость открытых стандартов, поскольку сегодня все основные приложения для создания документов пользователей [10] поддерживают стандарт ODF.

Текущее состояние по реализации стандарта OOXML: неразбериха с разными версиями

После нескольких лет с того момента, как OOXML был одобрен ИСО в качестве международного стандарта, формат всё ещё продлжает существовать в нескольких редакциях, ни одна из которых в точности не соответствует тому, что использует Microsoft в своих офисных программных продуктах. Рассмотрим данные варианты OOXML:

Тот факт, что Microsoft, не реализуя «Строгую» версию стандрта, частным образом расширяет «Переходную» версию, означает, что те улучшения, которые позволили OOXML пройти стадию утверждения в ISO, на данный момент игнорируются. Данное расхождение стандарта ISO и реализации Microsoft вылилось в недавнее заявление Председателя собрания по разрешению конфликтов голосования (ballot resolution meeting) о том, что «Весь проект OOXML теперь несомненно движется к краху». [11]

Что из этого следует для госучреждений?

Хотя не все организации, использующие открытые стандарты, одинаковы, в целом они стараются избегать зависимости от конкретного поставщика, снижать затраты, повышать совместимость (интероперабельность), расширять доступ общественности к официальным документам и обеспечивать их долговременное хранение. Некоторые, но не все, также явно озвучивают цель способствования развитию конкуренции и даже способствования использованию открытых стандартов.

Не зависмо от того, к первой или второй области относятся цели того или иного госучреждения, до тех пор, пока со стороны Microsoft и других поставщиков ПО не будет полной поддержки «Строгой» версии OOXML (ISO/IEC 29500), госучреждения, полагающиеся на любые версии OOXML, могут расчитывать лишь на зависимость от конкретного проприетарного решения, которое не будет соответствовать их основным целям и запросам.

Источник

Office Open XML

Шаблон:Office Open XML

Две разные версии OOXML определены в ECMA-376 [1] [3] и в ISO 29500:2008. Полная поддержка формата ISO 29500 ожидалась (но не появилась) в Microsoft Office 2010.

25 июня 2014 года Microsoft выпустила Open XML SDK в open source под Apache 2.0 лицензией. [4]

Содержание

Стандартизация [ ]

Ecma International [ ]

ISO/IEC [ ]

5 сентября 2007 года принятие варианта OOXML как стандарта ISO/IEC 29500 было временно отклонено по результатам голосования. [6]

Публикация ISO/IEC DIS 29500 была отложена на период рассмотрения апелляций (30 дней). [15] [16]

В августе ISO отклонила апелляции стран, выступающих против принятия OOXML как стандарта, так как они не смогли получить поддержку необходимого числа участников ISO для приостановления принятия стандарта [18]

Дальнейшая жизнь стандарта [ ]

После того, как OOXML стандартизовали, работа над стандартом приостановилась; Microsoft Office 2010 всё ещё отвечал «переходным» требованиям OOXML, но не «строгим». Microsoft пообещал полное соответствие в следующей версии. ISO пригрозила убрать переходные части из стандарта. Шаблон:-1

Поддержка в текстовых процессорах [ ]

Предыдущие версии MS Office [ ]

Большей популярностью на 2007 год пользуются его предшественники — двоичные форматы Microsoft Office 97—2003. Поддержка одной из версий OOXML (не соответствующая ISO/IEC 29500) появилась в Microsoft Office 2007. [8] Для работы с этим форматом в предыдущих версиях MS Office, Microsoft предлагает установить Microsoft Office Compatibility Pack, который обеспечивает «прозрачную» работу с форматами Office 2007 пакетов MS Office 2000, XP и 2003. [27]

Поддержка формата в других текстовых процессорах [ ]

В OpenOffice.org 3 версии присутствует частичная встроенная поддержка OOXML. Для решения данной проблемы существуют онлайн-конверторы, способные конвертировать формат DOCX в другие форматы. Также существует плагин (разработанный фирмой Novell ), позволяющий открывать и сохранять файлы в этом формате в ОС семейств SUSE и Microsoft Windows. [28]

Поддержка формата OOXML в текстовом процессоре Corel Word Perfect ожидалась в середине 2007 года. [29]

Критика [ ]

Примечания [ ]

Ссылки [ ]

Статьи [ ]

См. также [ ]

Шаблон:Ecma International Standards Шаблон:Языки разметки документов Шаблон:Стандарты ISO Шаблон:Microsoft Office

Источник

Создание надстроек Word с помощью Office Open XML

Источник: Стефани Кригер, корпорация Майкрософт | Хуан Балмори Лабра, корпорация Майкрософт

Если вы строите Office надстроек, которые будут работать в Word, вы уже знаете, что Office API JavaScript (Office.js) предлагает несколько форматов для чтения и записи контента документов. Они называются типами приведения, и к ним относятся обычный текст, таблицы, HTML и Office Open XML.

Итак, что вы можете сделать, если вам нужно добавить в документ форматированный контент, например изображения, форматированные таблицы, диаграммы или просто форматированный текст? Используйте HTML для вставки некоторых типов богатого контента, например изображений. В некоторых случаях вам может быть недостаточно возможностей форматирования и размещения содержимого, предоставляемых HTML. Так как Office Open XML — это язык документов Word (например, DOCX и DOTX), вы можете вставить практически любое содержимое, которое пользователь может добавить в документ Word, с практически любым форматированием. Определить необходимую разметку Office Open XML проще, чем кажется.

Office Open XML — это также язык документов PowerPoint и Excel (а начиная с Office 2013 — и документов Visio). Однако сейчас приводить содержимое в формат Office Open XML можно только в надстройках Office, созданных для Word. Дополнительные сведения об Office Open XML, в том числе полную справочную документацию о языке, см. в разделе Дополнительные ресурсы.

Для начала ознакомьтесь с некоторыми типами содержимого, которые можно вставить с помощью приведения Office Open XML. Скачайте пример кода Word-Add-in-Load-and-write-Open-XML, который содержит разметку Office Open XML и код Office.js, необходимые для вставки любого из приведенных ниже примеров в Word.

В этой статье термины типы контента и контент с богатым контентом относятся к типам богатого контента, который можно вставить в документ Word.

Рис. 1. Текст с прямым форматированием

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Используйте прямой форматирование, чтобы точно указать, как будет выглядеть текст независимо от существующего форматирования в документе пользователя.

Рис. 2. Текст, отформатированный с помощью стиля

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Используйте стиль, чтобы автоматически скоординировать внешний вид текста, вставляемого с документом пользователя.

Рис. 3. Пример изображения.

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Используйте тот же метод для вставки любого Office поддерживаемого формата изображения.

Рис. 4. Изображение, форматированное с помощью стилей и эффектов изображений

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Для добавления высококачественного форматирования и эффектов к изображениям требуется намного меньше разметки, чем можно было бы ожидать.

Рис. 5. Элемент управления содержимым

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Используйте элементы управления контентом с помощью надстройки для добавления контента в указанном (связанном) расположении, а не при выборе.

Рис. 6. Текстовое поле с форматированием WordArt

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

В Word доступны эффекты для текста в текстовых полях (как показано здесь) и обычного текста документа.

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Вставьте встроенные или настраиваемые фигуры рисования с эффектами текста и форматирования или без них.

Рис. 8. Таблица с прямым форматированием

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Включай форматирование текста, границы, затенение, размер ячейки или любое необходимое форматирование таблицы.

Рис. 9. Таблица, отформатированная с помощью стиля таблицы

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Используйте встроенные или настраиваемые стили таблиц так же легко, как и стиль абзаца для текста.

Рис. 10. Диаграмма SmartArt

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Office предлагает широкий спектр макетов схем SmartArt (и вы можете использовать Office XML для создания собственного).

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Вы можете вставлять диаграммы Excel в документы Word как динамические диаграммы. Это также означает, что их можно использовать в надстройке для Word. Как видно из предыдущих примеров, с помощью приведения Office Open XML можно вставлять содержимое практически любого типа, доступного пользователям для вставки в документы. Получить нужную разметку Office Open XML можно двумя простыми способами. Добавьте форматированное содержимое в пустой документ Word и сохраните файл в формате XML-документа Word или используйте тестовую надстройку с методом getSelectedDataAsync, чтобы захватить разметку. Оба способа, по сути, обеспечивают одинаковый результат.

Документ Office XML на самом деле представляет собой сжатый пакет файлов, которые представляют содержимое документа. Сохранение файла в формате Word XML Document предоставляет весь XML-пакетOffice Open, сплощенный в один XML-файл, который также используется для получения разметки Office getSelectedDataAsync Open XML.

При сохранении файла в формате XML в приложении Word в списке «Тип файла» в диалоговом окне «Сохранить как» будет доступно два параметра для XML-файлов. Выберите XML-документ Word, а не формат Word 2003. Скачайте пример кода под названием Word-Add-in-Get-Set-EditOpen-XML, с помощью которого можно получить и проверить разметку. Итак, это все? Не совсем. Да, в большинстве случаев можно успешно использовать полный плоский результат Office Open XML, обеспечиваемый любым из вышеописанных способов. Скорее всего, вам не понадобится большая часть этой разметки. На первый взгляд объем разметки Office Open XML даже для простого содержимого может показаться огромным, но не стоит переживать. В этом разделе вы будете использовать некоторые распространенные сценарии, которые мы слышим от сообщества разработчиков Office надстройки, чтобы показать вам методы упрощения Office Open XML для использования в надстройки. Мы рассмотрим разметку для некоторых типов содержимого, показанных выше, а также сведения, необходимые для минимизации полезных данных Office Open XML. Мы также рассмотрим код, необходимый для вставки мультимедиа в документ в выделенном месте, и использование Office Open XML с объектом bindings для добавления или замены содержимого в указанных местах.

Ознакомьтесь с Office пакетом документов Open XML

Когда вы используете метод getSelectedDataAsync для получения разметки Office Open XML для выделенного содержимого (или сохраняете документ в формате XML-документа Word), вы получаете не только разметку, описывающую выделенное содержимое, а весь документ со множеством параметров и настроек, которые вам в большинстве случаев не пригодятся. Если вы используете этот метод из документа, содержащего надстройку области задач, полученная разметка будет включать даже область задач.

Даже простой пакет документа Word, помимо основного содержимого, включает свойства, стили, тему (параметры форматирования), веб-параметры, шрифты документа и другие части.

Предположим, вам нужно вставить всего лишь абзац текста с прямым форматированием, как показано на рисунке 1. Когда вы Office открыть XML для форматного текста с помощью, вы увидите большое getSelectedDataAsync количество разметки. Она включает элемент package, который представляет весь документ и содержит несколько частей (обычно называемые частями документа или, в Office Open XML, частями пакета), как показано на рисунке 13. Каждая часть представляет отдельный файл в пакете.

Изменение Office XML-разметки в текстовом редакторе, например Блокнот. Если вы откроете его в Visual Studio, используйте >Расширенный документ > формата (Ctrl+K, Ctrl+D) для формата пакета для более простого редактирования. Then you can collapse or expand document parts or sections of them, as shown in Figure 12, to more easily review and edit the content of the Office Open XML package. Each document part begins with a pkg:part tag.

Рис. 12. Свертывание и развертывание частей пакета для редактирования в Visual Studio

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Рис. 13. Части в базовом пакете документа Word Office Open XML

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

Вы удивитесь, но единственные элементы, которые необходимо вставить для добавления примера форматированного текста, во всей этой разметке — это элементы RELS-частей и document.xml.

Две строки разметки над тегом пакета (объявления XML для версии и кода программы Office) применяются автоматически при использовании приведения Open XML, поэтому их не нужно добавлять. Оставьте их, если хотите открыть измененную разметку как документ Word для тестирования.

Некоторые другие типы контента, показанные в начале этой темы, также требуют дополнительных частей (помимо показанных на рис. 13), и вы обратимся к этим разделам позже. Сейчас же, так как вы увидите большинство частей, показанных на рисунке 13, в разметке любого пакета документа Word, кратко рассмотрим каждую часть и ее функции:

В теге пакета первой частью является RELS-файл, в котором определяются связи между частями верхнего уровня пакета (обычно это свойства документа, эскиз (если он существует) и тело документа). Определенное содержимое этой части всегда должно быть в разметке, так как необходимо определить связь основной части документа (где хранится контент) с пакетом документа.

Часть document.xml.rels определяет связи с дополнительными частями, необходимыми части document.xml (основной текст документа), если такие имеются.

RELS-файлы в пакете (такие как RELS-файлы верхнего уровня, document.xml.rels и другие файлы, которые можно увидеть для различных типов контента) — это очень важный инструмент, который можно использовать для быстрого редактирования пакета Office Open XML. Дополнительные сведения об этом см. в разделе Рекомендации по созданию собственной разметки далее в этой статье.

Часть document.xml — это содержимое в теле документа. Элементы этой части, конечно, необходимы, так как здесь представлены все данные документа. Но все содержимое этой части вам не нужно, о чем мы подробно поговорим позднее.

Многие части автоматически игнорируются методами Set при вставке содержимого в документ с помощью приведения Office Open XML, поэтому их можно удалить. К ним относятся файл theme1.xml (тема форматирования документа), части свойств документа (core, add-in и thumbnail) и файлы параметров (в том числе settings, webSettings и fontTable).

В примере Рис. 1 непосредственно применяется форматирование текста (то есть каждый параметр форматирования шрифта и абзаца применяется по отдельности). Но, если вы используете стиль (например, если вы хотите, чтобы текст автоматически принимает форматирование стиля Heading 1 в документе назначения), как показано ранее на рис. 2, то вам потребуется часть styles.xml части, а также определение отношения для него. Дополнительные сведения см. в разделе Раздел Добавление объектов, которые используют дополнительные Office частей XML.

Вставка содержимого документа при выборе

Рассмотрим минимальную разметку Office Open XML, необходимую для примера форматированного текста на рисунке 1, и код JavaScript, необходимый для вставки разметки в выделенном месте в документе.

Упрощенная разметка Office Open XML

Вы отредактировали пример Office XML, показанный здесь, как описано в предыдущем разделе, чтобы оставить только необходимые части документов и только необходимые элементы в каждой из этих частей. Подробнее о том, как изменить разметку, вы можете узнать в следующем разделе темы.

Если добавить разметку, показанную здесь, в XML-файл вместе с тегами XML-декларации для версии и mso-application в верхней части файла (показано на рисунке 13), вы можете открыть его в Word в качестве документа Word. Или, без этих тегов, вы все еще можете открыть его с помощью файла > Открыть в Word. Режим совместимости будет см. в панели заголовков Word, так как вы удалили параметры, которые говорят Word, что это документ Word. Поскольку вы добавляете эту разметку в существующий документ Word, это не повлияет на содержимое.

Код JavaScript для использования метода setSelectedDataAsync

После сохранения предыдущего Office XML в виде XML-файла, доступного из вашего решения, используйте следующую функцию, чтобы установить форматированный текстовый контент в документе с помощью Office принуждения Open XML.

В этой функции все строки, кроме последней, используются для получения сохраненной разметки и ее использования в методе setSelectedDataAsync в конце функции. setSelectedDataASync требуется только указать содержимое, которое необходимо вставить, и тип принуждения.

Замените yourXMLfilename на имя XML-файла, сохраненного в решении, и путь к нему. Примеры добавления XML-файлов в решение и указания их в коде, а также рабочий пример разметки и кода JavaScript, показанных здесь, см. в примере кода Word-Add-in-Load-and-write-Open-XML.

Создание собственной разметки: лучшие практики

Рассмотрим разметку, необходимую для вставки предыдущего примера форматированного текста, более подробно.

Для начала просто удалим из пакета все части документа, кроме RELS-файла и document.xml. Затем вы отредактируете эти две необходимые части для дальнейшего упрощения.

Используйте RELS-части как карту, чтобы быстро понять, что входит в пакет, и определить, какие части можно полностью удалить (все части, не связанные с контентом и не указанные в нем). Помните, что для каждой части документа в пакете должны существовать связи, которые указываются в RELS-файлах. Все эти связи можно увидеть в RELS-файле, файле document.xml.rels или RELS-файле, связанном с контентом.

Удалите связи (т. е. тег Relationship) для всех частей, которые вы удалили из пакета. Если добавить часть без соответствующей связи или удалить часть, оставив ее связь в пакете, возникнет ошибка.

В следующей разметке показана часть document.xml, содержащая пример форматированного текста, перед редактированием.

Поскольку document.xml является основной частью документа, в которой размещен контент, пройдитесь по этой части быстро. (На рисунке 14, который идет после этого списка, показано, как некоторые базовые теги содержимого и теги форматирования связаны с тем, что вы видите в документе Word.)

Открывающий тег w:document включает несколько пространств имен (xmlns). Многие из них связаны с определенными типами содержимого и необходимы, только если относятся к вашему содержимому.

Обратите внимание, что префикс для тегов в части документа относится к пространствам имен. В этом примере единственным префиксом, используемым в тегах во всей части document.xml, является w:, поэтому единственным пространством имен, которое необходимо оставить в открываемом теге w:document, является xmlns:w.

Если вы редактируете разметку в Visual Studio, после удаления пространств имен в любой части просмотрите все теги этой части. Если вы удалили пространство имен, необходимое для разметки, соответствующий префикс тегов будет подчеркнут красной волнистой линией. Кроме того, удаляя пространство имен xmlns:mc, также нужно удалить атрибут mc:Ignorable, предоставляющий список пространств имен.

В открывающем теге тела документа вы увидите тег абзаца (w:p), который включает содержимое для нашего примера.

Тег w:pPr включает свойства для прямого форматирования абзаца, например интервал до и после абзаца, выравнивание абзаца и отступы. (Прямое форматирование относится к атрибутам, которые применяются к содержимому отдельно, а не как часть стиля.) Этот тег также включает прямое форматирование, применяемое ко всему абзацу, во вложенном теге w:rPr (свойства прогона). В нашем примере этот тег содержит цвет и размер шрифта.

Вы можете заметить, что размеры шрифтов и некоторые другие параметры форматирования в разметке Word Office Open XML выглядят в два раза больше. Это вызвано тем, интервалы между абзацами и между строками, а также некоторые свойства форматирования разделов, показанные в предыдущей разметке, указаны в твипах (одна двадцатая точки). В зависимости от типов содержимого, с которыми вы работаете в Office Open XML, вы можете увидеть несколько дополнительных единиц измерения, в том числе английские метрические единицы (914 400 английских метрических единиц на дюйм), которые используются для некоторых значений Office Art (drawingML), и значение в 100 000 раз больше действительного, которое используется в разметке drawingML и PowerPoint. В PowerPoint некоторые значения также в 100 раз больше действительных, а в Excel обычно используются действительные значения.

Любое содержимое со схожими свойствами в абзаце включается в прогон (w:r), как и пример текста. При каждом изменении форматирования или типа содержимого начинается новый прогон. (Например, если одно слово в примере текста было выделено полужирным шрифтом, оно будет выделено в собственный прогон.) В этом примере содержимое включает всего один прогон текста.

Обратите внимание, что в этом примере используется форматирование шрифта, которое можно применять только к одному символу. Поэтому такое форматирование также указано в свойствах для отдельного запуска.

Также обратите внимание на теги скрытой закладки _GoBack (w:bookmarkStart и w:bookmarkEnd), которые по умолчанию отображаются в документах Word. Начальный и конечный теги закладки GoBack всегда можно удалить из разметки.

Последняя часть тела документа — это тег w:sectPr или свойства раздела. Этот тег включает такие параметры, как поля и ориентация страницы. Содержимое, вставляемое с помощью метода setSelectedDataAsync, по умолчанию будет использовать свойства активного раздела в целевом документе. Поэтому если в содержимом нет разрыва раздела (в противном случае тегов w:sectPr будет несколько), этот тег можно удалить.

Рис. 14. Связь общих тегов в document.xml с содержимым и структурой документа Word

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

В нескольких тегах созданной разметки может встречаться другой атрибут, включающий символы w:rsid, которых нет в примерах из этой статьи. Это идентификаторы исправлений. Они используются в Word для функции объединения документов и включены по умолчанию. В разметке, вставляемой с помощью надстройки, они не нужны, и их отключение делает разметку намного яснее. Вы можете с легкостью удалить существующие теги RSID или отключить функцию (как описано в приведенной ниже процедуре), чтобы они не добавлялись в разметку для нового содержимого.

Помните, что если вы используете возможности совместного редактирования документов в Word, следует опять включить функцию после создания разметки для вашей надстройки.

Чтобы отключить атрибуты RSID в Word для последующих создаваемых документов, выполните следующие действия:

Чтобы удалить теги RSID из существующего документа, попробуйте следующий ярлык с открытым документом в Office Open XML.

Удалив основную часть разметки из этого пакета, мы получили минимальную разметку, которую нужно вставить для примера, как показано в предыдущем разделе.

Используйте ту же структуру Office XML для различных типов контента

Для некоторых типов мультимедиа требуются только части RELS и document.xml, показанные в предыдущем примере, в том числе для элементов управления содержимым, фигур и текстовых полей Office, а также таблиц (если к ним не применяется стиль). Вы можете повторно использовать одни и те же измененные части пакета, меняя только содержимое body в файле document.xml для разметки содержимого.

Разметку Office Open XML для каждого из этих типов содержимого, показанных выше на рисунках 5–8, см. в примере кода Word-Add-in-Load-and-write-Open-XML, упоминаемом в разделе с обзором.

Прежде чем перейти к этой области, обратите внимание на различия для пары этих типов контента и их замену.

Разметка drawingML (Office) в Word: Что такое откаты?

Если разметка фигуры или текстового поля выглядит намного сложнее, чем вы ожидали, этому есть причина. После выхода Office 2007 появились форматы Office Open XML, а также новый графический модуль Office, который был полностью интегрирован в PowerPoint и Excel. В Word 2007 поддерживается только часть этого модуля, обновленный модуль диаграмм Excel, графические объекты SmartArt и расширенные средства работы с рисунками. Для фигур и текстовых полей Word 2007 продолжает использовать старые объекты рисунков (VML). Только в Word 2010 были реализованы дополнительные возможности для поддержки обновленных средств работы с фигурами и рисунками.

Поэтому для поддержки фигур и текстовых полей в документах Word в формате Office Open XML, открываемых в Word 2007, для фигур (в том числе и текстовых полей) требуется резервная разметка VML.

Обычно, как видно для фигуры и текстового поля в примере кода Word-Add-in-Load-and-write-Open-XML, резервную разметку можно удалить. Word автоматически добавляет отсутствующую резервную разметку в фигуры при сохранении документа. Но если вы хотите сохранить резервную разметку для поддержки всех пользовательских сценариев, никто не помешает вам это сделать.

После группировки объектов-рисунков в содержимом вы увидите дополнительную разметку (очевидно, повторяющуюся), но ее нужно сохранить. Части разметки для отображения фигур дублируются, если объект добавляется в группу.

При работе с текстовыми полями и фигурами тщательно проверяйте пространства имен перед их удалением из document.xml. Если вы используете разметку из другого типа объекта, добавьте все необходимые пространства имен, которые вы могли удалить из document.xml. Значительная часть пространств имен, по умолчанию включенных в document.xml, представлена для отображения объектов рисунков.

О размещении рисунков

В примерах кода Word-Add-in-Load-and-write-Open-XML и Word-Add-in-Get-Set-EditOpen-XML текстовое поле и фигура настроены с помощью различных параметров обтекания текстом и размещения. (Кроме того, помните, что для изображений в этих примерах кода используется форматирование «в тексте», которое размещает графический объект на опорной линии текста.)

Фигура в этих примерах кода размещается относительно правого и нижнего полей страницы. Относительное расположение упрощает согласование с неизвестной конфигурацией пользователя, так как оно адаптируется к полям пользователя, а риск неудачно расположить содержимое из-за неизвестного размера, ориентации или полей страницы значительно уменьшается. Чтобы сохранить параметры относительного размещения при вставке графического объекта, необходимо сохранить знак абзаца (w:p), в котором хранятся данные о расположении (в приложении Word это называется привязкой). Если вставить содержимое в существующий знак абзаца, а не добавить собственный знак абзаца, вы сможете сохранить исходный внешний вид документа, но многие типы относительных ссылок, позволяющие автоматически адаптировать размещение содержимого в соответствии с пользовательской структурой, могут быть потеряны.

Работа с средствами управления контентом

Элементы управления содержимым — это полезный компонент Word, который может значительно расширить возможности надстройки для Word различными способами, в том числе позволить ей вставлять содержимое в указанном, а не только в выделенном месте.

В Word элементы управления содержимым можно найти на вкладке «Разработчик» на ленте, как показано на рисунке 15.

Рис. 15. Группа «Элементы управления» на вкладке «Разработчик» в Word

office open xml что это такое. Смотреть фото office open xml что это такое. Смотреть картинку office open xml что это такое. Картинка про office open xml что это такое. Фото office open xml что это такое

В Word доступны такие элементы управления содержимым, как форматированный текст, простой текст, изображение, коллекция стандартных блоков, флажок, раскрывающийся список, поле со списком, компонент выбора даты и повторяющийся раздел.

Используйте команду Свойства, как показано на рис. 15, чтобы изменить заголовок элемента управления и задать настройки, например чтобы скрыть контейнер элемента управления.

Включите режим конструктора, чтобы изменить содержимое заполнителя в элементе управления.

Если ваша надстройка работает с шаблоном Word, вы можете добавить элементы управления в этот шаблон, чтобы улучшить поведение содержимого. Вы также можете использовать привязку данных XML в документе Word, чтобы связать элементы управления содержимым с данными, например свойствами документа, и упростить заполнение форм и выполнение аналогичных задач. (Элементы управления, которые уже привязаны к встроенным свойствам документа в Word, можно найти на вкладке Вставка в разделе Экспресс-блоки.)

При использовании элементов управления содержимым в надстройке вы можете расширить ее возможности с помощью другого типа привязки. Вы можете создать привязку к элементу управления содержимым из надстройки, а затем записывать содержимое в привязку, а не выделенное место.

Не путайте привязку к данным XML в Word с возможностью привязки к элементу управления через надстройку. Это совершенно разные функции. Однако вы можете добавить именованные элементы управления содержимым во вставляемое содержимое через надстройку, используя приведение OOXML, а затем с помощью кода в надстройке создать привязку к этим элементам управления.

Помните, что привязки к данным XML и Office.js могут взаимодействовать с настраиваемыми частями XML в вашем приложении, поэтому вы можете интегрировать эти мощные инструменты. Сведения о работе с настраиваемыми частями XML в Office JavaScript API см. в разделе Дополнительные ресурсы далее в этой статье.

Работа с привязками в надстройке Word описывается в следующем разделе. Во-первых, взгляните на пример Office open XML, необходимого для вставки богатого управления текстовым контентом, который можно привязать к использованию надстройки.

Элементы управления форматированным текстом — это единственный тип элементов управления содержимым, которые можно использовать для привязки к элементу управления содержимым в надстройке.

Как уже было сказано, элементам управления содержимым, как и форматированному тексту, не требуются дополнительные части документа, поэтому здесь указаны только измененные части, RELS и document.xml.

Тег w:sdt, который вы видите в document.xml, представляет элемент управления содержимым. Если создать разметку Office Open XML для элемента управления содержимым, вы увидите, что несколько атрибутов удалены из этого примера, в том числе данный тег и свойства части документа. Сохранились только необходимые элементы (и пара рекомендуемых), включая следующие:

Псевдоним — это свойство title из диалогового окна Content Control Properties в Word. Данное свойство (представляющее имя элемента) является обязательным, если вы планируете привязать элемент управления в надстройке.

id — это уникальное свойство. Если привязать элемент управления в надстройке, ID будет свойством, которое привязка использует, чтобы определить соответствующий именованный элемент управления.

Атрибут внешнего вида используется для сокрытия контейнера управления для более чистого вида. Эта функция была представлена в Word 2013, как вы видите с помощью пространства имен w15. Так как это свойство используется, пространство имен w15 сохраняется в начале части document.xml.

Атрибут showingPlcHdr — это необязательный параметр, который задает контент по умолчанию, который вы включаете внутри управления (текст в этом примере) в качестве контента-задатки. Поэтому если пользователь щелкнет область элемента управления, будет выбрано все содержимое, что отличается от редактируемого содержимого.

Хотя пустой знак абзаца (w:p/) перед тегом sdt не требуется для добавления элемента управления содержимым (и добавляет интервал по вертикали над элементом управления в документе Word), но он позволяет разместить элемент управления в нужном абзаце. Это может быть важно в зависимости от типа и форматирования содержимого, которое будет добавлено в элемент управления.

Для привязки к элементу управления содержимое по умолчанию (в теге sdtContent) должно включать по крайней мере один полный абзац (как в этом абзаце), чтобы ваша привязка принимала мультимедиа из нескольких абзацев.

Атрибут части документа, удаленный из тега w:sdt этого примера, может быть указан в элементе управления содержимым для указания ссылки на отдельную часть в пакете, где может храниться содержимое заполнителя (части, расположенные в каталоге глоссария пакета Office Open XML). Хотя термин «часть документа» используется для обозначения частей XML (т. е. файлов) в пакете Office Open XML, «часть документа» с точки зрения свойства sdt означает тот же термин в Word, используемый для описания некоторых типов содержимого, в том числе стандартных блоков и экспресс-блоков свойства документа (например, встроенных элементов управления XML с привязкой к данным). Если в пакете Office Open XML в каталоге глоссария вы видите части, возможно, их потребуется сохранить, если вставляемое содержимое включает эти функции. Для типичного элемента управления, который вы собираетесь использовать для привязки в надстройке, они не требуются. Но помните, что если вы удалите части глоссария из пакета, также нужно удалить атрибут части документа из тега w:sdt.

В следующем разделе мы расскажем, как создавать и использовать привязки в надстройке Word.

Вставка контента в назначенном расположении

Вы уже посмотрели, как вставить содержимое при активном выборе в документ Word. Если создать привязку к именованному элементу управления содержимым в документе, вы сможете вставлять такие же типы содержимого в этот элемент управления.

Итак, когда этот подход может потребоваться?

Если вам нужно добавить или заменить контент в указанном расположении в шаблоне, например заполнить части документа из базы данных

Если вы хотите, чтобы содержимое, вставляемое в выделенное место, можно было заменить, например чтобы пользователь мог выбрать элементы оформления

Если вы хотите, чтобы пользователь мог добавить в документ данные, доступные в вашей надстройке, например для заполнения полей в области задач на основе информации, добавленной пользователем в документ

Скачайте пример кода Word-Add-in-JavaScript-AddPopulateBindings— это рабочий пример вставки элемента управления содержимым и привязки к нему, а также заполнения привязки.

Добавление именованного элемента управления содержимым и привязка к нему

При изучении представленного ниже кода JavaScript учитывайте следующие требования:

Как отмечалось ранее, для привязки к элементу управления в надстройке Word необходимо использовать элемент управления форматированным текстом.

Управление контентом должно иметь имя (это поле Title в диалоговом окне Свойства управления контентом, соответствующее тегу Alias в разметке Office Open XML). Так код определяет, где следует разместить привязку.

Можно использовать и привязать несколько именованных элементов управления. Укажите уникальное имя элемента управления содержимым, уникальный код элемента управления и уникальный код привязки.

Показанный здесь код делает следующие действия.

Пытается создать привязку к именованному элементу управления содержимым с помощью метода addFromNamedItemAsync.

Выполните этот шаг сначала, если есть вероятность того, что именованный элемент управления уже существует в документе при запуске кода надстройки. Например, вам понадобится выполнить это действие, если надстройка вставлена в шаблон с последующим сохранением, при этом шаблон создан для работы с надстройкой, содержащей предварительно размещенный элемент управления. Вам также понадобится выполнить это действие, если требуется связать элемент управления, размещенный надстройкой ранее.

При первом вызове метода вызов проверяет состояние результата, чтобы узнать, не удалось ли связывание, так как названный элемент не существует в документе (то есть элемент управления контентом с именем addFromNamedItemAsync MyContentControlTitle в этом примере). Если это так, код добавляет управление в точку активного выбора (с помощью), а setSelectedDataAsync затем привязывает к ней.

Как было сказано ранее и показано в предыдущем примере кода, имя элемента управления содержимым используется для определения места, где будет создана привязка. Однако в разметке Office Open XML код добавляет привязку к документу, используя имя и атрибут ID элемента управления содержимым.

Если вы посмотрите на разметку документа, в котором надстройка создала привязки, после выполнения кода, то увидите две части для каждой привязки. В разметке для управления контентом, где добавлена привязка (в document.xml), вы увидите атрибут w15:webExtensionLinked/.

В части документа с именем webExtensions1.xml вы увидите список созданных привязок. Каждый из них идентифицирован с помощью связывающего ID и атрибута ID применимого управления, например следующего, где атрибутом appref является ID управления контентом: we:binding type=»text» appref=»1382295294″/.

Привязку нужно добавить тогда, когда вы собираетесь использовать ее. Не добавляйте разметку привязки в разметку Office Open XML для вставки элемента управления, так как этот процесс приведет к удалению привязки.

Заполнение привязки

Код для записи контента в привязку похож на код для записи контента в выделение.

Как и setSelectedDataAsync в этом, вы указываете содержимое, которое необходимо вставить, и тип принуждения. Единственное дополнительное требование для записи в привязку — определение привязки по идентификатору. Обратите внимание, что идентификатор привязки, используемый в этом примере (bindings#myBinding), соответствует идентификатору (myBinding), заданному при создании в предыдущей функции.

Предыдущий пример кода — все, что вам нужно при первом заполнении или замене содержимого в привязке. При вставке в привязку новое содержимого автоматически заменяет существующее. Изучите пример Word-Add-in-JavaScript-AddPopulateBindings, где представлено два отдельных примера содержимого, которые можно использовать для заполнения одной привязки.

Добавление объектов, которые используют дополнительные Office части Open XML

Для многих типов контента требуются дополнительные части документа пакета Office Open XML. Это значит, что они ссылаются на информацию в другой части или сам контент хранится в одной или нескольких частях и указывается в document.xml.

Так, например, необходимо учитывать следующее:

Для контента, использующего стили для форматирования (например, текст, показанный ранее на рис. 2, или таблица на рис. 9), требуется часть styles.xml.

Изображения (например, на рис. 3 и 4) содержат двоичные данные изображений в одной, а иногда двух дополнительных частях.

Для диаграмм SmartArt (например, на рис. 10) требуется несколько дополнительных частей для описания структуры и контента.

Для диаграмм (как на рис. 11) требуется несколько дополнительных частей, в том числе собственная часть связей (RELS).

Вы также можете просмотреть измененные примеры разметки всех этих типов содержимого в ранее указанном примере кода Word-Add-in-Load-and-write-Open-XML. Эти типы содержимого можно вставить, используя код JavaScript, показанный ранее (и представленный в примерах кода) для вставки содержимого в выделенное место и записи содержимого в указанное расположение с помощью привязок.

Перед изучением примеров ознакомьтесь с несколькими советами по работе с каждым из этих типов контента.

Помните, что если вы сохраняете дополнительные части, указанные в document.xml, вам потребуется сохранить document.xml.rels и определения связей для сохраняемых частей, например styles.xml или файл изображения.

Работа со стилями

Тот же подход к редактированию разметки, который вы посмотрели в предыдущем примере с текстом с прямым форматированием, применяется при использовании стилей абзацев или стилей таблиц для формата контента. Однако разметка для работы со стилями абзацев намного проще, как и пример, описанный далее.

Редактирование разметки для контента с использованием стилей абзацев

Приведенная ниже разметка представляет содержимое для примера текста со стилем, показанного на рис. 2.

Как видите, разметка для форматированного текста в document.xml намного проще при использовании стиля, так как стиль содержит все параметры форматирования абзаца и шрифтов, которые в противном случае потребовалось бы указывать отдельно. Но, как упоминалось ранее, стили или прямое форматирование можно использовать для разных целей: прямое форматирование для определения внешнего вида независимо от форматирования в документе пользователя, а стиль абзаца (в частности, встроенный стиль абзаца, например «Заголовок 1», как показано здесь) для автоматического согласования форматирования текста с документом пользователя.

Использование стиля — хороший пример того, как важно прочитать и понять разметку вставляемого содержимого, так как не сразу становится очевидно, что здесь указывается другая часть документа. Если в разметку добавить определение стиля и не добавлять styles.xml, информация о стиле в document.xml будет игнорироваться независимо от того, используется ли этот стиль в документе пользователя.

Но если внимательно посмотреть на часть styles.xml, вы заметите, что только небольшая часть этой объемной разметки необходима при редактировании разметки, которая будет использоваться в надстройке:

Часть styles.xml по умолчанию содержит несколько пространств имен. Если вы сохраняете только сведения о стиле, требуемые для вашего контента, в большинстве случаев вам понадобится сохранить только пространство имен xmlns:w.

Содержимое тега w:docDefaults в начале части стилей будет игнорироваться, когда ваша разметка вставляется с помощью надстройки, и его можно удалить.

Наибольшая доля разметки в части styles.xml предназначена для тега w:latentStyles, который идет после части docDefaults, содержащего сведения для каждого доступного стиля (например, атрибуты внешнего вида области стилей и коллекция стилей). Эти сведения также игнорируются при вставке содержимого с помощью надстройки, и их можно удалить.

После сведений о стилях можно увидеть определение каждого стиля, используемого документом, на основе которого была создана разметка. В эти данные входят некоторые стили по умолчанию, используемые при создании нового документа, и они могут не относиться к вашему документу. Вы можете удалить определения стилей, которые не используются содержимым.

С каждым встроенным стилем заголовка связан стиль Char, версия стиля знака одного формата заголовков. Если вы не применили стиль заголовка как стиль знака, его можно удалить. Если стиль используется как стиль знака, он отображается в document.xml в теге свойств прогона (w:rPr), а не в теге свойств абзаца (w:pPr). Последнее происходит, только если вы применили стиль только к части абзаца, но также может произойти, если стиль был применен неправильно.

Если вы используете встроенный стиль для содержимого, добавлять полное определение не требуется. Необходимо только указать имя стиля, код стиля и по крайней мере один атрибут форматирования для приведенного Office Open XML, чтобы применить стиль к содержимому после вставки.

Но лучше включать полное определение стилей, даже если это предусмотрено по умолчанию для встроенных стилей. Если стиль уже используется в конечном документе, содержимое будет применять резидентное определение для стиля, независимо от того, что включено в styles.xml. Если стиль еще не используется в конечном документе, содержимое будет использовать определение стилей, предоставленное в разметке.

Например, единственное содержимое, необходимое для сохранения из styles.xml для примера текста, показанного на рисунке 2, который форматирован с помощью стиля Heading 1, это следующее:

В этом примере сохранено полное определение Word для стиля «Заголовок 1».

Изменение разметки для контента с помощью стилей таблиц

Если содержимое использует стиль таблицы, вам нужна та же относительная часть styles.xml, которая была описана в разделе, посвященном работе со стилями абзацев. Т. е. вам требуется сохранить только сведения для стиля, который используется в содержимом (при этом необходимо указать имя, код и по крайней мере один атрибут форматирования), но лучше всего включить полное определение стиля для поддержки всех возможных сценариев.

Но если посмотреть на разметку для таблицы в document.xml и определения стиля таблицы в styles.xml, вы увидите намного больше разметки, чем при работе со стилями абзацев.

В document.xml форматирование применяется ячейкой, даже если оно включено в стиль. Использование стиля таблицы не уменьшит размер разметки. Преимущество применения стилей таблиц для содержимого состоит в простоте обновления и согласования внешнего вида нескольких таблиц.

В файле styles.xml вы также увидите разметку большого размера, так как стили таблиц включают несколько типов возможных атрибутов форматирования для всех областей таблицы, таких как вся таблица, строки заголовков, четные и нечетные строки и столбцы (отдельно), первый столбец и т. д.

Работа с изображениями

Разметка изображения включает ссылку по крайней мере на одну часть, которая содержит двоичные данные изображения. Для сложного изображения разметка может состоять из сотен страниц, при этом изменить ее нельзя. Так как двоичные части изменять не надо, вы можете просто свернуть ее, если вы используете структурированный редактор, такой как Visual Studio, чтобы упростить просмотр и редактирование остального пакета.

Если вы посмотрите на пример разметки для изображения, показанного на рисунке 3 ранее, из примера кода Word-Add-in-Load-and-write-Open-XML, вы увидите, что разметка для изображения в document.xml включает сведения о размере и положении, а также ссылку на часть, которая содержит двоичные данные изображения. Эта ссылка входит в тег a:blip следующим образом:

Обратите внимание, что ссылка на связь используется явно (r:embed=»rID4″) и связанная часть необходима для отрисовки изображения, поэтому если не включить двоичные данные в пакет Office Open XML, возникнет ошибка. Файл styles.xml, описанный ранее, не вызовет ошибки, если его опустить, так как связь не указана явно и ссылается на часть, предоставляющую атрибуты содержимого (форматирование), а не входящую в само содержимое.

При изучении разметки обратите внимание на дополнительные пространства имен, используемые в теге a:blip. В document.xml вы увидите, что пространство имен xlmns:a (основное пространство имен drawingML) динамически расположено в начале использования ссылок drawingML, а не в верхней части document.xml. Однако пространство имен связей (r) необходимо сохранить в начале части document.xml. Проверьте разметку изображения на наличие дополнительных пространств имен. Remember that you don’t have to memorize which types of content require what namespaces, you can easily tell by reviewing the prefixes of the tags throughout document.xml.

Сведения о дополнительных частях и форматировании изображений

Если вы используете эффекты форматирования изображений Office, например как для изображения на рисунке 4, где применяются параметры яркости и контрастности (помимо стиля рисунка), может потребоваться вторая часть двоичных данных для копии изображения в формате высокой четкости. Это необходимо для форматирования с эффектом наложения, ссылка на эту копию содержится в document.xml и выглядит следующим образом:

Разметку для отформатированного изображения, показанного на рисунке 4 (где, среди прочего, используются эффекты наслоения), см. в примере кода Word-Add-in-Load-and-write-Open-XML.

Работа с диаграммами SmartArt

Со схемой SmartArt связано четыре части, но только две из них являются обязательными. Вы можете изучить пример разметки SmartArt в примере кода Word-Add-in-Load-and-write-Open-XML. Для начала рассмотрим краткое описание каждой части и причины, по которой они являются обязательными или необязательными:

Если в содержимом есть несколько диаграмм, они будут нумероваться последовательно (1 в именах файлах, показанных здесь, будет заменяться соответствующим номером).

layout1.xml: это обязательная часть. Она содержит определение разметки для внешнего вида и функциональности структуры.

data1.xml: это обязательная часть. Она содержит данные, используемые вашим экземпляром диаграммы.

drawing1.xml: это часть не всегда требуется, но если применить настраиваемое форматирование к элементам вашего экземпляра диаграммы, например прямое форматирование отдельных фигур, возможно, ее придется сохранить.

colors1.xml: это необязательная часть. Она содержит сведения о цвете стиля, но цвета диаграммы по умолчанию будут соответствовать цветам активной темы форматирования в целевом документе в зависимости от стиля цвета SmartArt, применяемого на вкладке «Работа с рисунками SmartArt» в Word перед сохранением разметки Office Open XML.

quickStyles1.xml: это необязательная часть. Как и часть colors1.xml, ее можно удалить, так как ваша диаграмма будет использовать определение примененного стиля SmartArt, доступное в целевом документе (т. е. автоматически адаптирует тему форматирования в целевом документе).

Файл layout1.xml SmartArt — это хороший пример ресурса, где можно сократить разметку, но это не будет стоить потраченного времени (так как объем удаленной разметки будет очень мал по сравнению со всем пакетом). Если вы хотите избавиться от всей возможной разметки, можно удалить тег dgm:sampData и его содержимое. Следующий пример определяет, как эскиз диаграммы отображается в коллекциях стилей SmartArt. Но если его опустить, будут использоваться данные по умолчанию.

Помните, что разметка схемы SmartArt в файле document.xml содержит ссылки на коды связей с частями структуры, данных, цветов и экспресс-стилей. Вы можете удалить ссылки на части цветов и стилей в файле document.xml, если вы удаляете данные части и определения их связей (и это совершенно точно рекомендуемый подход, так как вы удаляете эти связи), но если их сохранить, ошибки не будет, так как они не требуются для вставки диаграммы в документ. Эти ссылки можно найти в document.xml в теге dgm:relIds. Независимо от того, выполняете ли вы это действие, сохраните ссылки на коды связи для обязательных частей структуры и данных.

Работа с диаграммами

Как и диаграммы SmartArt, обычные диаграммы содержат несколько дополнительных частей. Но настройка для них немного отличается от SmartArt, так как у диаграммы есть собственный файл связей. Ниже приведено описание необходимых и съемных частей документов для диаграммы.

Как и для диаграмм SmartArt, если ваш контент содержит несколько диаграмм, они будут нумероваться последовательно (1 в именах файлах, показанных здесь, будет заменяться соответствующим номером).

В файле document.xml.rels вы увидите ссылку на обязательную часть, который содержат данные, описывающие диаграмму (chart1.xml).

Вы также увидите отдельный файл связей для каждой диаграммы в пакете Office Open XML, например chart1.xml.rels.

chart1.xml.rels ссылается на три файла, но требуется только один из них. Эти файлы включают двоичные данные книги Excel (обязательны), а также цвета и стили (colors1.xml и styles1.xml), которые можно удалить.

Диаграммы, которые можно создавать и редактировать непосредственно в Word — это диаграммы Excel. Их данные хранятся на листе Excel, который в виде двоичных данных встроен в пакет Office Open XML. Как и части двоичных данных для изображений, эти данные Excel также обязательны, но в этой части редактировать нечего. Поэтому вы можете просто свернуть часть в редакторе, чтобы не прокручивать ее вручную для просмотра оставшейся части пакета Office Open XML.

Но, как и в случае со SmartArt, вы можете удалить части цветов и стилей. Если вы использовали стили диаграмм и цветов для форматирования диаграммы, она будет применять соответствующее форматирование автоматически после вставки в целевой документ.

Измененную разметку для диаграммы, показанной на рисунке 11, см. в примере кода Word-Add-in-Load-and-write-Open-XML.

Изменение Office XML для использования в надстройке области задач

Вы уже знаете, как определить и изменить содержимое в разметке. Если задача по-прежнему кажется сложной, если вы посмотрите на массовый пакет Office XML, созданный для документа, ниже приводится краткое описание рекомендуемых действий, которые помогут вам быстро изменить этот пакет.

Помните, что вы можете использовать все RELS-части в пакете как карту, чтобы быстро узнать, какие части документа можно удалить.

Откройте неструктурированный XML-файл в Visual Studio и нажмите клавиши CTRL+K, CTRL+D, чтобы отформатировать файл. Затем с помощью кнопок свертывания и развертывания в левой части сверните части, которые нужно удалить. Вы также можете свернуть длинные части, которые нужно сохранить, но которые не требуется изменять (например, двоичные данные в формате Base64 для файла изображения), чтобы упростить и ускорить чтение разметки.

Удалите все части, не связанные с содержимым, такие как сноски, верхние и нижние колонтитулы, которые вам не требуются. Опять же, не забудьте удалить соответствующие связи.

Изучите часть document.xml.rels, чтобы узнать, требуются ли какие-либо файлы, указанный в ней, для содержимого, например файл изображения, часть стилей или части схемы SmartArt. Удалите связи для всех частей, которые не требуются для содержимого, и удалите связанную часть. Если для содержимого не нужны части документа, указанные в document.xml.rels, вы можете удалить и этот файл.

Если у вашего контента есть дополнительная RELS-часть (например, chart#.xml.rels), изучите ее, чтобы узнать, существуют ли другие части, которые можно удалить (например, экспресс-стили для диаграмм), и удалите связь из файла и соответствующую часть.

Удалите из document.xml пространства имен, не указанные в части, свойства раздела, если содержимое не включает разрыв раздела, и всю разметку, которая не связана с вставляемым содержимым. При вставке фигур или текстовых полей вы также можете удалить резервную разметку.

Измените все другие обязательные части, разметку которых можно удалить без влияния на ваш контент, например часть стилей.

После выполнения предыдущих семи шагов вы удалите около 90–100 % разметки, которую можно удалить, в зависимости от содержимого. В большинстве случаев далее удалять разметку не требуется.

Независимо от того, остановитесь ли вы на этом или решите удалить все возможные строки разметки, помните, что вы можете использовать пример кода Word-Add-in-Get-Set-EditOpen-XML для быстрой проверки измененной разметки.

Если вы обновляете фрагмент Office Open XML в существующем решении во время разработки, удалите временные файлы Интернета перед повторным запуском решения, чтобы обновить Office Open XML, используемый кодом. Разметка, которая входит в состав решения в XML-файлах, кэшируется на компьютере. Вы можете удалить временные файлы Интернета в веб-браузере по умолчанию. Чтобы получить доступ к параметрам Интернета и удалить эти параметры из Visual Studio 2019 г., в меню Debug выберите Параметры. Затем в поле Среда выберите Браузер, а затем выберите Параметры Internet Explorer.

Создание надстройки как для шаблона, так и для отдельного использования

В этой статье вы рассмотрели несколько примеров применения Office Open XML в надстройках для Word. Вы посмотрели широкий спектр примеров богатых типов контента, которые можно вставить в документы с помощью типа принуждения Office Open XML, а также методов JavaScript для вставки этого контента на выбор или в указанное (связанное) расположение.

Итак, что еще нужно знать при создании надстройки для автономного использования (вставляемого из Магазина или собственного сервера) и применения в предварительно созданном шаблоне, который предназначен для работы с надстройкой? Возможно, вы уже знаете все, что нужно.

Разметка для определенного типа содержимого и методы его вставки для автономных надстроек и шаблонов одинаковы. Если вы используете шаблоны, созданные для работы с надстройкой, убедитесь, что код JavaScript включает обратные вызовы, учитывающие ситуации, в которых содержимое уже существует в документе (как показано в примере привязки в разделе Добавление именованного элемента управления содержимым и привязка к нему).

При использовании шаблонов в надстройке (она может храниться в шаблоне, когда пользователь создал приложение, или она может вставлять шаблон) вам также может потребоваться использовать другие элементы API, чтобы создать более надежное и интерактивное решение. Например, вы можете добавить идентифицирующие данные в пользовательскую XML-часть, которые будут использоваться для определения типа шаблона и предоставления пользователю связанных с шаблоном параметров. Дополнительные сведения о работе с пользовательским XML в надстройках см. в следующих дополнительных ресурсах.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *