Aprenda Python: Automação e Criação de Planilhas Excel
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.