Como gerar e editar planilhas Excel com Python em minutos

Publicado em: 23/02/2026
Tempo de leitura: 12 minutos

Gerar e editar planilhas Excel com Python em minutos é uma das habilidades mais valiosas para quem busca aumentar a produtividade no trabalho. O Microsoft Excel é a ferramenta de análise de dados mais utilizada no mundo, mas manipular grandes volumes de informações manualmente pode ser um processo lento e suscetível a erros humanos. Felizmente, a linguagem Python oferece bibliotecas poderosas que transformam horas de trabalho manual em poucos segundos de execução de código. Neste guia prático, você aprenderá como automatizar seus relatórios e manipular dados de forma profissional, mesmo que esteja dando seus primeiros passos na programação.

Por que automatizar o Excel com Python?

A automação de planilhas é um dos pilares da análise de dados moderna. Enquanto o Excel possui suas próprias ferramentas de automação, como as macros e o VBA (Visual Basic for Applications), o Python se destaca por sua versatilidade e facilidade de leitura. Ao aprender como aprender Python para essa finalidade, você ganha acesso a um ecossistema vasto de bibliotecas que podem integrar o Excel com bancos de dados, APIs da web e algoritmos de inteligência artificial.

Além disso, o Python lida muito melhor com grandes volumes de dados que costumam travar o Excel convencional. Se você já tentou abrir uma planilha com centenas de milhares de linhas e sentiu o computador ficar lento, sabe do que estou falando. Com o código certo, você processa esses dados em memória de forma otimizada. Outro ponto crucial é a reprodutibilidade: uma vez que o script está pronto, você pode executá-lo mensalmente ou diariamente com apenas um clique, garantindo que o formato e as fórmulas sejam sempre aplicados da mesma maneira.

Principais bibliotecas para manipular Excel

Para interagir com arquivos .xlsx e .csv no ecossistema Python, utilizamos principalmente duas bibliotecas: Pandas e Openpyxl. Cada uma possui um propósito específico e entender a diferença entre elas é fundamental para o sucesso do seu projeto.

  • Pandas: Focada em análise e manipulação de dados. É ideal quando você precisa realizar cálculos complexos, filtragens, agrupamentos (Pivot Tables) e limpeza de dados. Ela trata a planilha como um “DataFrame”, uma estrutura de tabela altamente eficiente.
  • Openpyxl: Focada na formatação e estrutura do arquivo Excel. Se o seu objetivo é mudar a cor de uma célula, inserir fórmulas específicas do Excel, mesclar células ou criar gráficos diretamente no arquivo, esta é a ferramenta certa.

Muitas vezes, a melhor estratégia é combinar ambas. Você usa o Pandas para processar os números e o Openpyxl para deixar a planilha com um visual profissional antes de enviar para o seu gestor ou cliente.

Configurando o ambiente de desenvolvimento

Antes de começarmos a escrever nossa primeira linha de código, precisamos garantir que o Python e as ferramentas necessárias estejam instalados. O primeiro passo é ter o Python em sua máquina. Se você ainda não tem, confira o guia de como instalar Python passo a passo.

Com o Python instalado, o próximo passo é baixar as bibliotecas necessárias usando o gerenciador de pacotes pip. É recomendável utilizar um ambiente virtual venv para manter seu projeto organizado e evitar conflitos entre versões de bibliotecas.

Abra o seu terminal ou prompt de comando e execute os seguintes comandos:

Bash
pip install pandas openpyxl

Essas bibliotecas são externas ao núcleo padrão da linguagem, por isso a instalação é obrigatória. O Pandas cuidará da estrutura dos dados e o openpyxl servirá como o “motor” que permite ao Pandas escrever arquivos no formato moderno do Excel (.xlsx).

Criando sua primeira planilha Excel com Python

Vamos criar uma planilha simples do zero. Imagine que você tem uma lista de vendas e precisa salvá-la em um arquivo Excel. O Pandas facilita muito esse processo através da estrutura de dicionários no Python, onde cada chave representa uma coluna e a lista de valores representa as linhas.

