CodeGym /Cursos /Python SELF PT /Usando templates para criar relatórios automatizados

Usando templates para criar relatórios automatizados

Python SELF PT
Nível 44 , Lição 4
Disponível

1. Relatórios Automatizados

Bem-vindo ao mundo da automação de relatórios! Se você já sonhou em criar relatórios tão fácil quanto apertar um botão, você está no lugar certo. Hoje vamos aprender a criar relatórios automatizados usando templates. Vamos falar sobre como otimizar esse processo para evitar tarefas repetitivas e tornar seus relatórios tão incríveis quanto o seu script Python mais confiável.

Por que templates?

Ninguém gosta de lidar com trabalho chato e repetitivo, especialmente quando se trata de relatórios. E se cada relatório pudesse ser gerado automaticamente, recebendo dados e os inserindo em um formato pré-definido? Templates permitem que a gente crie uma estrutura básica, que pode ser usada diversas vezes, apenas inserindo novos dados. Isso economiza seu tempo e paciência, e além disso, deixa os relatórios organizados e consistentes.

Vantagens de usar templates:

  • Velocidade e eficiência: Um template preparado permite gerar relatórios mais rápido do que nunca.
  • Estilo único: Todos os relatórios têm o mesmo estilo, o que facilita a leitura e parece mais profissional.
  • Redução de erros: Uma estrutura já testada minimiza erros de formatação.
  • Facilidade de modificação: Alterações no template são aplicáveis a todos os relatórios, facilitando a manutenção.

2. Criando um template simples para relatórios

Elementos principais dos templates PDF no ReportLab

Para criar templates de relatórios no ReportLab, você pode usar os seguintes componentes principais:

  • Texto e cabeçalhos: Use elementos de texto para criar títulos, subtítulos e textos principais.
  • Tabelas: Para apresentar dados em formato tabular.
  • Elementos gráficos: Linhas, retângulos, círculos e outras formas para formatação visual.
  • Imagens: Inclusão de logotipos e outras imagens para design profissional.

Criando um template com SimpleDocTemplate

Na biblioteca ReportLab, a classe SimpleDocTemplate permite criar PDFs com uma estrutura pré-definida. Essa classe suporta a adição de textos, tabelas e outros elementos usando uma lista chamada elements, o que facilita a criação de documentos estruturados.

Criando um template de relatório PDF com texto e tabela

Python

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle
from reportlab.lib import colors

# Função para criar o template de relatório
def create_pdf_template(filename="report_template.pdf"):
    doc = SimpleDocTemplate(filename, pagesize=A4)
    styles = getSampleStyleSheet()
    elements = []

    # Título do relatório
    title_style = ParagraphStyle(
        "TitleStyle",
        parent=styles["Title"],
        fontSize=20,
        textColor=colors.darkblue,
        alignment=1,
        spaceAfter=20,
    )
    title = Paragraph("Template de relatório de vendas", title_style)
    elements.append(title)

    # Subtítulo
    subtitle_style = ParagraphStyle(
        "SubtitleStyle",
        parent=styles["Heading2"],
        fontSize=14,
        textColor=colors.gray,
        alignment=1,
        spaceAfter=10,
    )
    subtitle = Paragraph("Relatório trimestral", subtitle_style)
    elements.append(subtitle)

    # Texto principal
    intro_text = """
    Este template de relatório foi projetado para apresentar dados de vendas por região e categorias de produtos.
    Os dados são atualizados automaticamente, permitindo o uso do template para relatórios regulares.
    """
    elements.append(Paragraph(intro_text, styles["BodyText"]))
    elements.append(Spacer(1, 20))

    # Tabela para os dados
    table_data = [["Categoria", "Região", "Vendas"]]
    # Exemplo de dados para a tabela (serão substituídos por dados dinâmicos)
    sample_data = [["Produtos A", "Norte", "1200"], ["Produtos B", "Sul", "1300"], ["Produtos C", "Oeste", "1100"]]
    table_data.extend(sample_data)

    # Estilização da tabela
    table_style = TableStyle([
        ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
        ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
        ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
        ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
        ('GRID', (0, 0), (-1, -1), 1, colors.black),
    ])

    table = Table(table_data)
    table.setStyle(table_style)
    elements.append(table)

    # Salvando o PDF
    doc.build(elements)
    print(f"Template de relatório salvo com sucesso como {filename}")

# Criando o template de relatório
create_pdf_template()

Explicação do código

  1. Título e subtítulo: São usados estilos TitleStyle e SubtitleStyle para formatar o título e o subtítulo, deixando-os fáceis de ler e visualmente destacados.
  2. Texto principal: O texto explica que o relatório é um template e é destinado para automação de relatórios.
  3. Tabela: A tabela fornece uma estrutura para preencher com dados. Os exemplos de dados (sample_data) podem ser substituídos por valores reais no momento da geração do relatório.
  4. Salvar: SimpleDocTemplate salva o PDF no arquivo report_template.pdf.

3. Preenchendo o template com dados

Preenchimento automático do template com dados

Agora que temos um template básico, podemos criar uma função que receba dados e preencha automaticamente a tabela. Isso é útil para criar relatórios onde os dados vêm de um banco de dados, API ou arquivo.

1
Pesquisa/teste
Criação de PDF com ReportLab, nível 44, lição 4
Indisponível
Criação de PDF com ReportLab
Criação de PDF com ReportLab
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION