Update report_generator.py
Browse files- report_generator.py +18 -14
report_generator.py
CHANGED
|
@@ -4,7 +4,7 @@ from fpdf import FPDF
|
|
| 4 |
import matplotlib.pyplot as plt
|
| 5 |
|
| 6 |
def generate_csv_report(filename="report.csv"):
|
| 7 |
-
"""Generate a
|
| 8 |
data = [
|
| 9 |
["Name", "Age", "City"],
|
| 10 |
["Alice", 30, "New York"],
|
|
@@ -17,7 +17,7 @@ def generate_csv_report(filename="report.csv"):
|
|
| 17 |
return filename
|
| 18 |
|
| 19 |
def generate_xlsx_report(filename="report.xlsx"):
|
| 20 |
-
"""Generate a
|
| 21 |
wb = Workbook()
|
| 22 |
ws = wb.active
|
| 23 |
data = [
|
|
@@ -31,27 +31,31 @@ def generate_xlsx_report(filename="report.xlsx"):
|
|
| 31 |
wb.save(filename)
|
| 32 |
return filename
|
| 33 |
|
| 34 |
-
def generate_pdf_report(filename="report.pdf"):
|
| 35 |
-
"""Generate a
|
| 36 |
pdf = FPDF()
|
| 37 |
pdf.add_page()
|
| 38 |
pdf.set_font("Arial", size=12)
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
pdf.output(filename)
|
| 47 |
return filename
|
| 48 |
|
| 49 |
def generate_diagram_report(filename="diagram.png"):
|
| 50 |
-
"""Generate a sample diagram using matplotlib and return
|
| 51 |
-
# Sample data for a bar chart.
|
| 52 |
labels = ["A", "B", "C", "D"]
|
| 53 |
values = [10, 24, 36, 18]
|
| 54 |
-
|
| 55 |
plt.figure(figsize=(6, 4))
|
| 56 |
plt.bar(labels, values, color='skyblue')
|
| 57 |
plt.title("Sample Diagram")
|
|
|
|
| 4 |
import matplotlib.pyplot as plt
|
| 5 |
|
| 6 |
def generate_csv_report(filename="report.csv"):
|
| 7 |
+
"""Generate a sample CSV report and return its filename."""
|
| 8 |
data = [
|
| 9 |
["Name", "Age", "City"],
|
| 10 |
["Alice", 30, "New York"],
|
|
|
|
| 17 |
return filename
|
| 18 |
|
| 19 |
def generate_xlsx_report(filename="report.xlsx"):
|
| 20 |
+
"""Generate a sample XLSX report using openpyxl and return its filename."""
|
| 21 |
wb = Workbook()
|
| 22 |
ws = wb.active
|
| 23 |
data = [
|
|
|
|
| 31 |
wb.save(filename)
|
| 32 |
return filename
|
| 33 |
|
| 34 |
+
def generate_pdf_report(filename="report.pdf", subject=None):
|
| 35 |
+
"""Generate a PDF report. If a subject is provided, it is used as the report title and context."""
|
| 36 |
pdf = FPDF()
|
| 37 |
pdf.add_page()
|
| 38 |
pdf.set_font("Arial", size=12)
|
| 39 |
+
if subject:
|
| 40 |
+
pdf.cell(200, 10, txt=f"Report on: {subject}", ln=True)
|
| 41 |
+
pdf.ln(10)
|
| 42 |
+
pdf.multi_cell(0, 10, txt=f"This is an auto-generated report for the request: '{subject}'.\n\n"
|
| 43 |
+
"Data and analysis would be included here based on the subject.")
|
| 44 |
+
else:
|
| 45 |
+
lines = [
|
| 46 |
+
"Name: Alice, Age: 30, City: New York",
|
| 47 |
+
"Name: Bob, Age: 25, City: Los Angeles",
|
| 48 |
+
"Name: Charlie, Age: 35, City: Chicago"
|
| 49 |
+
]
|
| 50 |
+
for line in lines:
|
| 51 |
+
pdf.cell(200, 10, txt=line, ln=True)
|
| 52 |
pdf.output(filename)
|
| 53 |
return filename
|
| 54 |
|
| 55 |
def generate_diagram_report(filename="diagram.png"):
|
| 56 |
+
"""Generate a sample diagram using matplotlib and return its filename."""
|
|
|
|
| 57 |
labels = ["A", "B", "C", "D"]
|
| 58 |
values = [10, 24, 36, 18]
|
|
|
|
| 59 |
plt.figure(figsize=(6, 4))
|
| 60 |
plt.bar(labels, values, color='skyblue')
|
| 61 |
plt.title("Sample Diagram")
|