Automação de palavras em Python

Os arquivos do MS Word são imensamente usados para criar vários tipos de documentos, como faturas, relatórios, artigos técnicos, etc. A automação de documentos facilitou os usuários a gerar documentos do Word dinamicamente a partir de seus portais web ou desktop. Portanto, neste artigo, abordaremos como gerar documentos do Word em Python sem o MS Office. Além disso, você aprenderá como criar um arquivo DOCX ou DOC e adicionar texto ou outros elementos nele dinamicamente usando Python.

API Python para criar documentos do Word

Para criar documentos do Word dinamicamente, usaremos Aspose.Words for Python. É uma poderosa biblioteca Python que permite criar e manipular documentos do MS Word sem problemas. Você pode instalar a biblioteca em seu aplicativo Python de PyPI usando o seguinte comando pip.

pip install aspose-words

Criar um arquivo DOCX ou DOC do Word em Python

A seguir estão as etapas para criar um documento do Word do zero em Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Insira texto no documento usando o método DocumentBuilder.write().
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como criar um documento 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")

Resultado

criar documento do word python

Carregar um documento do Word existente em Python

Você também pode carregar um documento do Word existente fornecendo seu caminho para o construtor Document. O exemplo de código a seguir mostra como carregar um documento do Word.

import aspose.words as aw

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

# manipulate document

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

Inserir um parágrafo no documento do Word usando Python

Os documentos do Word contêm texto na forma de parágrafos. Portanto, nesta seção, demonstraremos como inserir um parágrafo em um documento do Word usando Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Obtenha a referência da fonte do objeto Documentbuilder e defina a fonte.
  • Obtenha a referência do parágrafo do objeto Documentbuilder e defina o recuo, alinhamento, etc.
  • Insira texto no parágrafo usando o método DocumentBuilder.write().
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como inserir um parágrafo em um documento do Word usando 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")

Resultado

criar parágrafo no documento do word python

Saiba mais sobre trabalhar com parágrafos em documentos do Word usando Python.

Adicionar tabela em um documento do Word usando Python

As tabelas são parte integrante dos documentos para exibir informações na forma de linhas e colunas. Aspose.Words for Python torna muito mais fácil trabalhar com tabelas. A seguir estão as etapas para adicionar uma tabela em um documento do Word usando Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Inicie uma tabela usando o método DocumentBuilder.starttable() e obtenha a referência da tabela em um objeto.
  • Insira uma célula usando o método DocumentBuilder.insertcell().
  • Defina o ajuste automático usando o método autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS).
  • Defina o alinhamento da célula.
  • Insira texto na célula usando o método DocumentBuilder.write().
  • Repita a inserção de células e texto nas células conforme necessário.
  • Encerre uma linha ao concluir a inserção de células.
  • Finalize a tabela quando tiver inserido todas as linhas.
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como inserir uma tabela em um documento do Word usando 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")

Resultado

criar tabela no documento do word python

Saiba mais sobre como trabalhar com tabelas em documentos do Word usando Python.

Criar uma lista em um documento do Word usando Python

A seguir estão as etapas para criar uma lista em um documento do Word usando Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Defina a formatação usando o método DocumentBuilder.listformat.applynumberdefault().
  • Insira o item usando o método DocumentBuilder.writeln(“Item 1”).
  • Insira o segundo item usando o método DocumentBuilder.writeln(“Item 2”).
  • Para inserir itens no próximo nível da lista, chame o método DocumentBuilder.listformat.listindent() e insira os itens.
  • Remova os números da lista usando o método DocumentBuilder.listformat.removenumbers().
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como criar uma lista em documentos do Word usando 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")

Resultado

criar lista no documento do word python

Leia mais sobre trabalhar com listas em documentos do Word usando Python.

Inserir imagens em um documento do Word usando Python

Ao trabalhar com documentos do Word, você não pode ignorar objetos gráficos, como imagens. Então, vamos dar uma olhada em como inserir imagens em um documento do Word dinamicamente usando Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Insira a imagem usando o método DocumentBuilder.insertimage() e passe o caminho do arquivo de imagem como parâmetro.
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como inserir uma imagem em um documento do Word usando 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")

Resultado

criar imagem no documento do word python

Criar índice em documentos do Word usando Python

Em vários casos, os documentos do Word contêm uma tabela de conteúdo (TOC). O sumário fornece uma visão geral do conteúdo do documento do Word. As etapas a seguir demonstram como adicionar um sumário em documentos do Word usando Python.

  • Crie um objeto da classe Document.
  • Crie um objeto da classe DocumentBuilder.
  • Insira o índice usando o método DocumentBuilder.inserttableofcontents().
  • Insira uma quebra de página após o sumário usando o método DocumentBuilder.insertbreak(aw.BreakType.PAGEBREAK).
  • Após adicionar/atualizar o conteúdo do documento, atualize o TOC usando o método Document.updatefields().
  • Salve o documento do Word usando o método Document.save().

O exemplo de código a seguir mostra como inserir um sumário em um documento do Word usando 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")

Resultado

criar toc no documento do word python

Leia mais sobre trabalhar com o índice usando Python.

consulte Mais informação

Este artigo cobriu algumas operações básicas de criação de documentos do Word e inserção de diferentes elementos. O Aspose.Words para Python também fornece vários outros recursos que você pode explorar usando a documentação.

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária para usar o Aspose.Words for Python sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como criar arquivos Word DOCX ou DOC em Python. Além disso, você viu como inserir texto, imagens, tabelas, listas e sumário em documentos do Word dinamicamente. Você pode experimentar a API e compartilhar seus comentários ou dúvidas por meio do nosso fórum.

Veja também

Dica: O Aspose fornece um Conversor PowerPoint to Word online GRATUITO que permite criar documentos do Word a partir de apresentações rapidamente.