report-generator by dkyazzentwatwa/chatgpt-skills
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill report-generator创建专业的、数据驱动的报告,包含图表、表格和叙述性文本。适用于业务报告、分析仪表板、状态更新和自动化报告流水线。
from scripts.report_gen import ReportGenerator
# 创建简单报告
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")
# 从模板创建
report = ReportGenerator.from_template("executive_summary")
report.set_data(data_dict)
report.generate().save("exec_summary.pdf")
# 新建报告
report = ReportGenerator("报告标题")
report = ReportGenerator("报告标题", subtitle="2024 年第四季度分析")
# 从模板创建
report = ReportGenerator.from_template("quarterly_review")
# 带配置
report = ReportGenerator("标题", config={
"page_size": "letter",
"orientation": "portrait",
"margins": {"top": 1, "bottom": 1, "left": 0.75, "right": 0.75}
})
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 标题和副标题
report.set_title("2024 年度报告")
report.set_subtitle("财务表现分析")
# 作者和日期
report.set_author("分析团队")
report.set_date("2024 年 12 月")
report.set_date_auto() # 使用当天日期
# 组织
report.set_organization("Acme 公司")
report.set_logo("logo.png")
# 简单段落
report.add_text("这是一段分析文本。")
# 带样式的文本
report.add_text("重要发现!", style="highlight")
report.add_text("关键指标:42%", style="metric")
# 标题
report.add_heading("执行摘要", level=1)
report.add_heading("收入分析", level=2)
report.add_heading("按区域", level=3)
# 项目符号列表
report.add_bullets([
"收入同比增长 25%",
"客户获取量增长 15%",
"流失率降至 3%"
])
# 编号列表
report.add_numbered_list([
"拓展欧洲市场",
"推出移动应用程序",
"实施 AI 驱动分析"
])
# 从 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="区域表现")
# 从字典/列表
data = [
{'Product': 'A', 'Sales': 1000, 'Profit': 200},
{'Product': 'B', 'Sales': 1500, 'Profit': 350}
]
report.add_table(data, title="产品摘要")
# 带样式
report.add_table(df, title="销售数据",
highlight_max=['Revenue'], # 高亮最大值
highlight_min=['Growth'], # 高亮最小值
currency_cols=['Revenue'], # 格式化为货币
percent_cols=['Growth'], # 格式化为百分比
align={'Region': 'left', 'Revenue': 'right'}
)
# 柱状图
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="按区域划分的收入"
)
# 折线图
report.add_chart(
data=time_series_df,
chart_type="line",
x="Month",
y=["Sales", "Forecast"],
title="销售趋势"
)
# 饼图
report.add_chart(
data=category_df,
chart_type="pie",
values="Amount",
labels="Category",
title="预算分配"
)
# 图表选项
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="收入分析",
color="#3498db",
width=6, # 英寸
height=4,
show_values=True,
show_legend=True
)
# 添加图像
report.add_image("screenshot.png", caption="仪表板视图")
report.add_image("diagram.png", width=5, caption="架构图")
# 分页符
report.add_page_break()
# 水平线
report.add_divider()
# 间距
report.add_spacer(height=0.5) # 英寸
# 提示框
report.add_callout(
"关键洞察:实施新入职流程后,客户留存率提高了 20%。",
style="info" # info, warning, success, error
)
# 引用
report.add_quote(
"数据是新的石油。",
attribution="Clive Humby"
)
# 开始新章节
report.start_section("财务分析")
# 向章节添加内容
report.add_text("...")
report.add_table(...)
# 结束章节
report.end_section()
# 目录(自动生成)
report.enable_toc()
# 附录
report.start_appendix()
report.add_heading("原始数据", level=2)
report.add_table(raw_data)
# 徽标和组织
report.set_logo("logo.png", width=150)
report.set_organization("Acme 公司")
# 颜色
report.set_colors(
primary="#1e40af", # 标题、强调色
secondary="#6b7280", # 次要文本
background="#ffffff" # 背景
)
# 字体
report.set_fonts(
heading="Helvetica-Bold",
body="Helvetica"
)
# 页眉和页脚
report.set_header("机密 - 内部使用")
report.set_footer("第 {page} 页,共 {total} 页")
# 水印
report.set_watermark("草稿")
# 可用模板
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("monthly_metrics")
report.set_data({
"period": "2024 年 12 月",
"revenue": 1500000,
"growth": 0.15,
"customers": 5000,
"charts": {"revenue_trend": trend_df}
})
report.generate()
# 生成报告
report.generate()
# 保存为 PDF
report.save("report.pdf")
# 保存为 HTML
report.save("report.html")
# 获取字节
pdf_bytes = report.to_bytes()
html_string = report.to_html()
# 从 JSON 配置生成
python report_gen.py --config report_config.json --output report.pdf
# 使用模板
python report_gen.py --template executive_summary --data data.json --output summary.pdf
# 从 CSV 快速生成报告
python report_gen.py --csv data.csv --title "数据报告" --output report.pdf
| 参数 | 描述 | 默认值 |
|---|---|---|
--config | 报告配置 JSON | - |
--template | 模板名称 | - |
--data | 数据 JSON 文件 | - |
--csv | CSV 数据文件 | - |
--title | 报告标题 | Report |
--output | 输出文件路径 | report.pdf |
--format | 输出格式 (pdf/html) | pdf |
report = ReportGenerator("第四季度销售报告")
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")
report = ReportGenerator("营销分析")
report.set_date_auto()
# KPI 摘要
report.add_heading("关键指标", level=1)
kpis = [
["访客数", "125,000", "+15%"],
["转化数", "3,750", "+22%"],
["收入", "$187,500", "+18%"],
["CAC", "$45", "-8%"]
]
report.add_table(kpis, headers=["指标", "数值", "变化"])
# 流量来源
report.add_heading("流量来源", level=2)
report.add_chart(traffic_df, "pie", values="Sessions", labels="Source",
title="流量分布")
# 转化漏斗
report.add_heading("转化漏斗", level=2)
report.add_chart(funnel_df, "bar", x="Stage", y="Users",
title="漏斗分析", horizontal=True)
# 趋势分析
report.add_heading("趋势", level=2)
report.add_chart(daily_df, "line", x="Date", y=["Visitors", "Conversions"],
title="每日表现")
report.generate().save("marketing_dashboard.pdf")
reportlab>=4.0.0
Pillow>=10.0.0
pandas>=2.0.0
matplotlib>=3.7.0
每周安装数
124
代码仓库
GitHub 星标数
37
首次出现
2026 年 1 月 24 日
安全审计
安装于
opencode108
gemini-cli106
codex100
github-copilot97
cursor97
amp88
Create professional, data-driven reports with charts, tables, and narrative text. Perfect for business reports, analytics dashboards, status updates, and automated reporting pipelines.
from scripts.report_gen import ReportGenerator
# Create 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")
# From template
report = ReportGenerator.from_template("executive_summary")
report.set_data(data_dict)
report.generate().save("exec_summary.pdf")
# New report
report = ReportGenerator("Report Title")
report = ReportGenerator("Report Title", subtitle="Q4 2024 Analysis")
# From template
report = ReportGenerator.from_template("quarterly_review")
# With config
report = ReportGenerator("Title", config={
"page_size": "letter",
"orientation": "portrait",
"margins": {"top": 1, "bottom": 1, "left": 0.75, "right": 0.75}
})
# Title and subtitle
report.set_title("Annual Report 2024")
report.set_subtitle("Financial Performance Analysis")
# Author and date
report.set_author("Analytics Team")
report.set_date("December 2024")
report.set_date_auto() # Use today
# Organization
report.set_organization("Acme Corporation")
report.set_logo("logo.png")
# Simple paragraph
report.add_text("This is a paragraph of analysis text.")
# Styled text
report.add_text("Important finding!", style="highlight")
report.add_text("Key metric: 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)
# Bullet points
report.add_bullets([
"Revenue increased 25% YoY",
"Customer acquisition up 15%",
"Churn rate decreased to 3%"
])
# Numbered list
report.add_numbered_list([
"Expand to European markets",
"Launch mobile application",
"Implement AI-driven analytics"
])
# From 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")
# From dict/list
data = [
{'Product': 'A', 'Sales': 1000, 'Profit': 200},
{'Product': 'B', 'Sales': 1500, 'Profit': 350}
]
report.add_table(data, title="Product Summary")
# 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'}
)
# Bar chart
report.add_chart(
data=df,
chart_type="bar",
x="Region",
y="Revenue",
title="Revenue by Region"
)
# Line chart
report.add_chart(
data=time_series_df,
chart_type="line",
x="Month",
y=["Sales", "Forecast"],
title="Sales Trend"
)
# Pie chart
report.add_chart(
data=category_df,
chart_type="pie",
values="Amount",
labels="Category",
title="Budget Allocation"
)
# 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
)
# Add image
report.add_image("screenshot.png", caption="Dashboard View")
report.add_image("diagram.png", width=5, caption="Architecture Diagram")
# Page break
report.add_page_break()
# Horizontal line
report.add_divider()
# Spacer
report.add_spacer(height=0.5) # inches
# Callout box
report.add_callout(
"Key Insight: Customer retention improved 20% after implementing the new onboarding flow.",
style="info" # info, warning, success, error
)
# Quote
report.add_quote(
"Data is the new oil.",
attribution="Clive Humby"
)
# Start a new section
report.start_section("Financial Analysis")
# Add content to section
report.add_text("...")
report.add_table(...)
# End section
report.end_section()
# Table of contents (auto-generated)
report.enable_toc()
# Appendix
report.start_appendix()
report.add_heading("Raw Data", level=2)
report.add_table(raw_data)
# Logo and organization
report.set_logo("logo.png", width=150)
report.set_organization("Acme Corp")
# Colors
report.set_colors(
primary="#1e40af", # Headers, accents
secondary="#6b7280", # Secondary text
background="#ffffff" # Background
)
# Fonts
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}")
# Watermark
report.set_watermark("DRAFT")
# Available 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")
# 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()
# Generate report
report.generate()
# Save as PDF
report.save("report.pdf")
# Save as HTML
report.save("report.html")
# Get bytes
pdf_bytes = report.to_bytes()
html_string = report.to_html()
# Generate from JSON config
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
# Quick report from CSV
python report_gen.py --csv data.csv --title "Data Report" --output report.pdf
| Argument | Description | Default |
|---|---|---|
--config | Report configuration JSON | - |
--template | Template name | - |
--data | Data JSON file | - |
--csv | CSV data file | - |
--title | Report title | Report |
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")
report = ReportGenerator("Marketing Analytics")
report.set_date_auto()
# KPI Summary
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"])
# Traffic Sources
report.add_heading("Traffic Sources", level=2)
report.add_chart(traffic_df, "pie", values="Sessions", labels="Source",
title="Traffic Distribution")
# Conversion Funnel
report.add_heading("Conversion Funnel", level=2)
report.add_chart(funnel_df, "bar", x="Stage", y="Users",
title="Funnel Analysis", 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")
reportlab>=4.0.0
Pillow>=10.0.0
pandas>=2.0.0
matplotlib>=3.7.0
Weekly Installs
124
Repository
GitHub Stars
37
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode108
gemini-cli106
codex100
github-copilot97
cursor97
amp88
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
36,300 周安装
--output | Output file path | report.pdf |
--format | Output format (pdf/html) | pdf |