Python создать документ Word из шаблона

Вы ищете способ создавать документы Word на основе шаблонов? Вы пришли в нужное место! В этом сообщении блога мы рассмотрим лучшее решение для создания документов Word из шаблонов с использованием различных типов источников данных в Python. Узнайте, как использовать предопределенные шаблоны для создания документов Word в формате DOCX путем заполнения заполнителей с использованием различных источников данных, таких как XML, JSON или CSV.

В этой статье рассматриваются следующие темы:

  1. Библиотека Python для создания документов Word из шаблонов
  2. Создание документов Word из шаблона с использованием данных XML
  3. Создание документов Word из шаблона с использованием данных JSON
  4. Создание документов Word с данными CSV в Python
  5. Механизм создания отчетов Python LINQ
  6. Бесплатные ресурсы

Библиотека Python для создания документов Word из шаблонов

Мы будем использовать LINQ Reporting Engine API Aspose.Words for the Python для создания документов Word из шаблонов. Этот движок поддерживает различные теги для текста, изображений, списков, таблиц, гиперссылок и закладок. Мы заполняем документы Word, содержащие эти теги, и заполняем их данными из источников данных XML, JSON или CSV. Итак, давайте начнем создавать документы Word из шаблонов с помощью Python.

Установка Aspose.Words for Python

Вы можете загрузить пакет или установить API из PyPI, используя следующую команду pip в консоли:

> pip install aspose-words

Создание документов Word из шаблона с использованием XML-данных в Python

Для создания документа Word из шаблона с использованием источника данных XML нам нужен файл шаблона и исходные данные XML. Мы создадим документ Word (DOC/DOCX) со следующими заполнителями в качестве содержимого шаблонного документа:

Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth:
<<[Birth]:"dd.MM.yyyy">>

Children:
<<foreach [in Child]>><<[Child_Text]>>
<</foreach>>"""

Вот источник данных XML, который мы будем использовать в этом примере:

<Person>
	<Name>John Doe</Name>
	<Age>30</Age>
	<Birth>1989-04-01 4:00:00 pm</Birth>
	<Child>Ann Doe</Child>
	<Child>Charles Doe</Child>
</Person>

Теперь мы можем легко создать документ Word из источника данных XML, выполнив следующие шаги:

  1. Загрузите файл шаблона Word, используя класс Document.
  2. Создайте экземпляр класса XmlDataSource и инициализируйте его путем к XML-файлу.
  3. Создайте экземпляр класса ReportingEngine.
  4. Вызовите метод ReportingEngine.BuildReport(), указав шаблон, источник данных и имя источника данных.
  5. Сохраните созданный документ Word с помощью метода Document.Save().

В следующем примере кода показано, как создать документ Word из источника данных XML в Python.

# В этом примере кода показано, как создать документ Word из шаблона с использованием источника данных XML.
# Загрузите шаблон
doc = aw.Document("D:\\Files\\template.docx")

# Загрузите источник данных
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Инициализировать механизм отчетов
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Сохраните документ
doc.save("D:\\Files\\WordFromXML.docx")

Выход

Создание документов Word из шаблона с использованием XML-данных в Python

Создание документов Word из шаблона с использованием данных JSON в Python

Для создания документа Word с использованием источника данных JSON мы будем использовать следующий шаблон Word:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

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

[
   {
       Name: "John Smith",
       Contract:
       [
           {
               Client:
               {
                   Name: "A Company"
               },
               Price: 1200000
           },
           {
               Client:
               {
                   Name: "B Ltd."
               },
               Price: 750000
           },
           {
               Client:
               {
                   Name: "C & D"
               },
               Price: 350000
           }
       ]
   },
   {
       Name: "Tony Anderson",
       Contract:
       [
           {
               Client:
               {
                   Name: "E Corp."
               },
               Price: 650000
           },
           {
               Client:
               {
                   Name: "F & Partners"
               },
               Price: 550000
           }
       ]
   },
]

Мы можем легко создать документ Word из источника данных JSON, выполнив шаги, упомянутые ранее. Однако мы будем использовать класс JsonDataSource для загрузки и использования источника данных JSON на шаге 2.

В следующем примере кода показано, как создать документ Word из шаблона с помощью JSON в Python.

# В этом примере кода показано, как создать документ Word из шаблона с использованием источника данных JSON.
# Загрузите шаблон
doc = aw.Document("D:\\Files\\template-json.docx")

# Загрузите источник данных
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Инициализировать механизм отчетов
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Сохраните документ
doc.save("D:\\Files\\WordFromJSON.docx")

Выход

Создание документов Word из шаблона с использованием данных JSON в Python

Создание документов Word с данными CSV в Python

Для создания документа Word из CSV мы будем использовать следующий шаблон Word:

<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Column2)]>>

Шаблон будет заполнен следующими данными CSV:

John Doe,30,1989-04-01 4:00:00 pm
Jane Doe,27,1992-01-31 07:00:00 am
John Smith,51,1968-03-08 1:00:00 pm

Теперь мы можем создать документ Word из источника данных CSV, выполнив шаги, упомянутые ранее. Однако мы будем использовать класс CsvDataSource для загрузки и использования источника данных CSV на шаге 2.

В следующем примере кода показано, как создать документ Word из источника данных CSV в Python.

# В этом примере кода показано, как создать документ Word из шаблона с использованием источника данных JSON.
# Загрузите шаблон
doc = aw.Document("D:\\Files\\template-csv.docx")

# Загрузите источник данных
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Инициализировать механизм отчетов
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Сохраните документ
doc.save("D:\\Files\\WordFromCSV.docx")

Выход

Создание документов Word с данными CSV в Python

Получите бесплатную лицензию

Вы можете получить бесплатную временную лицензию и создавать документы Word без ограничений ознакомительной версии.

Механизм отчетов Python LINQ — Подробнее

Механизм отчетов LINQ поддерживает широкий спектр тегов для динамического создания полнофункциональных документов Word в Python. Подробнее об этих тегах и их синтаксисе можно прочитать в этой статье.

Python создает документ Word из шаблона — бесплатные ресурсы

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

Заключение

В этой статье мы узнали, как создавать документы Word из шаблонов в Python. Мы также увидели, как использовать источники данных XML, JSON и CSV для создания документов Word. Используя Aspose.Words for Python LINQ Reporting Engine, вы можете легко создавать различные типы документов Word. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.

Статьи по Теме