Python gerar documento do Word a partir de modelo

Você está procurando uma maneira de criar documentos do Word a partir de modelos? Você veio ao lugar certo! Nesta postagem do blog, exploraremos a melhor solução para gerar documentos do Word a partir de modelos usando diferentes tipos de fontes de dados em Python. Aprenda como aproveitar modelos predefinidos para gerar documentos do Word no formato DOCX preenchendo espaços reservados usando várias fontes de dados, como XML, JSON ou CSV.

Este artigo cobre os seguintes tópicos:

  1. Biblioteca Python para gerar documentos do Word a partir de modelos
  2. Criar documentos Word a partir de modelo usando dados XML
  3. Gerar documentos Word a partir de modelo usando dados JSON
  4. Gerar documentos Word com dados CSV em Python
  5. Mecanismo de relatório Python LINQ
  6. Recursos Gratuitos

Biblioteca Python para gerar documentos do Word a partir de modelos

Usaremos o LINQ Reporting Engine da Aspose.Words for the Python API para gerar documentos do Word a partir de modelos. Este mecanismo oferece suporte a diferentes tags para texto, imagens, listas, tabelas, hiperlinks e marcadores. Preenchemos documentos do Word que apresentam essas tags e os preenchemos com dados de fontes de dados XML, JSON ou CSV. Então, vamos começar a gerar documentos do Word a partir de modelos usando Python.

Instalando Aspose.Words para Python

Você pode baixar o pacote ou instalar a API do PyPI usando o seguinte comando pip no console:

> pip install aspose-words

Crie documentos do Word a partir de um modelo usando dados XML em Python

Para gerar o documento Word a partir de um modelo usando a fonte de dados XML, precisamos de um arquivo de modelo e de dados de origem XML. Criaremos um documento Word (DOC/DOCX) com os seguintes espaços reservados como conteúdo do documento modelo:

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

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

Aqui está a fonte de dados XML que usaremos neste exemplo:

<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>

Agora, podemos gerar facilmente um documento Word a partir de uma fonte de dados XML seguindo as etapas abaixo:

  1. Carregue o arquivo de modelo do Word usando a classe Document.
  2. Crie uma instância da classe XmlDataSource e inicialize-a com o caminho do arquivo XML.
  3. Instancie a classe ReportingEngine.
  4. Chame o método ReportingEngine.BuildReport() com o modelo, a fonte de dados e o nome da fonte de dados.
  5. Salve o documento Word gerado usando o método Document.Save().

O exemplo de código a seguir mostra como gerar um documento do Word a partir de uma fonte de dados XML em Python.

# Este exemplo de código demonstra como gerar um documento do Word a partir de um modelo usando fonte de dados XML.
# Carregue o modelo
doc = aw.Document("D:\\Files\\template.docx")

# Carregar a fonte de dados
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Inicializar mecanismo de relatórios
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Salve o documento
doc.save("D:\\Files\\WordFromXML.docx")

Saída

Gere documentos do Word a partir de um modelo usando dados XML em Python

Gere documentos do Word a partir de modelo usando dados JSON em Python

Para gerar um documento do Word usando uma fonte de dados JSON, usaremos o seguinte modelo do Word:

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

A seguir seria a fonte de dados JSON que usaremos para preencher o modelo:

[
   {
       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
           }
       ]
   },
]

Podemos gerar facilmente o documento do Word a partir de uma fonte de dados JSON seguindo as etapas mencionadas anteriormente. No entanto, usaremos a classe JsonDataSource para carregar e usar a fonte de dados JSON na etapa 2.

O exemplo de código a seguir mostra como gerar um documento do Word a partir do modelo usando JSON em Python.

# Este exemplo de código demonstra como gerar um documento do Word a partir de um modelo usando a fonte de dados JSON.
# Carregue o modelo
doc = aw.Document("D:\\Files\\template-json.docx")

# Carregar a fonte de dados
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Inicializar mecanismo de relatórios
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Salve o documento
doc.save("D:\\Files\\WordFromJSON.docx")

Saída

Gere documentos do Word a partir de modelo usando dados JSON em Python

Gere documentos Word com dados CSV em Python

Para gerar o documento Word a partir de CSV, usaremos o seguinte modelo Word:

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

O modelo será preenchido com os seguintes dados 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

Agora podemos gerar o documento Word a partir da fonte de dados CSV seguindo as etapas mencionadas anteriormente. No entanto, usaremos a classe CsvDataSource para carregar e usar a fonte de dados CSV na etapa 2.

O exemplo de código a seguir mostra como gerar um documento do Word a partir de uma fonte de dados CSV em Python.

# Este exemplo de código demonstra como gerar um documento do Word a partir de um modelo usando a fonte de dados JSON.
# Carregue o modelo
doc = aw.Document("D:\\Files\\template-csv.docx")

# Carregar a fonte de dados
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Inicializar mecanismo de relatórios
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Salve o documento
doc.save("D:\\Files\\WordFromCSV.docx")

Saída

Gere documentos Word com dados CSV em Python

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita e gerar documentos Word sem limitações de avaliação.

Mecanismo de relatórios Python LINQ – Leia mais

O LINQ Reporting Engine oferece suporte a uma ampla variedade de tags para gerar dinamicamente documentos do Word completos em Python. Você pode ler mais sobre essas tags, juntamente com sua sintaxe, neste artigo.

Python gera documento Word a partir de modelo – recursos gratuitos

Além de gerar documentos Word a partir de modelos, aprenda mais sobre como criar, manipular e converter documentos Word e explore vários outros recursos da biblioteca usando os recursos abaixo:

Conclusão

Neste artigo, aprendemos como gerar documentos Word a partir de modelos em Python. Também vimos como usar fontes de dados XML, JSON e CSV para gerar documentos Word. Ao aproveitar o Aspose.Words for Python LINQ Reporting Engine, você pode gerar facilmente vários tipos de documentos do Word. Em caso de qualquer ambigüidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Artigos relacionados