Criando e Lendo Planilhas Excel com Python: openpyxl e pandas

Trabalhar com planilhas Excel é uma necessidade comum em diversas áreas: finanças, administração, análise de dados, controle de estoque, entre outras. Python oferece bibliotecas poderosas que permitem criar, ler, atualizar e analisar arquivos .xlsx de forma prática e automatizada.

Neste artigo, você vai aprender:

  • Como criar planilhas Excel do zero com openpyxl.

  • Como ler e manipular planilhas usando pandas.

  • Como automatizar processos repetitivos envolvendo Excel.

  • Dicas práticas para projetos reais.


🔹 Bibliotecas recomendadas

Python possui algumas bibliotecas populares para trabalhar com Excel:

BibliotecaUso principal
openpyxlCriar, ler, editar e formatar planilhas Excel (.xlsx)
pandasAnálise de dados, leitura e escrita de planilhas em blocos, manipulação de tabelas

📌 Dica: Se o foco é automação e manipulação de células específicas, use openpyxl. Se o foco é análise de dados e relatóriospandas é mais eficiente.


🔹 Instalando as bibliotecas

Para instalar as bibliotecas necessárias:

pip install openpyxl pandas

🔹 Criando uma planilha com openpyxl

openpyxl permite criar planilhas do zero e inserir dados célula por célula.

from openpyxl import Workbook

# Criando uma nova planilha
wb = Workbook()

# Selecionando a planilha ativa
planilha = wb.active
planilha.title = "Vendas"

# Inserindo cabeçalhos
planilha.append(["Produto", "Quantidade", "Preço Unitário", "Total"])

# Inserindo alguns dados
planilha.append(["Notebook", 5, 3500.50, 5*3500.50])
planilha.append(["Mouse", 10, 50.75, 10*50.75])
planilha.append(["Teclado", 7, 120.00, 7*120.00])

# Salvando a planilha
wb.save("vendas.xlsx")
print("Planilha criada com sucesso!")

📌 Dica: append() adiciona linhas inteiras de uma vez, facilitando a inserção de tabelas pequenas.


🔹 Lendo dados de Excel com openpyxl

Também é possível ler arquivos existentes:

from openpyxl import load_workbook

# Carregando uma planilha existente
wb = load_workbook("vendas.xlsx")
planilha = wb["Vendas"]

# Iterando pelas linhas
for linha in planilha.iter_rows(values_only=True):
    print(linha)

Saída:

('Produto', 'Quantidade', 'Preço Unitário', 'Total')
('Notebook', 5, 3500.5, 17502.5)
('Mouse', 10, 50.75, 507.5)
('Teclado', 7, 120.0, 840.0)

📌 Dica: values_only=True retorna apenas os valores, sem os objetos de célula.


🔹 Manipulação avançada com openpyxl

Você pode formatar células, adicionar fórmulas e gráficos:

from openpyxl.styles import Font, Alignment

# Cabeçalho em negrito
for cell in planilha["1:1"]:
    cell.font = Font(bold=True)
    cell.alignment = Alignment(horizontal="center")

# Adicionando fórmula na última linha
planilha["E2"] = "=B2*C2"  # Exemplo de fórmula
wb.save("vendas_formatada.xlsx")

🔹 Lendo e escrevendo planilhas com pandas

Se você precisa trabalhar com grandes volumes de dadospandas é muito mais eficiente.

Criando um DataFrame e salvando em Excel

import pandas as pd

# Criando dados
dados = {
    "Produto": ["Notebook", "Mouse", "Teclado"],
    "Quantidade": [5, 10, 7],
    "Preço Unitário": [3500.50, 50.75, 120.00]
}

df = pd.DataFrame(dados)
df["Total"] = df["Quantidade"] * df["Preço Unitário"]

# Salvando em Excel
df.to_excel("vendas_pandas.xlsx", index=False)
print("Planilha criada com pandas!")

Lendo dados do Excel com pandas

import pandas as pd

df = pd.read_excel("vendas_pandas.xlsx")
print(df)

Saída:

     Produto  Quantidade  Preço Unitário     Total
0   Notebook           5        3500.50  17502.5
1       Mouse          10          50.75    507.5
2     Teclado           7         120.00    840.0

📌 Dica: pandas transforma automaticamente o Excel em um DataFrame, permitindo filtrar, agrupar e analisar dados com facilidade.


Operações comuns com pandas

  • Filtrar produtos com estoque maior que 5

df[df["Quantidade"] > 5]
  • Calcular soma de todos os valores

df["Total"].sum()
  • Adicionar nova coluna com desconto

df["Desconto"] = df["Total"] * 0.1

🔹 Comparando openpyxl e pandas

Característicaopenpyxlpandas
Criar planilha do zero✅ (via DataFrame)
Manipulação de células✅ detalhada❌ (somente em bloco, não célula)
Fórmulas e formatação
Leitura de grandes dados✅, mas mais lento✅ muito rápido
Análise e cálculo de dados✅ avançado

📌 Regra prática:

  • Use openpyxl para criar relatórios personalizados com formatação e fórmulas.

  • Use pandas para análise, cálculos e manipulação de dados em massa.


🔹 Exemplos de aplicações práticas

  1. Controle de vendas: Ler relatórios diários e calcular totais automaticamente.

  2. Relatórios financeiros: Gerar planilhas com gráficos e fórmulas para apresentações.

  3. Importação de dados: Ler grandes arquivos Excel de clientes e processar em Python.

  4. Automação de tarefas administrativas: Preencher planilhas com informações de outros sistemas.


✅ Conclusão

Python torna o trabalho com Excel muito mais eficiente, seja com openpyxl para manipulação detalhada e formatação, ou com pandas para análise e cálculos rápidos.

Com essas ferramentas, você consegue:

  • Criar planilhas complexas do zero.

  • Ler dados de arquivos existentes e transformá-los em objetos Python.

  • Automatizar tarefas repetitivas e relatórios.

  • Analisar grandes volumes de dados de forma prática.

💡 Desafio prático: Crie uma planilha de controle de estoque que atualize automaticamente o total de produtos vendidos e aplique descontos usando Python.

Comentários

Postagens mais visitadas deste blog

Laços de Repetição em Python: Conceitos e Exemplos Práticos

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Como Instalar o Xamarin com C#: Passo a Passo Completo