Automatizando Tarefas no Excel com Python e openpyxl

Excel é uma das ferramentas mais utilizadas em empresas, escritórios e até no dia a dia para organização de dados. Mas, quando precisamos lidar com planilhas grandes ou tarefas repetitivas, fazer tudo manualmente se torna cansativo e sujeito a erros.

É aqui que entra o Python com a biblioteca openpyxl, que nos permite criar, editar e automatizar planilhas Excel de forma programática.

Neste artigo, você vai aprender:

  • O que é o openpyxl e como instalar.

  • Como criar e abrir planilhas.

  • Como escrever e ler dados.

  • Como aplicar estilos e fórmulas.

  • Como automatizar tarefas comuns (relatórios, consolidação de dados).

  • Projeto prático: gerando um relatório automático de vendas.


🔹 1. O que é o openpyxl?

openpyxl é uma biblioteca Python que permite manipular arquivos Excel no formato .xlsx (Excel moderno).
Com ela, você pode:

  • Criar novas planilhas.

  • Escrever e ler dados em células.

  • Criar fórmulas automaticamente.

  • Alterar estilos (cores, fontes, bordas).

  • Gerar relatórios automatizados.


🔹 2. Instalando o openpyxl

Instale a biblioteca com o pip:

pip install openpyxl

🔹 3. Criando uma nova planilha

Vamos criar uma planilha simples com algumas informações.

import openpyxl

# Criar nova pasta de trabalho
wb = openpyxl.Workbook()

# Selecionar planilha ativa
sheet = wb.active
sheet.title = "Relatório"

# Escrever alguns dados
sheet["A1"] = "Produto"
sheet["B1"] = "Quantidade"
sheet["C1"] = "Preço"

sheet.append(["Caderno", 10, 12.50])
sheet.append(["Caneta", 50, 2.00])
sheet.append(["Borracha", 20, 1.50])

# Salvar o arquivo
wb.save("relatorio.xlsx")
print("✅ Planilha criada com sucesso!")

📂 Agora você terá um arquivo relatorio.xlsx pronto para abrir no Excel.


🔹 4. Lendo dados de uma planilha existente

Podemos abrir planilhas existentes e ler seus dados:

# Abrir arquivo existente
wb = openpyxl.load_workbook("relatorio.xlsx")
sheet = wb["Relatório"]

# Ler células específicas
print(sheet["A1"].value)  # Produto
print(sheet["B2"].value)  # Quantidade do primeiro item

# Ler todas as linhas
for linha in sheet.iter_rows(min_row=2, values_only=True):
    print(linha)

🔹 5. Automatizando cálculos com fórmulas

Também é possível inserir fórmulas diretamente com Python:

# Adicionar coluna de total
sheet["D1"] = "Total"

for i in range(2, 5):  # linhas 2 até 4
    sheet[f"D{i}"] = f"=B{i}*C{i}"  # fórmula Excel

# Salvar alterações
wb.save("relatorio.xlsx")

Agora, ao abrir no Excel, os totais serão calculados automaticamente.


🔹 6. Formatando células (estilos)

Podemos deixar a planilha mais apresentável com cores e estilos:

from openpyxl.styles import Font, PatternFill

# Estilo do cabeçalho
for cell in sheet[1]:
    cell.font = Font(bold=True, color="FFFFFF")
    cell.fill = PatternFill("solid", fgColor="4F81BD")

wb.save("relatorio.xlsx")

Resultado: o cabeçalho ficará em branco sobre fundo azul, mais parecido com relatórios profissionais.


🔹 7. Projeto prático: Relatório de vendas automatizado

Imagine que você tem um sistema que gera dados de vendas diárias em Python.
Podemos gerar uma planilha automatizada com total de vendas e destaques para produtos mais vendidos.

import openpyxl
from openpyxl.styles import Font, PatternFill

# Criar workbook
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "Vendas"

# Cabeçalho
cabecalho = ["Produto", "Quantidade", "Preço Unitário", "Total"]
sheet.append(cabecalho)

# Dados fictícios
vendas = [
    ("Notebook", 5, 3500),
    ("Mouse", 20, 50),
    ("Teclado", 15, 120),
    ("Monitor", 8, 900),
]

# Preencher dados
for produto, qtd, preco in vendas:
    total = qtd * preco
    sheet.append([produto, qtd, preco, total])

# Estilizar cabeçalho
for cell in sheet[1]:
    cell.font = Font(bold=True, color="FFFFFF")
    cell.fill = PatternFill("solid", fgColor="4F81BD")

# Total geral
linha_final = len(vendas) + 2
sheet[f"A{linha_final}"] = "TOTAL"
sheet[f"D{linha_final}"] = f"=SUM(D2:D{linha_final-1})"

# Salvar relatório
wb.save("relatorio_vendas.xlsx")
print("📊 Relatório de vendas gerado com sucesso!")

📌 O resultado será uma planilha com:

  • Cabeçalho formatado.

  • Lista de vendas com totais.

  • Um TOTAL GERAL calculado automaticamente no final.


🔹 8. Tarefas comuns que você pode automatizar

Com o openpyxl, você pode:

  • Consolidar várias planilhas em uma só.

  • Gerar relatórios diários/semanais automaticamente.

  • Atualizar planilhas existentes com novos dados.

  • Criar dashboards automatizados.

  • Preencher modelos prontos de Excel (ex: faturas, contratos).


🔹 9. Conclusão

Neste artigo, você aprendeu a:
✅ Criar e salvar planilhas Excel com openpyxl.
✅ Inserir dados e fórmulas automaticamente.
✅ Ler e atualizar arquivos existentes.
✅ Estilizar células para relatórios mais profissionais.
✅ Gerar relatórios de vendas automatizados.

Isso mostra como o Python pode substituir processos manuais e repetitivos no Excel, aumentando produtividade e reduzindo erros.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

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

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