Автоматизация слов в Python

Файлы MS Word широко используются для создания различных типов документов, таких как счета-фактуры, отчеты, технические статьи и т. д. Автоматизация документов упростила пользователям динамическое создание документов Word из своих веб-порталов или настольных порталов. Поэтому в этой статье мы расскажем, как создавать документы Word в Python без MS Office. Кроме того, вы узнаете, как создать файл DOCX или DOC и динамически добавить в него текст или другие элементы с помощью Python.

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

Для динамического создания документов Word мы будем использовать Aspose.Words for Python. Это мощная библиотека Python, которая позволяет легко создавать документы MS Word и управлять ими. Вы можете установить библиотеку в свое приложение Python из PyPI, используя следующую команду pip.

pip install aspose-words

Создайте файл Word DOCX или DOC в Python

Ниже приведены шаги для создания документа Word с нуля в Python.

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Вставьте текст в документ, используя метод DocumentBuilder.write().
  • Сохраните документ Word, используя метод Document.save().

В следующем примере кода показано, как создать документ Word DOCX.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add text to the document
builder.write("Hello world!")

# save document
doc.save("out.docx")

Выход

создать текстовый документ на питоне

Загрузите существующий документ Word в Python

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

import aspose.words as aw

# create document object
doc = aw.Document("document.docx")

# manipulate document

# save document
doc.save("out.docx")

Вставьте абзац в документ Word с помощью Python

Документы Word содержат текст в виде абзацев. Поэтому в этом разделе мы продемонстрируем, как вставить абзац в документ Word с помощью Python.

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Получите ссылку на шрифт из объекта Documentbuilder и установите шрифт.
  • Получите ссылку на абзац из объекта Documentbuilder и установите отступ, выравнивание и т. д.
  • Вставьте текст в абзац, используя метод DocumentBuilder.write().
  • Сохраните документ Word, используя метод Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# create font
font = builder.font
font.size = 16
font.bold = True
font.name = "Arial"
font.underline = aw.Underline.DASH

# set paragraph formatting
paragraphFormat = builder.paragraph_format
paragraphFormat.first_line_indent = 8
paragraphFormat.alignment = aw.ParagraphAlignment.JUSTIFY
paragraphFormat.keep_together = True

# add text
builder.writeln("A whole paragraph.")

# save document
doc.save("out.docx")

Выход

создать абзац в документе Word Python

Узнайте больше о работе с абзацами в документах Word с помощью Python.

Добавить таблицу в документ Word с помощью Python

Таблицы являются неотъемлемой частью документов для отображения информации в виде строк и столбцов. Aspose.Words для Python значительно упрощает работу с таблицами. Ниже приведены шаги по добавлению таблицы в документ Word с помощью Python.

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Запустите таблицу с помощью метода DocumentBuilder.starttable() и получите ссылку на таблицу в объекте.
  • Вставьте ячейку с помощью метода DocumentBuilder.insertcell().
  • Установите автоподгонку с помощью метода autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS).
  • Установить выравнивание ячейки.
  • Вставьте текст в ячейку, используя метод DocumentBuilder.write().
  • При необходимости повторите вставку ячеек и текста в ячейки.
  • Завершите строку после завершения вставки ячеек.
  • Завершите таблицу, когда вы вставите все строки.
  • Сохраните документ Word, используя метод Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# start table
table = builder.start_table()

# insert cell 
builder.insert_cell()
table.auto_fit(aw.tables.AutoFitBehavior.AUTO_FIT_TO_CONTENTS)

# set formatting and add text
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER
builder.write("This is row 1 cell 1")

# insert cell
builder.insert_cell()
builder.write("This is row 1 cell 2")

# end row
builder.end_row()

# insert another cell in the next row
builder.insert_cell()

# format row if required
builder.row_format.height = 100
builder.row_format.height_rule = aw.HeightRule.EXACTLY

# format cell and add text
builder.cell_format.orientation = aw.TextOrientation.UPWARD
builder.writeln("This is row 2 cell 1")

