Índice

Criar arquivos Excel em Python é um requisito comum em aplicações orientadas a dados. Quando os dados da aplicação precisam ser entregues em um formato que os usuários de negócios possam revisar e compartilhar facilmente, o Excel continua sendo uma das escolhas mais práticas e amplamente aceitas.
Em projetos reais, gerar um arquivo Excel com Python é frequentemente o ponto de partida de um processo automatizado. Os dados podem vir de bancos de dados, APIs ou serviços internos, e o Python é responsável por transformar esses dados em um arquivo Excel estruturado que segue um layout e uma convenção de nomenclatura consistentes.
Este artigo mostra como criar arquivos Excel em Python, desde a geração de uma pasta de trabalho do zero, até a escrita de dados, aplicação de formatação básica e atualização de arquivos existentes quando necessário. Todos os exemplos são apresentados de uma perspectiva prática, focando em como os arquivos Excel são criados e usados em cenários de automação reais.
Índice
- Cenários Típicos para Criar Arquivos Excel em Python
- Configuração do Ambiente
- Criando um Novo Arquivo Excel do Zero em Python
- Escrevendo Dados Estruturados em um Arquivo XLSX Usando Python
- Formatando Dados do Excel para Relatórios do Mundo Real em Python
- Lendo e Atualizando Arquivos Excel Existentes em Python
- Combinando Operações de Leitura e Escrita em um Único Fluxo de Trabalho
- Escolhendo a Abordagem Python Correta para a Criação de Arquivos Excel
- Problemas Comuns e Soluções
- Perguntas Frequentes
1. Cenários Típicos para Criar Arquivos Excel com Python
A criação de arquivos Excel com Python geralmente ocorre como parte de um sistema maior, em vez de uma tarefa autônoma. Os cenários comuns incluem:
- Gerar relatórios de negócios diários, semanais ou mensais
- Exportar resultados de consultas de banco de dados para análise ou auditoria
- Produzir arquivos Excel a partir de serviços de backend ou trabalhos em lote
- Automatizar a troca de dados entre sistemas internos ou parceiros externos
Nessas situações, o Python é frequentemente usado para gerar arquivos Excel automaticamente, ajudando as equipes a reduzir o esforço manual, garantindo a consistência e a repetibilidade dos dados.
2. Configuração do Ambiente: Preparando para Criar Arquivos Excel em Python
Neste tutorial, usamos o Free Spire.XLS for Python para demonstrar operações com arquivos Excel. Antes de gerar arquivos Excel com Python, certifique-se de que o ambiente de desenvolvimento esteja pronto.
Versão do Python
Qualquer versão moderna do Python 3.x é suficiente para tarefas de automação do Excel.
O Free Spire.XLS for Python pode ser instalado via pip:
pip install spire.xls.free
Você também pode baixar o Free Spire.XLS for Python e incluí-lo em seu projeto manualmente.
A biblioteca funciona independentemente do Microsoft Excel, o que a torna adequada para ambientes de servidor, trabalhos agendados e fluxos de trabalho automatizados onde o Excel não está instalado.
3. Criando um Novo Arquivo Excel do Zero em Python
Esta seção se concentra na criação de um arquivo Excel do zero usando Python. O objetivo é definir uma estrutura básica de pasta de trabalho, incluindo planilhas e linhas de cabeçalho, antes que quaisquer dados sejam gravados.
Ao gerar o layout inicial programaticamente, você pode garantir que todos os arquivos de saída compartilhem a mesma estrutura e estejam prontos para o preenchimento de dados posterior.
Exemplo: Criando um Modelo de Excel em Branco
from spire.xls import Workbook, FileFormat
# Initialize a new workbook
workbook = Workbook()
# Access the default worksheet
sheet = workbook.Worksheets[0]
sheet.Name = "Template"
# Add a placeholder title
sheet.Range["B2"].Text = "Monthly Report Template"
# Save the Excel file
workbook.SaveToFile("template.xlsx", FileFormat.Version2016)
workbook.Dispose()
A pré-visualização do arquivo de modelo:

Neste exemplo:
- Workbook() cria uma nova pasta de trabalho do Excel que já contém três planilhas padrão.
- A primeira planilha é acessada via Worksheets[0] e renomeada para definir a estrutura básica.
- A propriedade Range[].Text grava texto em uma célula específica, permitindo que você defina títulos ou espaços reservados antes que os dados reais sejam adicionados.
- O método SaveToFile() salva a pasta de trabalho em um arquivo Excel. E FileFormat.Version2016 especifica a versão ou formato do Excel a ser usado.
Criando Arquivos Excel com Múltiplas Planilhas em Python
Na geração de Excel baseada em Python, uma única pasta de trabalho pode conter várias planilhas para organizar dados relacionados de forma lógica. Cada planilha pode armazenar um conjunto de dados, resumo ou resultado de processamento diferente dentro do mesmo arquivo.
O exemplo a seguir mostra como criar um arquivo Excel com várias planilhas e gravar dados em cada uma delas.
from spire.xls import Workbook, FileFormat
workbook = Workbook()
# Default worksheet
data_sheet = workbook.Worksheets[0]
data_sheet.Name = "Raw Data"
# Remove the second default worksheet
workbook.Worksheets.RemoveAt(1)
# Add a summary worksheet
summary_sheet = workbook.Worksheets.Add("Summary")
summary_sheet.Range["A1"].Text = "Summary Report"
workbook.SaveToFile("multi_sheet_report.xlsx", FileFormat.Version2016)
workbook.Dispose()
Este padrão é comumente combinado com fluxos de trabalho de leitura/escrita, onde os dados brutos são importados para uma planilha e os resultados processados são gravados em outra.
Formatos de Arquivo Excel na Automação com Python
Ao criar arquivos Excel programaticamente em Python, XLSX é o formato mais comumente usado e é totalmente suportado pelas versões modernas do Microsoft Excel. Ele suporta planilhas, fórmulas, estilos e é adequado para a maioria dos cenários de automação.
Além do XLSX, o Spire.XLS for Python suporta a geração de vários formatos comuns do Excel, incluindo:
- XLSX – o formato padrão para automação moderna do Excel
- XLS – formato legado do Excel para compatibilidade com sistemas mais antigos
- CSV – formato de texto simples frequentemente usado para troca e importação de dados
Neste artigo, todos os exemplos usam o formato XLSX, que é recomendado para geração de relatórios, exportações de dados estruturados e arquivos Excel baseados em modelos. Você pode verificar a enumeração FileFormat para uma lista completa de formatos suportados.
4. Escrevendo Dados Estruturados em um Arquivo XLSX Usando Python
Em aplicações reais, os dados gravados no Excel raramente vêm de listas codificadas. É mais comumente gerado a partir de consultas de banco de dados, respostas de API ou resultados de processamento intermediários.
Um padrão típico é tratar o Excel como o formato de entrega final para dados já estruturados.
Exemplo em Python: Gerando um Relatório de Vendas Mensal a partir de Dados da Aplicação
Suponha que sua aplicação já tenha produzido uma lista de registros de vendas, onde cada registro contém informações do produto e totais calculados. Neste exemplo, os dados de vendas são representados como uma lista de dicionários, simulando registros retornados de uma aplicação ou camada de serviço.
from spire.xls import Workbook
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Sales Report"
headers = ["Product", "Quantity", "Unit Price", "Total Amount"]
for col, header in enumerate(headers, start=1):
sheet.Range[1, col].Text = header
# Data typically comes from a database or service layer
sales_data = [
{"product": "Laptop", "qty": 15, "price": 1200},
{"product": "Monitor", "qty": 30, "price": 250},
{"product": "Keyboard", "qty": 50, "price": 40},
{"product": "Mouse", "qty": 80, "price": 20},
{"product": "Headset", "qty": 100, "price": 10}
]
row = 2
for item in sales_data:
sheet.Range[row, 1].Text = item["product"]
sheet.Range[row, 2].NumberValue = item["qty"]
sheet.Range[row, 3].NumberValue = item["price"]
sheet.Range[row, 4].NumberValue = item["qty"] * item["price"]
row += 1
workbook.SaveToFile("monthly_sales_report.xlsx")
workbook.Dispose()
A pré-visualização do relatório de vendas mensal:

Neste exemplo, valores de texto como nomes de produtos são gravados usando a propriedade CellRange.Text, enquanto campos numéricos usam CellRange.NumberValue. Isso garante que quantidades e preços sejam armazenados como números no Excel, permitindo cálculo, classificação e formatação adequados.
Esta abordagem escala naturalmente à medida que o conjunto de dados cresce e mantém a lógica de negócios separada da lógica de saída do Excel. Para mais exemplos de escrita no Excel, consulte o Como Automatizar a Escrita no Excel em Python.
5. Formatando Dados do Excel para Relatórios do Mundo Real em Python
Em relatórios do mundo real, os arquivos Excel são frequentemente entregues diretamente às partes interessadas. Dados brutos sem formatação podem ser difíceis de ler ou interpretar.
As tarefas comuns de formatação incluem:
- Tornar as linhas de cabeçalho visualmente distintas
- Aplicar cores de fundo ou bordas
- Formatar números e moedas
- Ajustar automaticamente a largura das colunas
O exemplo a seguir demonstra como essas operações comuns de formatação podem ser aplicadas em conjunto para melhorar a legibilidade geral de um relatório Excel gerado.
Exemplo em Python: Melhorando a Legibilidade de Relatórios do Excel
from spire.xls import Workbook, Color, LineStyleType
# Load the created Excel file
workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]
# Format header row
header_range = sheet.Range.Rows[0] # Get the first used row
header_range.Style.Font.IsBold = True
header_range.Style.Color = Color.get_LightBlue()
# Apply currency format
sheet.Range["C2:D6"].NumberFormat = "$#,##0.00"
# Format data rows
for i in range(1, sheet.Range.Rows.Count):
if i % 2 == 0:
row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
row_range.Style.Color = Color.get_LightGreen()
else:
row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
row_range.Style.Color = Color.get_LightYellow()
# Add borders to data rows
sheet.Range["A2:D6"].BorderAround(LineStyleType.Medium, Color.get_LightBlue())
# Auto-fit column widths
sheet.AllocatedRange.AutoFitColumns()
# Save the formatted Excel file
workbook.SaveToFile("monthly_sales_report_formatted.xlsx")
workbook.Dispose()
A pré-visualização do relatório de vendas mensal formatado:

Embora a formatação não seja estritamente necessária para a correção dos dados, ela é frequentemente esperada em relatórios de negócios que são compartilhados ou arquivados. Consulte Como Formatar Planilhas do Excel com Python para técnicas de formatação mais avançadas.
6. Lendo e Atualizando Arquivos Excel Existentes na Automação com Python
A atualização de um arquivo Excel existente geralmente envolve a localização da linha correta antes de gravar novos valores. Em vez de atualizar uma célula fixa, os scripts de automação geralmente varrem as linhas para encontrar registros correspondentes e aplicar atualizações condicionalmente.
Exemplo em Python: Atualizando um Arquivo Excel
from spire.xls import Workbook
workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")
sheet = workbook.Worksheets[0]
# Locate the target row by product name
for row in range(2, sheet.LastRow + 1):
product_name = sheet.Range[row, 1].Text
if product_name == "Laptop":
sheet.Range[row, 5].Text = "Reviewed"
break
sheet.Range["E1"].Text = "Status"
workbook.SaveToFile("monthly_sales_report_updated.xlsx")
workbook.Dispose()
A pré-visualização do relatório de vendas mensal atualizado:

7. Combinando Operações de Leitura e Escrita em um Único Fluxo de Trabalho
Ao trabalhar com arquivos Excel importados, os dados brutos muitas vezes não são imediatamente adequados para relatórios ou análises posteriores. Problemas comuns incluem registros duplicados, valores inconsistentes ou linhas incompletas.
Esta seção demonstra como ler dados existentes do Excel, normalizá-los e gravar o resultado processado em um novo arquivo usando Python.
Em sistemas de automação do mundo real, os arquivos Excel são frequentemente usados como portadores de dados intermediários em vez de entregas finais.
Eles podem ser importados de plataformas externas, editados manualmente por diferentes equipes ou gerados por sistemas legados antes de serem processados posteriormente.
Como resultado, os dados brutos do Excel frequentemente contêm problemas como:
- Múltiplas linhas para a mesma entidade de negócios
- Valores inconsistentes ou não numéricos
- Registros vazios ou incompletos
- Estruturas de dados que não são adequadas para relatórios ou análises
Um requisito comum é ler dados brutos do Excel, aplicar regras de normalização em Python e gravar os resultados limpos em uma nova planilha na qual os usuários downstream possam confiar.
Exemplo em Python: Normalizando e Agregando Dados de Vendas Importados
Neste exemplo, um arquivo Excel de vendas bruto contém várias linhas por produto.
O objetivo é gerar uma planilha de resumo limpa onde cada produto aparece apenas uma vez, com o valor total de suas vendas calculado programaticamente.
from spire.xls import Workbook, Color
workbook = Workbook()
workbook.LoadFromFile("raw_sales_data.xlsx")
source = workbook.Worksheets[0]
summary = workbook.Worksheets.Add("Summary")
# Define headers for the normalized output
summary.Range["A1"].Text = "Product"
summary.Range["B1"].Text = "Total Sales"
product_totals = {}
# Read raw data and aggregate values by product
for row in range(2, source.LastRow + 1):
product = source.Range[row, 1].Text
value = source.Range[row, 4].Value
# Skip incomplete or invalid rows
if not product or value is None:
continue
try:
amount = float(value)
except ValueError:
continue
if product not in product_totals:
product_totals[product] = 0
product_totals[product] += amount
# Write aggregated results to the summary worksheet
target_row = 2
for product, total in product_totals.items():
summary.Range[target_row, 1].Text = product
summary.Range[target_row, 2].NumberValue = total
target_row += 1
# Create a total row
summary.Range[summary.LastRow, 1].Text = "Total"
summary.Range[summary.LastRow, 2].Formula = "=SUM(B2:B" + str(summary.LastRow - 1) + ")"
# Format the summary worksheet
summary.Range.Style.Font.FontName = "Arial"
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.Size = 12
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.IsBold = True
for row in range(2, summary.LastRow + 1):
for column in range(1, summary.LastColumn + 1):
summary.Range[row, column].Style.Font.Size = 10
summary.Range[summary.LastRow, 1, summary.LastRow, summary.LastColumn].Style.Color = Color.get_LightGray()
summary.Range.AutoFitColumns()
workbook.SaveToFile("normalized_sales_summary.xlsx")
workbook.Dispose()
A pré-visualização do resumo de vendas normalizado:

O Python lida com a validação, agregação e normalização dos dados, enquanto o Excel permanece o formato de entrega final para os usuários de negócios — eliminando a necessidade de limpeza manual ou fórmulas complexas de planilha.
Escolhendo a Abordagem Python Correta para a Criação de Arquivos Excel
O Python oferece várias maneiras de criar arquivos Excel, e a melhor abordagem depende de como o Excel é usado em seu fluxo de trabalho.
O Free Spire.XLS for Python é particularmente adequado para cenários onde:
- Arquivos Excel são gerados ou atualizados sem o Microsoft Excel instalado
- Arquivos são produzidos por serviços de backend, trabalhos em lote ou tarefas agendadas
- Você precisa de controle preciso sobre a estrutura da planilha, formatação e fórmulas
- O Excel é usado como um formato de entrega ou intercâmbio, não como uma ferramenta de análise interativa
Para exploração de dados ou análise estatística, os usuários de Python podem contar com outras bibliotecas a montante, enquanto usam bibliotecas de geração de Excel como o Free Spire.XLS for Python para produzir arquivos estruturados e prontos para apresentação na fase final.
Essa separação mantém a lógica de processamento de dados no Python e a lógica de apresentação no Excel, melhorando a manutenibilidade e a confiabilidade.
Para orientações e exemplos mais detalhados, consulte o Tutorial do Spire.XLS for Python.
8. Problemas Comuns ao Criar e Gravar Arquivos Excel em Python
Ao automatizar a geração de Excel, vários problemas práticos são frequentemente encontrados.
-
Erros de caminho de arquivo e permissão
Sempre verifique se o diretório de destino existe e se o processo tem acesso de escrita antes de salvar os arquivos.
-
Tipos de dados inesperados
Controle explicitamente se os valores são gravados como texto ou números para evitar erros de cálculo no Excel.
-
Sobrescritas acidentais de arquivos
Use nomes de arquivos com carimbo de data/hora ou diretórios de saída para evitar a sobrescrita de relatórios existentes.
-
Grandes conjuntos de dados
Ao lidar com grandes volumes de dados, grave as linhas sequencialmente e evite operações de formatação desnecessárias dentro de loops.
Abordar esses problemas desde o início ajuda a garantir que a automação do Excel permaneça confiável à medida que o tamanho e a complexidade dos dados aumentam.
9. Conclusão
Criar arquivos Excel em Python é uma solução prática para automatizar relatórios, exportação de dados e atualizações de documentos em ambientes de negócios reais. Ao combinar a criação de arquivos, a escrita de dados estruturados, a formatação e os fluxos de trabalho de atualização, a automação do Excel pode ir além de scripts únicos e se tornar parte de um sistema estável.
O Spire.XLS for Python fornece uma maneira confiável de implementar essas operações em ambientes onde a automação, a consistência e a manutenibilidade são essenciais. Você pode aplicar uma licença temporária para desbloquear todo o potencial da automação Python no processamento de arquivos Excel.
FAQ: Criando Arquivos Excel em Python
O Python pode criar arquivos Excel sem o Microsoft Excel instalado?
Sim. Bibliotecas como o Spire.XLS for Python operam independentemente do Microsoft Excel, tornando-as adequadas para servidores, ambientes em nuvem e fluxos de trabalho automatizados.
O Python é adequado para gerar arquivos Excel grandes?
O Python pode gerar arquivos Excel grandes de forma eficaz, desde que os dados sejam gravados sequencialmente e operações de formatação desnecessárias dentro de loops sejam evitadas.
Como posso evitar a sobrescrita de arquivos Excel existentes?
Uma abordagem comum é usar nomes de arquivos com carimbo de data/hora ou diretórios de saída dedicados ao salvar relatórios Excel gerados.
O Python pode atualizar arquivos Excel criados por outros sistemas?
Sim. O Python pode ler, modificar e estender arquivos Excel criados por outras aplicações, desde que o formato do arquivo seja suportado.