Python
import pandas as pd

# Criando os dados
dados_vendas = {
    'Produto': ['Notebook', 'Mouse', 'Teclado', 'Monitor'],
    'Quantidade': [10, 50, 30, 15],
    'Preço Unitário': [3500, 80, 150, 900]
}

# Convertendo para um DataFrame
df = pd.DataFrame(dados_vendas)

# Salvando no Excel
df.to_excel('vendas_inicial.xlsx', index=False)

Neste exemplo, importamos a biblioteca Pandas. Criamos um objeto chamado df (abreviação de DataFrame) e usamos o método to_excel para gerar o arquivo físico. O parâmetro index=False é importante para evitar que o Pandas crie uma coluna extra com a numeração das linhas (0, 1, 2…), o que geralmente não é desejado em relatórios formatados.

Lendo e filtrando dados de uma planilha existente

A edição de planilhas começa com a leitura dos dados. O Python pode ler arquivos Excel e permitir que você faça alterações em massa que seriam exaustivas manualmente. Por exemplo, você pode querer filtrar apenas os produtos que tiveram mais de 20 unidades vendidas ou calcular automaticamente o faturamento total (Quantidade multiplicada pelo Preço).

Python
# Lendo o arquivo que criamos anteriormente
df = pd.read_excel('vendas_inicial.xlsx')

# Criando uma nova coluna 'Total'
df['Total'] = df['Quantidade'] * df['Preço Unitário']

# Filtrando apenas produtos com estoque alto
df_filtrado = df[df['Quantidade'] > 20]

# Exibindo o resultado no console
print(df_filtrado)

O processo de leitura é feito pelo comando read_excel. A partir daí, o objeto df se comporta como uma tabela dinâmica poderosa. Se você estiver trabalhando com arquivos de texto puro como base de dados, também pode aprender como manipular arquivos csv no Python, que é um formato muito comum para exportação de sistemas bancários e CRMs.

Formatando células e estilos com Openpyxl

Embora o Pandas seja excelente para os dados, o Openpyxl é o rei da estética. Com ele, podemos alterar as fontes, cores de fundo e bordas das células. Isso é essencial para gerar relatórios que serão apresentados em reuniões. De acordo com a documentação oficial da Openpyxl, a biblioteca permite acesso total aos estilos do padrão Office Open XML.

Vamos aplicar uma formatação básica ao cabeçalho da nossa planilha para torná-lo negrito e com uma cor de fundo diferenciada:

Python
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill

# Carrega o arquivo existente
wb = load_workbook('vendas_inicial.xlsx')
ws = wb.active

# Define o estilo: Negrito e Cor de Fundo Azul
fonte_cabecalho = Font(bold=True, color="FFFFFF")
preenchimento = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")

# Aplica aos cabeçalhos (primeira linha)
for cell in ws[1]:
    cell.font = fonte_cabecalho
    cell.fill = preenchimento

# Salva as alterações
wb.save('vendas_formatada.xlsx')

Nesse trecho, utilizamos o load_workbook para abrir o arquivo. Iteramos sobre a primeira linha (o cabeçalho) e aplicamos os objetos de estilo. Essa é a base para automatizar tarefas com Python que envolvem a entrega de documentos visualmente atraentes de forma automática.

Editando fórmulas e funções do Excel via Python

Muitas vezes, você não quer apenas o resultado estático na planilha, mas sim que o Excel mantenha as fórmulas para que o usuário final possa alterar um valor e ver o cálculo se atualizar. O Python permite inserir strings que o Excel interpretará como fórmulas assim que o arquivo for aberto.

Python
# Inserindo uma fórmula de SOMA na célula D6
ws['D6'] = "=SUM(D2:D5)"
wb.save('vendas_com_formulas.xlsx')

É importante lembrar que, ao inserir fórmulas, você deve usar o nome das funções em inglês (como SUM, AVERAGE, IF), pois esse é o padrão interno do formato .xlsx, independentemente do idioma em que seu Excel está instalado. Se houver erros na escrita, o Python não avisará, mas o Excel mostrará um erro ao tentar abrir o arquivo.

