Skip to content

Automated report generation  #20

@lalithapulapa81

Description

@lalithapulapa81

import pandas as pd
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet

--------- STEP 1: READ DATA ----------

data = pd.read_csv("data.csv")

Basic analysis

average_score = data["Score"].mean()
highest_score = data["Score"].max()
lowest_score = data["Score"].min()

--------- STEP 2: CREATE PDF ----------

pdf_file = "report.pdf"
doc = SimpleDocTemplate(pdf_file, pagesize=A4)
styles = getSampleStyleSheet()
elements = []

Title

title = Paragraph("Automated Report", styles['Title'])
elements.append(title)
elements.append(Spacer(1, 20))

Summary

summary = f"""
This report analyzes student scores.

Average Score: {average_score:.2f}

Highest Score: {highest_score}

Lowest Score: {lowest_score}

"""
elements.append(Paragraph(summary, styles['Normal']))
elements.append(Spacer(1, 20))

Table

table_data = [list(data.columns)] + data.values.tolist()
table = Table(table_data)
table.setStyle(TableStyle([
("BACKGROUND", (0, 0), (-1, 0), colors.grey),
("TEXTCOLOR", (0, 0), (-1, 0), colors.whitesmoke),
("ALIGN", (0, 0), (-1, -1), "CENTER"),
("GRID", (0, 0), (-1, -1), 1, colors.black),
("BACKGROUND", (0, 1), (-1, -1), colors.beige),
]))
elements.append(table)

Build PDF

doc.build(elements)
print(f"PDF report generated: {pdf_file}")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions