Aprenda Python: Automação e Criação de Planilhas Excel

POR CÓDIGO DA HORA • 13 MAIO 2025

Produtividade com Python: O Fim das Tarefas Repetitivas

A manipulação de planilhas é uma das tarefas mais comuns no mundo corporativo. Automatizar a criação de relatórios e o preenchimento de dados pode economizar horas de trabalho manual e eliminar erros humanos. Para isso, utilizamos a biblioteca Openpyxl, que permite ao Python ler, gravar e editar arquivos no formato .xlsx de forma nativa.

Criação vs. Automação: Entenda a Diferença

Muitas pessoas confundem os termos, mas para um desenvolvedor, eles são complementares:

  • Criação: É o ato de gerar um arquivo novo do zero, definindo abas (sheets) e cabeçalhos iniciais.
  • Automação: É o processo de usar o Python para percorrer dados existentes, realizar cálculos em massa e aplicar formatações condicionais automaticamente.

🛠️ Preparação do Ambiente

Para que seu script funcione, você deve instalar a biblioteca necessária no seu ambiente virtual (venv). O openpyxl não vem instalado por padrão no Python.

Como Instalar as Bibliotecas

No seu terminal, com a venv ativa, execute o seguinte comando:

pip install openpyxl

💻 Código Completo e Funcional

O código abaixo demonstra o fluxo completo: criar o arquivo, inserir dados de forma estruturada e aplicar uma estilização profissional com cores e fontes em negrito.

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill

# 1. Iniciando o Workbook (Arquivo Excel)
wb = Workbook()
ws = wb.active
ws.title = "Relatório de Vendas"

# 2. Definindo o Cabeçalho
# Usamos uma lista para facilitar a inserção e manutenção
colunas = ["ID", "Produto", "Valor (R$)", "Status"]
ws.append(colunas)

# 3. Aplicando Formatação Profissional ao Cabeçalho
# Criamos um preenchimento cinza e fonte em negrito para os títulos
preenchimento_cabecalho = PatternFill(start_color="D3D3D3", end_color="D3D3D3", fill_type="solid")
for cell in ws["1:1"]:
    cell.font = Font(bold=True, size=12)
    cell.fill = preenchimento_cabecalho

# 4. Inserindo Dados com Automação
# Imagine que esses dados venham de um banco de dados ou CSV
dados_vendas = [
    (101, "Curso de Python", 299.90, "Pago"),
    (102, "E-book Automação", 45.00, "Pendente"),
    (103, "Mentoria Individual", 500.00, "Pago"),
    (104, "Acesso Premium", 150.00, "Pendente"),
]

for venda in dados_vendas:
    ws.append(venda)

# 5. Lógica de Automação: Formatação Condicional
# Vamos percorrer a coluna 'Status' (coluna 4) e destacar pendências em amarelo
amarelo_alerta = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# iter_rows permite percorrer apenas as linhas com dados, pulando o cabeçalho
for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=4, max_col=4):
    for cell in row:
        if cell.value == "Pendente":
            cell.fill = amarelo_alerta

# 6. Rodapé e Finalização
ws.append([]) # Linha vazia
ws.append(["Gerado automaticamente por:", "Código da Hora"])

# 7. Salvando o Arquivo no Disco
# O arquivo será criado na mesma pasta onde o script está sendo executado
nome_do_arquivo = "relatorio_vendas_automatizado.xlsx"
wb.save(nome_do_arquivo)

print(f"✅ Sucesso: O arquivo '{nome_do_arquivo}' foi gerado e formatado!")

Detalhamento do Processo Técnico

Ao rodar o comando wb = Workbook(), você está criando um objeto na memória RAM. Nada é gravado no seu HD até que o comando wb.save() seja executado. Isso garante que o script seja rápido, pois as alterações acontecem em alta velocidade antes da escrita final.

A importância do iter_rows

Diferente de editar uma célula por vez (como ws['A1']), o método iter_rows é o coração da automação. Ele permite que o Python processe milhares de linhas de uma só vez, aplicando regras de negócio — como o destaque em amarelo que criamos — sem que você precise abrir o Excel.

💼 Aplicação Profissional

Desenvolvedores de automação (RPA) utilizam essa técnica para gerar notas fiscais, relatórios de estoque e balanços mensais. Integrar esse conhecimento com o Artigo 3 (Envio de E-mail) permite criar um sistema que gera o relatório e o envia para a diretoria de forma totalmente autônoma.