Índice
- Por que usar o Spire.XLS para converter DataFrame do Pandas para Excel
- Pré-requisitos para converter DataFrame do Pandas para Excel
- Exportar um único DataFrame do Pandas para Excel com formatação
- Converter múltiplos DataFrames do Pandas para um único arquivo Excel
- Escrever DataFrames do Pandas em um arquivo Excel existente
- Personalização avançada para exportar DataFrames do Pandas para Excel
- Conclusão
- Perguntas Frequentes
Instalar com Pypi
pip install pandas spire.xls
Links Relacionados

Trabalhar com dados tabulares é uma tarefa comum para desenvolvedores Python, e o Pandas é a biblioteca de referência para manipulação e análise de dados. Frequentemente, os desenvolvedores precisam exportar DataFrames do Pandas para o Excel para relatórios, colaboração em equipe ou análise de dados adicional. Embora o Pandas forneça a função to_excel para exportações básicas, criar relatórios profissionais do Excel com cabeçalhos formatados, células estilizadas, várias planilhas e gráficos pode ser um desafio.
Este tutorial demonstra como escrever um único DataFrame ou múltiplos DataFrames para o Excel usando o Spire.XLS for Python, uma biblioteca multifuncional do Excel que permite a personalização completa de arquivos do Excel diretamente do Python, sem a necessidade de ter o Microsoft Excel instalado.
Índice
- Por que usar o Spire.XLS para converter DataFrame do Pandas para Excel
- Pré-requisitos para converter DataFrame do Pandas para Excel
- Exportar um único DataFrame do Pandas para Excel com formatação
- Converter múltiplos DataFrames do Pandas para um único arquivo Excel
- Escrever DataFrames do Pandas em um arquivo Excel existente
- Personalização avançada para exportar DataFrames do Pandas para Excel
- Conclusão
- Perguntas Frequentes
Por que usar o Spire.XLS para converter DataFrame do Pandas para Excel
Embora o Pandas forneça funcionalidades básicas de exportação para o Excel, o Spire.XLS estende isso, dando controle total sobre a criação de arquivos do Excel. Em vez de apenas escrever dados brutos, os desenvolvedores podem:
- Organizar múltiplos DataFrames em planilhas separadas dentro de uma única pasta de trabalho.
- Personalizar cabeçalhos, fontes, cores e formatação de células para produzir layouts profissionais.
- Ajustar automaticamente as colunas e as alturas das linhas para melhorar a legibilidade.
- Adicionar gráficos, fórmulas e outros recursos do Excel diretamente do Python
Pré-requisitos para converter DataFrame do Pandas para Excel
Antes de exportar um DataFrame do Pandas para o Excel, certifique-se de ter as seguintes bibliotecas necessárias instaladas. Você pode fazer isso executando o seguinte comando no terminal do seu projeto:
pip install pandas spire.xls
Essas bibliotecas permitem que você escreva DataFrames no Excel com várias planilhas, formatação personalizada, gráficos atraentes e layouts estruturados.
Exportar um único DataFrame do Pandas para Excel com formatação
Exportar um único DataFrame para um arquivo Excel é o cenário mais comum. Usando o Spire.XLS, você pode não apenas exportar seu DataFrame, mas também formatar cabeçalhos, estilizar células e adicionar gráficos para tornar seu relatório com aparência profissional.
Vamos passar por este processo passo a passo.
Passo 1: Criar um DataFrame de Amostra
Primeiro, precisamos criar um DataFrame. Aqui, temos nomes de funcionários, departamentos e salários. Você pode, é claro, substituir isso pelo seu próprio conjunto de dados.
import pandas as pd
from spire.xls import *
# Create a simple DataFrame
df = pd.DataFrame({
'Employee': ['Alice', 'Bob', 'Charlie'],
'Department': ['HR', 'Finance', 'IT'],
'Salary': [5000, 6000, 7000]
})
Passo 2: Criar uma Pasta de Trabalho e Acessar a Primeira Planilha
Agora vamos criar uma nova pasta de trabalho do Excel e preparar a primeira planilha. Vamos dar a ela um nome significativo para que seja fácil de entender.
# Create a new workbook
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Employee Data"
Passo 3: Escrever Cabeçalhos de Coluna
Vamos escrever os cabeçalhos na primeira linha, deixá-los em negrito e adicionar um fundo cinza claro, para que tudo pareça organizado.
# Write column headers
for colIndex, colName in enumerate(df.columns, start=1):
cell = sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True # Make headers bold
cell.Style.Color = Color.get_LightGray() # Light gray background
Passo 4: Escrever as Linhas de Dados
Em seguida, escrevemos cada linha do DataFrame. Para números, usamos a propriedade NumberValue para que o Excel possa reconhecê-los para cálculos e gráficos.
# Write data rows
for rowIndex, row in enumerate(df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
Passo 5: Aplicar Bordas e Ajustar Colunas Automaticamente
Para dar à sua planilha do Excel uma aparência polida, semelhante a uma tabela, vamos adicionar bordas e ajustar automaticamente a largura das colunas.
# Apply borders and auto-fit columns
usedRange = sheet.AllocatedRange
usedRange.BorderAround(LineStyleType.Thin, Color.get_Black()) # Outside borders
usedRange.BorderInside(LineStyleType.Thin, Color.get_Black()) # Inside borders
usedRange.AutoFitColumns()
Passo 6: Adicionar um Gráfico para Visualizar Dados
Gráficos ajudam você a entender rapidamente as tendências. Aqui, criaremos um gráfico de colunas comparando salários.
# Add a chart
chart = sheet.Charts.Add()
chart.ChartType = ExcelChartType.ColumnClustered
chart.DataRange = sheet.Range["A1:C4"] # Data range for chart
chart.SeriesDataFromRange = False
chart.LeftColumn = 5 # Chart position
chart.TopRow = 1
chart.RightColumn = 10
chart.BottomRow = 16
chart.ChartTitle = "Employee Salary Comparison"
chart.ChartTitleArea.Font.Size = 12
chart.ChartTitleArea.Font.IsBold = True
Passo 7: Salvar a Pasta de Trabalho
Finalmente, salve a pasta de trabalho no local desejado.
# Save the Excel file
workbook.SaveToFile("DataFrameWithChart.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Resultado:
O arquivo Excel XLSX gerado a partir do DataFrame do Pandas se parece com isto:

Uma vez que o arquivo Excel é gerado, ele pode ser processado posteriormente, como ser convertido para PDF para fácil compartilhamento:
workbook.SaveToFile("ToPdf.pdf", FileFormat.PDF)
Para mais detalhes, consulte o guia sobre como converter Excel para PDF em Python.
Converter Múltiplos DataFrames do Pandas para um Único Arquivo Excel
Ao criar relatórios no Excel, vários conjuntos de dados geralmente precisam ser colocados em planilhas separadas. Usando o Spire.XLS, cada DataFrame do Pandas pode ser escrito em sua própria planilha, garantindo que os dados relacionados sejam organizados de forma clara e fáceis de analisar. Os passos a seguir demonstram este fluxo de trabalho.
Passo 1: Criar Múltiplos DataFrames de Amostra
Antes de exportar, criamos dois DataFrames separados - um para informações de funcionários e outro para produtos. Cada DataFrame irá para sua própria planilha do Excel.
import pandas as pd
from spire.xls import *
# Sample DataFrames
df1 = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df2 = pd.DataFrame({'Product': ['Laptop', 'Phone'], 'Price': [1000, 500]})
# List of DataFrames with corresponding sheet names
dataframes = [
(df1, "Employees"),
(df2, "Products")
]
Aqui, dataframes é uma lista de tuplas que associa cada DataFrame ao nome da planilha em que deve aparecer.
Passo 2: Criar uma Nova Pasta de Trabalho
Em seguida, criamos uma nova pasta de trabalho do Excel para armazenar todos os DataFrames.
# Create a new workbook
workbook = Workbook()
Isso inicializa uma pasta de trabalho em branco com três planilhas padrão. Vamos renomeá-las e preenchê-las no próximo passo.
Passo 3: Percorrer Cada DataFrame e Escrever em sua Própria Planilha
Em vez de escrever cada DataFrame individualmente, podemos percorrer nossa lista e processá-los da mesma maneira. Isso reduz o código duplicado e facilita o manuseio de mais conjuntos de dados.
for i, (df, sheet_name) in enumerate(dataframes):
# Get or create a sheet
if i < workbook.Worksheets.Count:
sheet = workbook.Worksheets[i]
else:
sheet = workbook.Worksheets.Add()
sheet.Name = sheet_name
# Write headers with bold font and background color
for colIndex, colName in enumerate(df.columns, start=1):
cell = sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True
cell.Style.Color = Color.get_LightGray()
sheet.Columns[colIndex - 1].ColumnWidth = 15 # Set fixed column width
# Write rows of data
for rowIndex, row in enumerate(df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
# Apply thin borders around the used range
usedRange = sheet.AllocatedRange
usedRange.BorderAround(LineStyleType.Thin, Color.get_Black()) # Outside borders
usedRange.BorderInside(LineStyleType.Thin, Color.get_Black()) # Inside borders
Usando este loop, podemos facilmente adicionar mais DataFrames no futuro sem reescrever o mesmo código.
Passo 4: Salvar a Pasta de Trabalho
Finalmente, salvamos o arquivo Excel. Ambos os conjuntos de dados estão agora organizados de forma limpa em um único arquivo com planilhas separadas, cabeçalhos formatados e bordas adequadas.
# Save the workbook
workbook.SaveToFile("MultipleDataFrames.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Agora seu arquivo Excel está pronto para ser compartilhado ou analisado posteriormente.
Resultado:

O arquivo MultipleDataFrames.xlsx contém duas planilhas:
- Funcionários (com nomes e idades)
- Produtos (com detalhes e preços dos produtos)
Esta organização torna os arquivos Excel com múltiplos relatórios limpos e fáceis de navegar.
Escrever DataFrames do Pandas em um Arquivo Excel Existente
Em alguns casos, em vez de criar um novo arquivo Excel, você pode precisar escrever DataFrames em uma pasta de trabalho existente. Isso pode ser facilmente alcançado carregando a pasta de trabalho existente, adicionando uma nova planilha ou acessando a planilha desejada e escrevendo os dados do DataFrame usando a mesma lógica.
O código a seguir mostra como escrever um DataFrame do Pandas em um arquivo Excel existente:
import pandas as pd
from spire.xls import *
# Load an existing Excel file
workbook = Workbook()
workbook.LoadFromFile("MultipleDataFrames.xlsx")
# Create a new DataFrame to add
new_df = pd.DataFrame({
'Region': ['North', 'South', 'East', 'West'],
'Sales': [12000, 15000, 13000, 11000]
})
# Add a new worksheet for the new DataFrame
new_sheet = workbook.Worksheets.Add("Regional Sales")
# Write headers
for colIndex, colName in enumerate(new_df.columns, start=1):
cell = new_sheet.Range[1, colIndex]
cell.Text = colName
cell.Style.Font.IsBold = True
cell.Style.Color = Color.get_LightGray()
new_sheet.Columns[colIndex - 1].ColumnWidth = 15
# Write data rows
for rowIndex, row in enumerate(new_df.values, start=2):
for colIndex, value in enumerate(row, start=1):
cell = new_sheet.Range[rowIndex, colIndex]
if isinstance(value, (int, float)):
cell.NumberValue = value
else:
cell.Text = str(value)
# Save the changes
workbook.SaveToFile("DataFrameToExistingWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Personalização Avançada para Exportar DataFrames do Pandas para o Excel
Além das exportações básicas, os DataFrames do Pandas podem ser personalizados no Excel para atender a requisitos específicos de relatórios. Opções avançadas - como selecionar colunas específicas e incluir ou excluir o índice - permitem criar arquivos Excel mais limpos, legíveis e profissionais. Os exemplos a seguir demonstram como aplicar essas personalizações.
1. Selecionar Colunas Específicas
Às vezes, você pode não precisar exportar todas as colunas de um DataFrame. Ao selecionar apenas as colunas relevantes, você pode manter seus relatórios do Excel concisos e focados. O código a seguir demonstra como percorrer as colunas escolhidas ao escrever cabeçalhos e linhas:
import pandas as pd
from spire.xls import *
# Create a DataFrame
df = pd.DataFrame({
'Employee': ['Alice', 'Bob', 'Charlie'],
'Department': ['HR', 'Finance', 'IT'],
'Salary': [5000, 6000, 7000]
})
# Set the columns to export
columns_to_export = ['Employee', 'Department']
# Create a new workbook and access the first sheet
workbook = Workbook()
sheet = workbook.Worksheets[0]
# Write headers
for colIndex, colName in enumerate(columns_to_export, start=1):
sheet.Range[1, colIndex].Text = colName
# Write rows
for rowIndex, row in enumerate(df[columns_to_export].values, start=2):
for colIndex, value in enumerate(row, start=1):
sheet.Range[rowIndex, colIndex].Text = value
# Save the Excel file
workbook.SaveToFile("select_columns.xlsx")
workbook.Dispose()
2. Incluir ou Excluir Índice
Por padrão, o índice do DataFrame não é incluído na exportação. Se o seu relatório exigir identificadores de linha ou índices numéricos, você pode adicioná-los manualmente. Este trecho de código mostra como incluir o índice ao lado das colunas selecionadas:
# Write header for index
sheet.Range[1, 1].Text = "Index"
# Write index values (numeric)
for rowIndex, idx in enumerate(df.index, start=2):
sheet.Range[rowIndex, 1].NumberValue = idx # Use NumberValue for numeric
# Write headers for other columns
for colIndex, colName in enumerate(columns_to_export, start=2):
sheet.Range[1, colIndex].Text = colName
# Write the data rows
for rowIndex, row in enumerate(df[columns_to_export].values, start=2):
for colIndex, value in enumerate(row, start=2):
if isinstance(value, (int, float)):
sheet.Range[rowIndex, colIndex].NumberValue = value
else:
sheet.Range[rowIndex, colIndex].Text = str(value)
# Save the workbook
workbook.SaveToFile("include_index.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Conclusão
Exportar um DataFrame do Pandas para o Excel é simples, mas produzir relatórios profissionais e bem formatados requer controle adicional. Usando o Pandas para a preparação de dados e o Spire.XLS for Python para criar e formatar arquivos do Excel, você pode gerar pastas de trabalho estruturadas, legíveis e visualmente organizadas. Essa abordagem funciona tanto para DataFrames únicos quanto para múltiplos conjuntos de dados, facilitando a criação de relatórios do Excel prontos para análise, compartilhamento ou manipulação posterior.
Perguntas Frequentes
P1: Como posso exportar um DataFrame do Pandas para o Excel em Python?
R1: Você pode usar bibliotecas como o Spire.XLS para escrever um DataFrame em um arquivo Excel. Isso permite transferir dados tabulares do Python para o Excel, mantendo o controle sobre a formatação e o layout.
P2: Posso exportar mais de um DataFrame para um único arquivo Excel?
R2: Sim. Múltiplos DataFrames podem ser escritos em planilhas separadas na mesma pasta de trabalho. Isso ajuda a manter conjuntos de dados relacionados organizados em um único arquivo.
P3: Como adiciono cabeçalhos e formato células no Excel a partir de um DataFrame?
R3: Os cabeçalhos podem ser colocados em negrito, coloridos ou ter larguras fixas. Valores numéricos podem ser armazenados como números e texto como strings. A formatação melhora a legibilidade dos relatórios.
P4: É possível incluir gráficos no arquivo Excel exportado?
R4: Sim. Gráficos como os de colunas ou linhas podem ser adicionados com base nos dados do seu DataFrame para ajudar a visualizar tendências ou comparações.
P5: Preciso ter o Microsoft Excel instalado para exportar DataFrames?
R5: Não necessariamente. Algumas bibliotecas, incluindo o Spire.XLS, podem criar e formatar arquivos do Excel inteiramente em Python sem depender da instalação do Excel.