Формирование документа MS Word программно.
2009-11-05 от Kosten
При разработке ПО очень часто возникает задача формирования отчетных документов, на пример в формате Microsoft Word. Решать эту задачу можно различными способами. Я хочу поделиться вариантом, который не требует установки дополнительных компонент.
Начиная с версии MS Office 2003 (а может и более ранней) появилась поддержка документов в формате XML. Для формирования XML-файла не нужно каких-либо библиотек - достаточно работы со строками. Итак, наша цель - сформировать XML-файл, который представляет собой документ MS Word.
Вот первые две строчки с которых начинается такой файл:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <?mso-application progid='Word.Document'?>
Следующие строки так же обязательны, именно они начинают документ:
<w:wordDocument xmlns:w='http://schemas.microsoft.com/office/word/2003/wordml' xmlns:v='urn:schemas-microsoft-com:vml' xmlns:w10='urn:schemas-microsoft-com:office:word' xmlns:sl='http://schemas.microsoft.com/schemaLibrary/2003/core' xmlns:aml='http://schemas.microsoft.com/aml/2001/core' xmlns:wx='http://schemas.microsoft.com/office/word/2003/auxHint' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' xmlns:wsp='http://schemas.microsoft.com/office/word/2003/wordml/sp2' w:macrosPresent='no' w:embeddedObjPresent='no' w:ocxPresent='no' xml:space='preserve'> <w:body>
Завершается MS Word документ так:
</w:body></w:wordDocument>
Написанного выше уже достаточно что-бы создать пустой документ. Теперь рассмотрим, как выглядят некоторые элементы Word-документа, которые используются в большинстве случаев.
Просто текст (параграф):
<w:p><w:r><w:t> Тут будет Ваш текст. </w:t></w:r></w:p>
Обратите внимание, что этот блок и все последующие необходимо размещать между элементами w:body и /w:body.
Вот пример вставки текста со стилем bold и выравниванием:
<w:p><w:pPr> <w:jc w:val='выравнивание'/></w:pPr> <w:r><w:rPr><w:b /></w:rPr><w:t> Тут будет Ваш текст. </w:t></w:r></w:p>
Вставка разрыва строки между параграфами:
<w:p><w:r><w:cr></w:cr></w:r></w:p>
Вставка разрыва страницы:
<w:br w:type='page' />Вот самый минимум, который позволит Вам формировать документы в формате MS Word. В следующий раз я расскажу о том, как добавить в документ таблицу.
Заглохли, попали в ДТП, сломался автомобиль? Наши эвакуаторы помогут Вам в самых трудных ситуациях.
Опубликовано Четверг, 05-11-2009 в 4:11 пп в рубрики Develop. Вы можете оставить отслеживать комментарии к записи при помощи RSS 2.0 ленты. Вы можете оставить комментарий, или трекбек с Вашего сайта.
2009-11-11 в 1:05 пп
[...] « Формирование документа MS Word программно. [...]
2009-11-13 в 1:12 пп
Можно ли распространить данный подход, если требуется программно создать сводную таблицу в разных версиях, но не MS Word, а MS Excel? Например, чтобы все работало и в WS Excel2003, и в MS Excel2007?