Lidando com erros comuns na manipulação de Excel

Ao trabalhar com caminhos de arquivos e bibliotecas externas, é comum encontrar alguns obstáculos. Um dos erros mais frequentes é o FileNotFoundError, que acontece quando você tenta ler um arquivo que não está na pasta onde o script está sendo executado. Para evitar isso, o uso da biblioteca pathlib ou do módulo os é altamente recomendado.

Outro problema recorrente é tentar salvar um arquivo que já está aberto no Microsoft Excel. O Windows bloqueia a escrita em arquivos abertos por outro programa, o que resultará em um erro de permissão no Python. Sempre feche a planilha antes de rodar o seu script de automação. Para aprender a tratar esses imprevistos de forma profissional, veja como usar o try except em Python para criar códigos mais robustos e evitar que o programa pare de funcionar inesperadamente.

Se você encontrar problemas com caracteres especiais (acentos, cedilha), certifique-se de que o arquivo de origem está no formato correto. Problemas de codificação são comuns, e você pode conferir como resolver erros de codificação utf-8 em Python para garantir que seus nomes de produtos e clientes apareçam corretamente na planilha.

Código Completo do Projeto

Abaixo, apresentamos o código unificado que consolida tudo o que aprendemos: criação de dados, processamento com Pandas, salvamento em Excel e formatação estética com Openpyxl. Este script é um excelente ponto de partida para qualquer automação de escritório.

Python
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Alignment

# 1. Preparação dos Dados
dados = {
    'Vendedor': ['Ana', 'Bruno', 'Carlos', 'Diana'],
    'Vendas': [15000, 22000, 18000, 25000],
    'Comissão': [0, 0, 0, 0]
}

df = pd.DataFrame(dados)

# 2. Lógica de Negócio (Calculando 10% de comissão)
df['Comissão'] = df['Vendas'] * 0.10

# 3. Gerando o arquivo inicial
nome_arquivo = 'relatorio_comissoes.xlsx'
df.to_excel(nome_arquivo, index=False)

# 4. Formatação Estética com Openpyxl
wb = load_workbook(nome_arquivo)
ws = wb.active

# Estilizando o Cabeçalho
estilo_cabecalho = Font(bold=True, color="FFFFFF", size=12)
preenchimento_azul = PatternFill(start_color="002060", end_color="002060", fill_type="solid")
alinhamento_central = Alignment(horizontal="center")

for cell in ws[1]:
    cell.font = estilo_cabecalho
    cell.fill = preenchimento_azul
    cell.alignment = alinhamento_central

# Ajustando a largura das colunas
for col in ws.columns:
    max_length = 0
    column = col[0].column_letter
    for cell in col:
        if cell.value:
            max_length = max(max_length, len(str(cell.value)))
    ws.column_dimensions[column].width = max_length + 2

# Adicionando uma linha de Total
proxima_linha = len(df) + 2
ws[f'A{proxima_linha}'] = "TOTAL GERAL"
ws[f'B{proxima_linha}'] = f"=SUM(B2:B{proxima_linha-1})"
ws[f'C{proxima_linha}'] = f"=SUM(C2:C{proxima_linha-1})"

# Negrito na linha de Total
ws[f'A{proxima_linha}'].font = Font(bold=True)
ws[f'B{proxima_linha}'].font = Font(bold=True)
ws[f'C{proxima_linha}'].font = Font(bold=True)

# 5. Salvando o resultado final
wb.save(nome_arquivo)
print(f"Relatório '{nome_arquivo}' gerado com sucesso!")

Este script utiliza boas práticas de programação. Ele primeiro estrutura os dados, realiza as operações matemáticas necessárias e, por fim, cuida da apresentação visual. Ele ainda inclui um ajuste automático de largura de colunas, o que evita que os dados fiquem “cortados” quando o usuário abre o Excel pela primeira vez.

Conclusão

