Ir para o conteúdo do rodapé
USANDO IRONXL FOR PYTHON

Gere documentos do Word a partir de dados do Excel em Python.

Gerar modelos de Word a partir de planilhas do Excel usando Python oferece inúmeros benefícios que podem melhorar significativamente a eficiência, precisão e apresentação em vários contextos profissionais e pessoais. Aproveitando a automação, personalização e integridade dos dados, os profissionais podem garantir que seus documentos Word sejam ferramentas de comunicação eficazes que transmitam informações essenciais com clareza e precisão. Uma biblioteca que pode converter Microsoft Excel para Microsoft Word é o pacote Python IronXL da Iron Software e a biblioteca python-docx.

Este artigo examinará os passos necessários para gerar documentos Word a partir de arquivos Excel.

Como Gerar Documento Word a Partir de Dados do Excel em Python

  1. Crie um arquivo Python chamado excelToWord.py.
  2. Instale os pacotes IronXL e python-docx.
  3. Crie ou adicione um arquivo Excel à pasta do projeto.
  4. Leia documentos Excel usando o IronXL.
  5. Crie um documento Word e insira dados do Excel usando o python-docx.

O que é IronXL?

IronXL for Python é uma biblioteca robusta desenvolvida pela Iron Software, que permite que desenvolvedores criem, leiam e editem arquivos Excel (XLS, XLSX, e CSV) em projetos Python. Aqui estão alguns dos principais recursos e benefícios de usar o IronXL:

Principais características

  1. Sem Dependência do Excel: O IronXL não requer a instalação do Microsoft Excel no seu servidor, tornando-o ideal para ambientes de servidor sem o Excel.
  2. API Intuitiva: O IronXL oferece uma API natural e intuitiva para trabalhar com arquivos Excel, facilitando sua integração em seus projetos Python.
  3. Suporte para Múltiplos Formatos: O IronXL suporta vários formatos de arquivo Excel, incluindo XLS, XLSX, CSV e TSV.
  4. Estilização de Células: Você pode estilizar células com diferentes fontes, tamanhos, fundos, bordas e formatos numéricos.
  5. Manipulação de Fórmulas: O IronXL pode trabalhar com fórmulas do Excel e recalculá-las sempre que uma planilha é editada.
  6. Compatibilidade Multiplataforma: O IronXL funciona no Windows, macOS, Linux, Docker, Azure e AWS.

O que é python-docx

python-docx é uma biblioteca Python que cria, modifica e trabalha com documentos do Microsoft Word, como arquivos .docx. Ela fornece uma API simples para interagir com documentos Word, permitindo realizar tarefas como adicionar texto, formatar, inserir tabelas e imagens, entre outras.

Principais características

1. Criando Documentos

Você pode gerar documentos Word do zero e adicionar conteúdo, incluindo parágrafos, tabelas, cabeçalhos, e mais. Este pacote também pode ser usado para editar documentos individuais.

2. Manipulação de Texto

Adicione e modifique parágrafos de texto. Formate texto (por exemplo, negrito, itálico, sublinhado, etc.) usando "executar" (partes do texto com estilos diferentes dentro de um parágrafo). Adicione e estilize cabeçalhos de vários níveis.

3. Adicionando Tabelas

Crie tabelas com um número especificado de linhas e colunas. Acesse e modifique células individuais em uma tabela.

4. Listas

Crie listas com marcadores ou numeradas com estilos predefinidos.

5. Trabalhando com Estilos

Aplique estilos predefinidos como "Título 1", "Normal", etc. Você também pode definir e aplicar estilos personalizados a parágrafos ou texto.

6. Inserindo Imagens

Insira imagens no documento em locais específicos. Você pode redimensionar as imagens especificando sua largura e altura.

Pré-requisitos

Antes de nos aprofundarmos no código, certifique-se de que você possui os seguintes pré-requisitos:

  1. Python Instalado: Certifique-se de que você tem o Python instalado em sua máquina. Você pode baixá-lo do site oficial do Python.
  2. IronXL Instalado: Você precisa instalar o pacote IronXL. Você pode fazer isso usando o pip.
  3. python-docx Instalado: Você precisa instalar o pacote python-docx. Você pode fazer isso usando o pip.
  4. Arquivo Excel: Crie um arquivo Excel de exemplo com dados.

Passo 1: Crie um arquivo Python chamado excelToWord.py

Abra seu IDE favorito, como o Visual Studio Code, e crie um arquivo chamado excelToWord.py.

Como Gerar Documento Word a partir de Dados do Excel em Python: Figura 1 - Geração de Documento Excel

Passo 2: Adicione os Pacotes IronXL e python-docx

Use o Pip para instalar os pacotes IronXL e python-docx.

pip install IronXL python-docx
pip install IronXL python-docx
SHELL

Passo 3: Crie ou Adicione um Arquivo Excel à Pasta do Projeto

Copie o arquivo Excel de exemplo para sua pasta de código. O arquivo contém os dados abaixo.

Como Gerar Documento Word a partir de Dados do Excel em Python: Figura 2 - Exemplo de Excel

Passo 4: Leia o Documento Excel Usando IronXL

Usando o IronXL, carregue o documento Excel e leia todas as células usando o código abaixo.

import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []

# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []

# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

Passo 5: Crie um Documento Word e Insira Dados do Excel Usando python-docx

O processo de geração do documento Word envolve criar um documento Word e inserir dados que foram lidos do arquivo Excel.

# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
PYTHON

Código Completo para Gerar Documentos Word

# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells

for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the Word document
doc.save("sample.docx")
# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells

for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the Word document
doc.save("sample.docx")
PYTHON

Explicação do código

Este script Python realiza duas tarefas principais.

1. Lendo Dados de um Arquivo Excel Usando IronXL

  • O script começa configurando uma licença para a biblioteca IronXL, que é usada para manipular arquivos Excel em Python.
  • Em seguida, ele carrega um arquivo Excel (sample.xlsx) e seleciona a primeira planilha do arquivo.
  • O script lê os dados da planilha, percorrendo todas as linhas e colunas. Coleta os valores de cada célula em uma lista 2D (dados), onde cada linha na planilha do Excel corresponde a uma sublista dentro dos dados.
  • Os valores das células são impressos no console à medida que são lidos.

2. Criando um Documento Word Usando python-docx

  • Um novo documento Word é criado usando a biblioteca python-docx.
  • O script adiciona um título ("Exportação de Dados Excel Usando Python Docx") no topo do documento usando um título.
  • Em seguida, cria uma tabela no documento, onde a primeira linha da tabela contém os cabeçalhos da primeira linha da planilha Excel, e as linhas subsequentes contêm os dados correspondentes do arquivo Excel.
  • Finalmente, o documento Word é salvo como sample.docx.

O script lê dados de um arquivo Excel (sample.xlsx), processa-os e exporta os dados para uma tabela em um novo documento Word (sample.docx). A primeira linha da planilha Excel é usada como cabeçalhos da tabela, e cada linha de dados da planilha Excel é adicionada ao documento Word como uma linha na tabela.

Saída

Como Gerar Documento Word a partir de Dados do Excel em Python: Figura 3 - Excel para Word

Arquivo Word

Como Gerar Documento Word a partir de Dados do Excel em Python: Figura 4 - Formato de Documento Word

Licença IronXL (Teste Disponível)

O IronXL funciona com um arquivo de licença válido anexado ao código. Os usuários podem facilmente obter uma licença de teste na página de licença.

Para usar a licença, coloque a chave da licença em algum lugar no código como abaixo antes de usar a biblioteca IronXL.

ironxl.License.LicenseKey = "Your License Key"
ironxl.License.LicenseKey = "Your License Key"
PYTHON

Conclusão

O código de exemplo demonstra uma maneira eficaz de ler dados de um arquivo Excel usando IronXL e depois exportar esses dados para um documento Word usando python-docx. O processo envolve duas etapas principais:

  1. Extraindo Dados do Excel: O script carrega um arquivo Excel e extrai os dados de sua primeira planilha. Ele percorre as linhas e colunas para coletar os valores das células em uma lista, que pode ser facilmente manipulada ou salva.
  2. Criando e Populando um Documento Word: Usando a biblioteca python-docx, o script cria um novo documento Word, adiciona um título e formata os dados extraídos do Excel em uma tabela no documento Word. Ele automaticamente coloca a primeira linha de dados do Excel como cabeçalhos e as linhas restantes como dados da tabela.

Esta abordagem permite uma transferência de dados contínua do Excel para o Word, o que pode ser útil para tarefas como geração de relatórios, exportações de dados ou automação de documentos. A combinação de IronXL para manipulação de Excel e python-docx para criação de documentos Word fornece uma solução poderosa para trabalhar com esses formatos de arquivo em Python.

Perguntas frequentes

Como posso converter dados do Excel em um documento do Word usando Python?

Você pode converter dados do Excel em um documento do Word usando Python, utilizando a biblioteca IronXL para ler e processar arquivos do Excel e, em seguida, usando a biblioteca python-docx para criar e preencher um documento do Word.

Quais são as vantagens de usar o IronXL e o python-docx juntos?

A combinação do IronXL com o python-docx permite a integração e a automação perfeitas da conversão de documentos do Excel para o Word. O IronXL oferece recursos como leitura e edição de arquivos do Excel sem a necessidade do Microsoft Excel, enquanto o python-docx fornece uma API simples para manipular documentos do Word.

Como ler um arquivo do Excel em Python sem o Microsoft Excel instalado?

É possível ler um arquivo Excel em Python sem o Microsoft Excel instalado, utilizando a biblioteca IronXL. O IronXL permite carregar arquivos Excel e acessar seus dados programaticamente.

Qual é o processo para criar um documento do Word a partir de dados do Excel?

O processo envolve o uso do IronXL para ler dados de um arquivo Excel e, em seguida, usar o python-docx para criar um documento Word onde os dados do Excel são inseridos em tabelas ou blocos de texto.

O IronXL é compatível com vários formatos de arquivo do Excel?

Sim, o IronXL suporta vários formatos de arquivo do Excel, como XLS, XLSX e CSV, proporcionando flexibilidade no manuseio de diferentes tipos de arquivos do Excel.

Como posso instalar o IronXL e o python-docx no meu ambiente Python?

Você pode instalar o IronXL e o python-docx em seu ambiente Python usando o pip com o comando: pip install IronXL python-docx .

Quais são os benefícios de automatizar a conversão de documentos do Excel para o Word?

Automatizar a conversão de documentos do Excel para o Word pode aumentar a eficiência, a precisão e a apresentação, reduzindo tarefas manuais, minimizando erros e permitindo formatação consistente e integridade de dados em todos os documentos.

Como formatar células do Excel usando o IronXL?

O IronXL oferece funcionalidades para estilizar células do Excel, permitindo personalizar a aparência das células, como definir fontes, cores e bordas, o que pode ser útil para formatar os dados antes de transferi-los para o Word.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me