report-generator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseReport Generator
报告生成器
Create professional, data-driven reports with charts, tables, and narrative text. Perfect for business reports, analytics dashboards, status updates, and automated reporting pipelines.
创建包含图表、表格和说明文字的专业数据驱动型报告。适用于商务报告、分析仪表盘、状态更新和自动化报告流水线。
Quick Start
快速开始
python
from scripts.report_gen import ReportGeneratorpython
from scripts.report_gen import ReportGeneratorCreate a simple report
创建简单报告
report = ReportGenerator("Monthly Sales Report")
report.add_text("This report summarizes sales performance for Q4 2024.")
report.add_table(sales_data, title="Sales by Region")
report.add_chart(sales_data, chart_type="bar", title="Revenue by Month")
report.add_text("Key findings: Revenue increased 25% quarter-over-quarter.")
report.generate().save("sales_report.pdf")
report = ReportGenerator("月度销售报告")
report.add_text("本报告总结了2024年第四季度的销售业绩。")
report.add_table(sales_data, title="各地区销售额")
report.add_chart(sales_data, chart_type="bar", title="月度收入趋势")
report.add_text("关键发现:季度收入环比增长25%。")
report.generate().save("sales_report.pdf")
From template
从模板创建
report = ReportGenerator.from_template("executive_summary")
report.set_data(data_dict)
report.generate().save("exec_summary.pdf")
undefinedreport = ReportGenerator.from_template("执行摘要")
report.set_data(data_dict)
report.generate().save("exec_summary.pdf")
undefinedFeatures
功能特性
- Multiple Output Formats: PDF, HTML
- Rich Content: Text, tables, charts, images, headers
- Chart Types: Bar, line, pie, scatter, area, heatmap
- Table Formatting: Auto-styling, conditional formatting
- Templates: Pre-built report templates
- Branding: Logo, colors, fonts, headers/footers
- Sections: Table of contents, page numbers, appendices
- Data Integration: CSV, DataFrame, dict inputs
- 多输出格式:PDF、HTML
- 丰富内容:文本、表格、图表、图片、标题
- 图表类型:柱状图、折线图、饼图、散点图、面积图、热力图
- 表格格式化:自动样式、条件格式化
- 模板支持:预构建报告模板
- 品牌定制:Logo、配色、字体、页眉/页脚
- 章节结构:目录、页码、附录
- 数据集成:CSV、DataFrame、字典输入
API Reference
API 参考
Initialization
初始化
python
undefinedpython
undefinedNew report
新建报告
report = ReportGenerator("Report Title")
report = ReportGenerator("Report Title", subtitle="Q4 2024 Analysis")
report = ReportGenerator("报告标题")
report = ReportGenerator("报告标题", subtitle="2024年第四季度分析")
From template
从模板创建
report = ReportGenerator.from_template("quarterly_review")
report = ReportGenerator.from_template("季度回顾")
With config
带配置初始化
report = ReportGenerator("Title", config={
"page_size": "letter",
"orientation": "portrait",
"margins": {"top": 1, "bottom": 1, "left": 0.75, "right": 0.75}
})
undefinedreport = ReportGenerator("标题", config={
"page_size": "letter",
"orientation": "portrait",
"margins": {"top": 1, "bottom": 1, "left": 0.75, "right": 0.75}
})
undefinedReport Metadata
报告元数据
python
undefinedpython
undefinedTitle and subtitle
标题和副标题
report.set_title("Annual Report 2024")
report.set_subtitle("Financial Performance Analysis")
report.set_title("2024年度报告")
report.set_subtitle("财务业绩分析")
Author and date
作者和日期
report.set_author("Analytics Team")
report.set_date("December 2024")
report.set_date_auto() # Use today
report.set_author("分析团队")
report.set_date("2024年12月")
report.set_date_auto() # 使用当前日期
Organization
组织信息
report.set_organization("Acme Corporation")
report.set_logo("logo.png")
undefinedreport.set_organization("Acme公司")
report.set_logo("logo.png")
undefinedAdding Content
添加内容
Text Content
文本内容
python
undefinedpython
undefinedSimple paragraph
简单段落
report.add_text("This is a paragraph of analysis text.")
report.add_text("这是一段分析文本。")
Styled text
样式文本
report.add_text("Important finding!", style="highlight")
report.add_text("Key metric: 42%", style="metric")
report.add_text("重要发现!", style="highlight")
report.add_text("关键指标:42%", style="metric")
Headers
标题
report.add_heading("Executive Summary", level=1)
report.add_heading("Revenue Analysis", level=2)
report.add_heading("By Region", level=3)
report.add_heading("执行摘要", level=1)
report.add_heading("收入分析", level=2)
report.add_heading("按地区划分", level=3)
Bullet points
项目符号列表
report.add_bullets([
"Revenue increased 25% YoY",
"Customer acquisition up 15%",
"Churn rate decreased to 3%"
])
report.add_bullets([
"收入同比增长25%",
"客户获取量提升15%",
"客户流失率降至3%"
])
Numbered list
编号列表
report.add_numbered_list([
"Expand to European markets",
"Launch mobile application",
"Implement AI-driven analytics"
])
undefinedreport.add_numbered_list([
"拓展至欧洲市场",
"推出移动应用",
"实施AI驱动的分析"
])
undefinedTables
表格
python
undefinedpython
undefinedFrom DataFrame
从DataFrame导入
import pandas as pd
df = pd.DataFrame({
'Region': ['North', 'South', 'East', 'West'],
'Revenue': [100000, 85000, 92000, 78000],
'Growth': ['12%', '8%', '15%', '5%']
})
report.add_table(df, title="Regional Performance")
import pandas as pd
df = pd.DataFrame({
'Region': ['North', 'South', 'East', 'West'],
'Revenue': [100000, 85000, 92000, 78000],
'Growth': ['12%', '8%', '15%', '5%']
})
report.add_table(df, title="区域业绩")
From dict/list
从字典/列表导入
data = [
{'Product': 'A', 'Sales': 1000, 'Profit': 200},
{'Product': 'B', 'Sales': 1500, 'Profit': 350}
]
report.add_table(data, title="Product Summary")
data = [
{'Product': 'A', 'Sales': 1000, 'Profit': 200},
{'Product': 'B', 'Sales': 1500, 'Profit': 350}
]
report.add_table(data, title="产品汇总")
With styling
带样式的表格
report.add_table(df, title="Sales Data",
highlight_max=['Revenue'], # Highlight max values
highlight_min=['Growth'], # Highlight min values
currency_cols=['Revenue'], # Format as currency
percent_cols=['Growth'], # Format as percent
align={'Region': 'left', 'Revenue': 'right'}
)
undefinedreport.add_table(df, title="销售数据",
highlight_max=['Revenue'], # 高亮最大值
highlight_min=['Growth'], # 高亮最小值
currency_cols=['Revenue'], # 格式化为货币
percent_cols=['Growth'], # 格式化为百分比
align={'Region': 'left', 'Revenue': 'right'}
)
undefinedCharts
图表
python
undefinedpython
undefinedBar chart
柱状图
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="Revenue by Region"
)
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="各地区收入"
)
Line chart
折线图
report.add_chart(
data=time_series_df,
chart_type="line",
x="Month",
y=["Sales", "Forecast"],
title="Sales Trend"
)
report.add_chart(
data=time_series_df,
chart_type="line",
x="Month",
y=["Sales", "Forecast"],
title="销售趋势"
)
Pie chart
饼图
report.add_chart(
data=category_df,
chart_type="pie",
values="Amount",
labels="Category",
title="Budget Allocation"
)
report.add_chart(
data=category_df,
chart_type="pie",
values="Amount",
labels="Category",
title="预算分配"
)
Chart options
图表选项
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="Revenue Analysis",
color="#3498db",
width=6, # inches
height=4,
show_values=True,
show_legend=True
)
undefinedreport.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="收入分析",
color="#3498db",
width=6, # 英寸
height=4,
show_values=True,
show_legend=True
)
undefinedImages
图片
python
undefinedpython
undefinedAdd image
添加图片
report.add_image("screenshot.png", caption="Dashboard View")
report.add_image("diagram.png", width=5, caption="Architecture Diagram")
undefinedreport.add_image("screenshot.png", caption="仪表盘视图")
report.add_image("diagram.png", width=5, caption="架构图")
undefinedSpecial Elements
特殊元素
python
undefinedpython
undefinedPage break
分页符
report.add_page_break()
report.add_page_break()
Horizontal line
水平线
report.add_divider()
report.add_divider()
Spacer
空白间隔
report.add_spacer(height=0.5) # inches
report.add_spacer(height=0.5) # 英寸
Callout box
提示框
report.add_callout(
"Key Insight: Customer retention improved 20% after implementing the new onboarding flow.",
style="info" # info, warning, success, error
)
report.add_callout(
"关键洞察:实施新的用户引导流程后,客户留存率提升了20%。",
style="info" # info, warning, success, error
)
Quote
引用
report.add_quote(
"Data is the new oil.",
attribution="Clive Humby"
)
undefinedreport.add_quote(
"数据是新的石油。",
attribution="Clive Humby"
)
undefinedSections and Structure
章节与结构
python
undefinedpython
undefinedStart a new section
开始新章节
report.start_section("Financial Analysis")
report.start_section("财务分析")
Add content to section
向章节添加内容
report.add_text("...")
report.add_table(...)
report.add_text("...")
report.add_table(...)
End section
结束章节
report.end_section()
report.end_section()
Table of contents (auto-generated)
目录(自动生成)
report.enable_toc()
report.enable_toc()
Appendix
附录
report.start_appendix()
report.add_heading("Raw Data", level=2)
report.add_table(raw_data)
undefinedreport.start_appendix()
report.add_heading("原始数据", level=2)
report.add_table(raw_data)
undefinedBranding and Styling
品牌与样式定制
python
undefinedpython
undefinedLogo and organization
Logo和组织信息
report.set_logo("logo.png", width=150)
report.set_organization("Acme Corp")
report.set_logo("logo.png", width=150)
report.set_organization("Acme公司")
Colors
配色
report.set_colors(
primary="#1e40af", # Headers, accents
secondary="#6b7280", # Secondary text
background="#ffffff" # Background
)
report.set_colors(
primary="#1e40af", # 标题、强调色
secondary="#6b7280", # 次要文本
background="#ffffff" # 背景色
)
Fonts
字体
report.set_fonts(
heading="Helvetica-Bold",
body="Helvetica"
)
report.set_fonts(
heading="Helvetica-Bold",
body="Helvetica"
)
Header and footer
页眉和页脚
report.set_header("Confidential - Internal Use Only")
report.set_footer("Page {page} of {total}")
report.set_header("机密 - 内部使用")
report.set_footer("第 {page} 页,共 {total} 页")
Watermark
水印
report.set_watermark("DRAFT")
undefinedreport.set_watermark("草稿")
undefinedTemplates
模板
python
undefinedpython
undefinedAvailable templates
可用模板
report = ReportGenerator.from_template("executive_summary")
report = ReportGenerator.from_template("quarterly_review")
report = ReportGenerator.from_template("project_status")
report = ReportGenerator.from_template("analytics_dashboard")
report = ReportGenerator.from_template("执行摘要")
report = ReportGenerator.from_template("季度回顾")
report = ReportGenerator.from_template("项目状态")
report = ReportGenerator.from_template("分析仪表盘")
Template with data
带数据的模板
report = ReportGenerator.from_template("monthly_metrics")
report.set_data({
"period": "December 2024",
"revenue": 1500000,
"growth": 0.15,
"customers": 5000,
"charts": {"revenue_trend": trend_df}
})
report.generate()
undefinedreport = ReportGenerator.from_template("月度指标")
report.set_data({
"period": "2024年12月",
"revenue": 1500000,
"growth": 0.15,
"customers": 5000,
"charts": {"revenue_trend": trend_df}
})
report.generate()
undefinedGeneration and Export
生成与导出
python
undefinedpython
undefinedGenerate report
生成报告
report.generate()
report.generate()
Save as PDF
保存为PDF
report.save("report.pdf")
report.save("report.pdf")
Save as HTML
保存为HTML
report.save("report.html")
report.save("report.html")
Get bytes
获取字节数据
pdf_bytes = report.to_bytes()
html_string = report.to_html()
undefinedpdf_bytes = report.to_bytes()
html_string = report.to_html()
undefinedTemplates
模板详情
Executive Summary
执行摘要
- Title page
- Key metrics highlights
- Summary bullets
- Charts section
- Recommendations
- 标题页
- 关键指标高亮
- 摘要要点
- 图表章节
- 建议
Quarterly Review
季度回顾
- Performance overview
- Financial metrics
- Comparison to previous quarter
- Goals progress
- Next quarter outlook
- 业绩概述
- 财务指标
- 与上季度对比
- 目标进度
- 下季度展望
Project Status
项目状态
- Project overview
- Timeline/milestones
- Risks and issues
- Team updates
- Next steps
- 项目概述
- 时间线/里程碑
- 风险与问题
- 团队更新
- 下一步计划
Analytics Dashboard
分析仪表盘
- KPI cards
- Multiple charts
- Trend analysis
- Data tables
- Insights
- KPI卡片
- 多图表展示
- 趋势分析
- 数据表格
- 洞察总结
CLI Usage
命令行使用
bash
undefinedbash
undefinedGenerate from JSON config
从JSON配置生成报告
python report_gen.py --config report_config.json --output report.pdf
python report_gen.py --config report_config.json --output report.pdf
With template
使用模板生成
python report_gen.py --template executive_summary --data data.json --output summary.pdf
python report_gen.py --template executive_summary --data data.json --output summary.pdf
Quick report from CSV
从CSV快速生成报告
python report_gen.py --csv data.csv --title "Data Report" --output report.pdf
undefinedpython report_gen.py --csv data.csv --title "数据报告" --output report.pdf
undefinedCLI Arguments
命令行参数
| Argument | Description | Default |
|---|---|---|
| Report configuration JSON | - |
| Template name | - |
| Data JSON file | - |
| CSV data file | - |
| Report title | |
| Output file path | |
| Output format (pdf/html) | |
| 参数 | 描述 | 默认值 |
|---|---|---|
| 报告配置JSON文件 | - |
| 模板名称 | - |
| 数据JSON文件 | - |
| CSV数据文件 | - |
| 报告标题 | |
| 输出文件路径 | |
| 输出格式(pdf/html) | |
Examples
示例
Sales Report
销售报告
python
report = ReportGenerator("Q4 Sales Report")
report.set_subtitle("October - December 2024")
report.set_organization("Sales Department")
report.set_logo("company_logo.png")
report.add_heading("Executive Summary", level=1)
report.add_text(
"Q4 2024 showed strong performance across all regions, "
"with total revenue reaching $4.2M, a 23% increase over Q3."
)
report.add_callout(
"Total Revenue: $4.2M (+23% QoQ)",
style="success"
)
report.add_heading("Regional Performance", level=2)
report.add_chart(regional_data, "bar", x="Region", y="Revenue",
title="Revenue by Region")
report.add_table(regional_data, title="Detailed Metrics")
report.add_heading("Trends", level=2)
report.add_chart(monthly_data, "line", x="Month", y="Revenue",
title="Monthly Revenue Trend")
report.add_heading("Recommendations", level=1)
report.add_bullets([
"Increase investment in high-growth East region",
"Address declining West region performance",
"Launch Q1 promotional campaign"
])
report.generate().save("q4_sales_report.pdf")python
report = ReportGenerator("Q4销售报告")
report.set_subtitle("2024年10-12月")
report.set_organization("销售部门")
report.set_logo("company_logo.png")
report.add_heading("执行摘要", level=1)
report.add_text(
"2024年第四季度各区域表现强劲,"
"总收入达到420万美元,环比增长23%。"
)
report.add_callout(
"总收入:420万美元(环比+23%)",
style="success"
)
report.add_heading("区域业绩", level=2)
report.add_chart(regional_data, "bar", x="Region", y="Revenue",
title="各地区收入")
report.add_table(regional_data, title="详细指标")
report.add_heading("趋势分析", level=2)
report.add_chart(monthly_data, "line", x="Month", y="Revenue",
title="月度收入趋势")
report.add_heading("建议", level=1)
report.add_bullets([
"加大对高增长东部区域的投入",
"解决西部区域业绩下滑问题",
"推出第一季度促销活动"
])
report.generate().save("q4_sales_report.pdf")Analytics Dashboard
分析仪表盘
python
report = ReportGenerator("Marketing Analytics")
report.set_date_auto()python
report = ReportGenerator("营销分析")
report.set_date_auto()KPI Summary
KPI汇总
report.add_heading("Key Metrics", level=1)
kpis = [
["Visitors", "125,000", "+15%"],
["Conversions", "3,750", "+22%"],
["Revenue", "$187,500", "+18%"],
["CAC", "$45", "-8%"]
]
report.add_table(kpis, headers=["Metric", "Value", "Change"])
report.add_heading("关键指标", level=1)
kpis = [
["访客数", "125,000", "+15%"],
["转化数", "3,750", "+22%"],
["收入", "$187,500", "+18%"],
["客户获取成本", "$45", "-8%"]
]
report.add_table(kpis, headers=["指标", "数值", "变化"])
Traffic Sources
流量来源
report.add_heading("Traffic Sources", level=2)
report.add_chart(traffic_df, "pie", values="Sessions", labels="Source",
title="Traffic Distribution")
report.add_heading("流量来源", level=2)
report.add_chart(traffic_df, "pie", values="Sessions", labels="Source",
title="流量分布")
Conversion Funnel
转化漏斗
report.add_heading("Conversion Funnel", level=2)
report.add_chart(funnel_df, "bar", x="Stage", y="Users",
title="Funnel Analysis", horizontal=True)
report.add_heading("转化漏斗", level=2)
report.add_chart(funnel_df, "bar", x="Stage", y="Users",
title="漏斗分析", horizontal=True)
Trend Analysis
趋势分析
report.add_heading("Trends", level=2)
report.add_chart(daily_df, "line", x="Date", y=["Visitors", "Conversions"],
title="Daily Performance")
report.generate().save("marketing_dashboard.pdf")
undefinedreport.add_heading("趋势分析", level=2)
report.add_chart(daily_df, "line", x="Date", y=["Visitors", "Conversions"],
title="每日业绩")
report.generate().save("marketing_dashboard.pdf")
undefinedDependencies
依赖项
reportlab>=4.0.0
Pillow>=10.0.0
pandas>=2.0.0
matplotlib>=3.7.0reportlab>=4.0.0
Pillow>=10.0.0
pandas>=2.0.0
matplotlib>=3.7.0Limitations
局限性
- Charts rendered as static images in PDF
- Complex layouts may need manual adjustment
- Large datasets may impact performance
- HTML output has basic styling (no interactive charts)
- PDF中的图表以静态图片形式呈现
- 复杂布局可能需要手动调整
- 大型数据集可能影响性能
- HTML输出仅包含基础样式(无交互图表) ",