|
|
5 days ago | |
|---|---|---|
| .. | ||
| assets | 1 week ago | |
| references | 5 days ago | |
| scripts | 5 days ago | |
| CUSTOM_TEMPLATE_DESIGN.md | 5 days ago | |
| README.md | 5 days ago | |
| SKILL.md | 5 days ago | |
| 五菱报告模板.pptx | 5 days ago | |
| 海外订单日报_4月数据.xlsx | 5 days ago | |
输入任意 Excel/CSV 数据文件,自动生成包含原生可编辑图表的高质量数据报告 PPT。
python-pptx 生成原生 Chart 对象,非静态图片,生成后可在 PowerPoint 中直接编辑数据和样式pip install python-pptx pandas numpy openpyxl
from scripts.ppt_builder import build_report, quality_assured_build
from scripts.report_config import ReportConfig, MetricDef, PageDef, PeriodType
config = ReportConfig(
title='销售数据月度报告',
period_type=PeriodType.MONTHLY,
source_label='销售部',
theme='business_classic',
quality_threshold=85,
max_fix_iterations=5,
)
# 添加指标(根据数据探查结果配置)
config.metrics = [
MetricDef(name='总需求台数', column='总需求台数', agg='sum', unit='台'),
MetricDef(name='已下单台数', column='已下单', agg='sum', unit='台'),
MetricDef(name='转化率', column='转化率', agg='mean', unit='%', fmt='.1f'),
]
# 添加页面
config.pages = [
PageDef(page_type='kpi_overview', title='月度总览'),
PageDef(page_type='trend', title='30日追踪趋势'),
PageDef(page_type='distribution', title='区域分布'),
PageDef(page_type='ranking', title='TOP10目的国'),
PageDef(page_type='summary', title='总结与建议'),
]
# 基础构建
build_report('data.xlsx', config, 'output.pptx')
# 带质量自检的构建(推荐)
prs, issues = quality_assured_build('data.xlsx', config, 'output_qa.pptx')
from scripts.data_loader import load_generic_excel
from scripts.data_profiler import profile_dataframe
from scripts.agent_analyzer import analyze_and_recommend
# 1. 加载数据
df = load_generic_excel('data.xlsx')
# 2. 数据探查
profile = profile_dataframe(df)
print(f"检测到 {profile['num_rows']} 行数据,{profile['num_cols']} 个字段")
# 3. 智能推荐
recs = analyze_and_recommend(profile, period_type='monthly')
print(f"推荐指标: {[m['name'] for m in recs['suggested_metrics']]}")
print(f"推荐页面: {[p['page_type'] for p in recs['suggested_pages']]}")
# 4. 用户确认后构建配置并生成
# ...(见上方配置示例)
用户数据 (.xlsx/.csv)
↓
数据加载与清洗 (data_loader.py)
↓
自动数据探查 (data_profiler.py)
- Schema 检测、统计特征、数据质量评分
↓
智能分析与推荐 (agent_analyzer.py)
- 指标推荐、页面结构、可视化方案
↓
【六项用户确认】
1. 报告周期与页数范围
2. 核心指标集
3. 受众与决策场景
4. 视觉风格与配色方向
5. 页面结构与模板方案
6. 数据范围与字段映射
↓
指标计算 (metrics_calculator.py)
↓
PPT 构建 (ppt_builder.py)
- 动态布局、主题配色、原生图表、深度洞察
↓
质量自检与修复 (quality_inspector.py)
- 布局/视觉/内容/数据 四类检查
- 自动迭代修复至评分 ≥ 阈值
↓
输出 .pptx(全部可编辑)
generate-data-report-ppt/
├── assets/ # PPT 模板文件
│ ├── report-master.pptx # 日报模板
│ ├── weekly-master.pptx # 周报模板
│ └── monthly-master.pptx # 月报模板
├── references/ # 参考规范文档
│ ├── data-schema.md # 数据格式与字段映射规范
│ ├── report-structures.md # 日报/周报/月报标准页面结构
│ ├── chart-specs.md # 图表类型、配色、数据绑定规范
│ ├── visual-style-guide.md # 布局、字体、配色视觉规范
│ ├── quality-standards.md # PPT 生成质量强制规范
│ └── professional-data-analyst-playbook.md # 专业数据分析洞察标准
├── scripts/ # 核心代码
│ ├── data_loader.py # 数据加载与智能清洗
│ ├── data_profiler.py # 通用数据探查引擎
│ ├── report_config.py # 报告配置数据模型
│ ├── theme_manager.py # 多主题配色与模板管理
│ ├── agent_analyzer.py # 智能分析与推荐
│ ├── metrics_calculator.py # KPI 计算引擎
│ ├── chart_factory.py # 原生可编辑图表创建
│ ├── page_layouts.py # 动态页面布局引擎
│ ├── ppt_builder.py # PPT 组装编排器
│ ├── quality_rules.py # 质量检查规则定义
│ └── quality_inspector.py # 质量自检与自动修复引擎
├── SKILL.md # 技能定义与 V2 生成契约
└── README.md # 本文件
| 类型 | 页数 | 标准结构 | 分析维度 |
|---|---|---|---|
| 日报 | 配置驱动 | 封面 → KPI总览 → 趋势图 → 分布/排行 → 异常告警 → 总结 | 与昨日对比、周同比 |
| 周报 | 配置驱动 | 封面 → 周汇总 → 7日趋势 → 环比分析 → 分布/排行 → 总结 | 周环比(WoW)、移动平均 |
| 月报 | 配置驱动 | 封面 → 目录 → 月度总览 → 趋势/分布 → 排行/绩效 → 预测规划 → 尾页 | 环比(MoM)、同比(YoY)、日均值 |
通用构建器支持自定义页面结构和指标,不限于上述三种预设类型。
自动分析任意数据结构:
总需求 - 已下单 = 未下单)| 类别 | 检查项示例 | 严重等级 |
|---|---|---|
| 布局 | 元素飞出边界、图文重叠、占位符未替换、元素紧贴边缘 | Critical/Major |
| 视觉 | 字体不一致、字号异常、颜色对比度不足、图片拉伸 | Major/Minor |
| 内容 | 页面留白过多、KPI 数值为空、图表无数据、分析文本过短 | Critical/Major |
| 数据 | 图表与文本矛盾、页码错乱、数据来源缺失、刻度异常 | Major/Minor |
评分规则:严重问题 -20 分/页,主要问题 -10 分/页,次要问题 -3 分/页。默认阈值 85 分,最大迭代修复 5 次。
内置 5 套主题,每套包含主色、辅色、强调色、背景色、文字色和系列色盘:
business_classic — 商务经典(默认)fresh_minimal — 清新简约tech_blue — 科技蓝调warm_orange — 暖橙活力dark_night — 暗夜深邃支持通过 theme_to_rgb_colors() 一键转换为 pptx 可用的 RGBColor 对象。
生成分析文本时严格遵循 references/professional-data-analyst-playbook.md:
| 字段 | 类型 | 说明 |
|---|---|---|
title |
str | 报告标题 |
period_type |
PeriodType | DAILY / WEEKLY / MONTHLY / CUSTOM |
source_label |
str | 数据来源/部门 |
theme |
str | 主题名称 |
quality_threshold |
int | 质量评分阈值(默认 85) |
max_fix_iterations |
int | 最大修复迭代次数(默认 5) |
metrics |
List[MetricDef] | 指标定义列表 |
pages |
List[PageDef] | 页面定义列表 |
| page_type | 说明 | 布局 |
|---|---|---|
cover |
封面页 | 固定封面布局 |
toc |
目录页 | 章节目录网格 |
kpi_overview |
核心指标概览 | KPI 卡片网格 |
trend |
趋势分析 | 左侧图表 + 右侧洞察 |
distribution |
分布分析 | 左侧图表 + 右侧洞察 |
ranking |
排行分析 | 左侧条形图 + 右侧说明 |
summary |
总结与建议 | 全宽洞察文本 |
end |
结束页 | 固定尾页布局 |
require_six_confirmations=True,缺失确认或字段映射无效时必须停止生成MIT