# insert another cell, set formatting and add text
builder.insert_cell()
builder.cell_format.orientation = aw.TextOrientation.DOWNWARD
builder.writeln("This is row 2 cell 2")

# end row
builder.end_row()

# end table
builder.end_table()

# save document
doc.save("out.docx")

Выход

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

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

Создайте список в документе Word с помощью Python

Ниже приведены шаги для создания списка в документе Word с использованием Python.

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Установите форматирование с помощью метода DocumentBuilder.listformat.applynumberdefault().
  • Вставьте элемент с помощью метода DocumentBuilder.writeln(“Item 1”).
  • Вставьте второй элемент, используя метод DocumentBuilder.writeln(“Item 2”).
  • Чтобы вставить элементы на следующий уровень списка, вызовите метод DocumentBuilder.listformat.listindent() и вставьте элементы.
  • Удалить номера из списка с помощью метода DocumentBuilder.listformat.removenumbers().
  • Сохраните документ Word, используя метод Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# set list formatting
builder.list_format.apply_number_default()

# insert item
builder.writeln("Item 1")
builder.writeln("Item 2")

# set indentation for next level of list
builder.list_format.list_indent()
builder.writeln("Item 2.1")
builder.writeln("Item 2.2")

# indent again for next level
builder.list_format.list_indent()
builder.writeln("Item 2.2.1")
builder.writeln("Item 2.2.2")

# outdent to get back to previous level
builder.list_format.list_outdent()
builder.writeln("Item 2.3")

# outdent again to get back to first level
builder.list_format.list_outdent()
builder.writeln("Item 3")

# remove numbers
builder.list_format.remove_numbers()

# save document
doc.save("out.docx")

Выход

создать список в документе Word Python

Узнайте больше о работе со списками в документах Word с использованием Python.

Вставка изображений в документ Word с помощью Python

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

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Вставьте изображение с помощью метода DocumentBuilder.insertimage() и передайте путь к файлу изображения в качестве параметра.
  • Сохраните документ Word, используя метод Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add image
builder.insert_image("Logo.jpg")

# save document
doc.save("out.docx")

Выход

создать изображение в документе Word Python

Создайте оглавление в документах Word с помощью Python

В различных случаях документы Word содержат оглавление (TOC). TOC дает вам обзор содержимого документа Word. Следующие шаги демонстрируют, как добавить оглавление в документы Word с помощью Python.

  • Создайте объект класса Document.
  • Создайте объект класса DocumentBuilder.
  • Вставьте оглавление, используя метод DocumentBuilder.inserttableofcontents().
  • Вставьте разрыв страницы после оглавления, используя метод DocumentBuilder.insertbreak(aw.BreakType.PAGEBREAK).
  • После добавления/обновления содержимого документа обновите оглавление с помощью метода Document.updatefields().
  • Сохраните документ Word, используя метод Document.save().

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

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# insert table of contents
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u")

# start the actual document content on the second page
builder.insert_break(aw.BreakType.PAGE_BREAK)

# add content
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 1.1")
builder.writeln("Heading 1.2")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 2")
builder.writeln("Heading 3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3
builder.writeln("Heading 3.1.1")
builder.writeln("Heading 3.1.2")
builder.writeln("Heading 3.1.3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.2")
builder.writeln("Heading 3.3")

# the newly inserted table of contents will be initially empty
# it needs to be populated by updating the fields in the document
doc.update_fields()

# save document
doc.save("out.docx")

Выход

создать toc в документе word python

Узнайте больше о работе с оглавлением с использованием Python.

Читать далее

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

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

Вы можете получить временную лицензию, чтобы использовать Aspose.Words for Python без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как создавать файлы Word DOCX или DOC в Python. Кроме того, вы видели, как динамически вставлять текст, изображения, таблицы, списки и оглавление в документы Word. Вы можете попробовать API и поделиться своими отзывами или запросами на нашем форуме.

Смотрите также

Совет: Aspose предоставляет БЕСПЛАТНЫЙ онлайн-конвертер PowerPoint to Word, который позволяет быстро создавать документы Word из презентаций.