Dominar a integração entre Python e Excel abre portas para oportunidades incríveis na carreira de qualquer profissional que lida com dados. Seja você um contador, analista de marketing ou engenheiro, a capacidade de automatizar tarefas repetitivas permite que você foque no que realmente importa: a análise estratégica dos resultados.

O Python não substitui o Excel, ele o torna mais potente. Como vimos ao longo deste artigo, com poucas linhas de código é possível criar fluxos de trabalho que seriam impossíveis de realizar manualmente em tempo hábil. Continue praticando, explore novos recursos nas documentações do Pandas e comece a aplicar esses conceitos nos seus desafios diários de escritório.

Perguntas Frequentes

Preciso ter o Excel instalado para usar Python com Excel?

Não. As bibliotecas Pandas e Openpyxl funcionam de forma independente do software Microsoft Excel. Você pode gerar arquivos .xlsx em servidores Linux ou na nuvem sem qualquer problema.

O Python consegue ler fórmulas ou apenas os valores?

Por padrão, o Openpyxl lê a fórmula escrita na célula. No entanto, o Pandas geralmente lê o último valor calculado que foi salvo no arquivo pelo Excel.

Consigo converter arquivos .csv para .xlsx usando esse método?

Sim, é uma das tarefas mais comuns. Basta ler o arquivo com pd.read_csv() e salvá-lo com df.to_excel().

Qual o limite de linhas que o Python consegue processar em um Excel?

O limite é o do próprio formato Excel: 1.048.576 linhas. Se você precisar de mais do que isso, é recomendado usar bancos de dados como o SQLite ou formatos como o Parquet.

Posso proteger planilhas com senha usando Python?

Sim, embora existam limitações. Bibliotecas como a msoffcrypto-tool permitem lidar com arquivos protegidos, mas a criação de senhas nativas via Openpyxl é limitada.

Como inserir imagens no Excel via código?

A biblioteca Openpyxl possui um módulo chamado drawing.image que permite posicionar imagens (como logotipos de empresas) em coordenadas específicas da planilha.

É possível criar gráficos dinâmicos usando essas bibliotecas?

Sim, o Openpyxl permite criar gráficos de barras, linhas e pizza nativos do Excel diretamente pelo código Python, garantindo que o gráfico seja editável no Excel.

O código Python funciona em versões antigas (.xls)?

Para arquivos .xls (Excel 97-2003), você deve usar a biblioteca xlrd para leitura e xlwt para escrita. O Openpyxl foca apenas nos formatos modernos .xlsx e .xlsm.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Fundamentos
    Foto do Leandro Hirt

    Como descompactar arquivos .zip em Python sem erro

    Aprender como descompactar arquivos .zip em Python sem erro é uma das habilidades mais práticas para quem está começando no

    Ler mais

    Tempo de leitura: 10 minutos
    22/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Como criar e usar dataclasses em Python facilmente

    No vasto ecossistema da programação, gerenciar dados em classes pode, muitas vezes, parecer uma tarefa repetitiva e cansativa. Se você

    Ler mais

    Tempo de leitura: 9 minutos
    18/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Entendendo o operador walrus (:=) no Python

    O ecossistema do Python é conhecido por sua simplicidade e legibilidade, mas isso não significa que a linguagem pare de

    Ler mais

    Tempo de leitura: 9 minutos
    18/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Entendendo o módulo collections em Python

    O módulo collections é uma das ferramentas mais poderosas e subutilizadas da biblioteca padrão do Python. Embora os tipos de

    Ler mais

    Tempo de leitura: 10 minutos
    17/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Hash de senhas em Python: Crie hashes seguros em minutos

    Garantir a segurança dos dados dos usuários é uma das responsabilidades mais críticas de qualquer desenvolvedor de software. Quando falamos

    Ler mais

    Tempo de leitura: 10 minutos
    16/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Como usar zip em Python: guia para iniciantes

    A função zip() é uma das ferramentas mais úteis e, ao mesmo tempo, subestimadas para quem está começando a aprender

    Ler mais

    Tempo de leitura: 9 minutos
    16/02/2026