kyle 71e2503eb7 新增模板导入功能 5 dní pred
..
assets 00bc71c256 first save 1 týždeň pred
references e149b4c408 新添数据分析师角色,增强数据分析能力 1 týždeň pred
scripts 71e2503eb7 新增模板导入功能 5 dní pred
CUSTOM_TEMPLATE_DESIGN.md 71e2503eb7 新增模板导入功能 5 dní pred
README.md e149b4c408 新添数据分析师角色,增强数据分析能力 1 týždeň pred
SKILL.md 71e2503eb7 新增模板导入功能 5 dní pred
五菱报告模板.pptx 71e2503eb7 新增模板导入功能 5 dní pred
海外订单日报_4月数据.xlsx 71e2503eb7 新增模板导入功能 5 dní pred

README.md

通用数据报告 PPT 生成器

输入任意 Excel/CSV 数据文件,自动生成包含原生可编辑图表的高质量数据报告 PPT。

核心特性

  • 通用数据兼容:不依赖固定 Schema,自动探查任意 Excel/CSV 文件的数据结构、字段语义和统计特征
  • 原生可编辑图表:使用 python-pptx 生成原生 Chart 对象,非静态图片,生成后可在 PowerPoint 中直接编辑数据和样式
  • 智能分析推荐:自动识别可量化指标,推荐可视化方案、页面结构和洞察文案
  • 六项用户确认:生成前强制确认报告周期、核心指标、受众场景、视觉风格、页面结构、字段映射,避免生成偏离需求的报告
  • 质量自检引擎:四类 25 项质量检查(布局/视觉/内容/数据),自动检测并迭代修复至达标
  • 多主题支持:5 套预设主题(商务经典、清新简约、科技蓝调、暖橙活力、暗夜深邃),支持自定义配色
  • 专业分析标准:内置《专业数据分析师手册》,确保每页分析包含业务判断、数据证据、对比关系和行动建议

安装要求

pip install python-pptx pandas numpy openpyxl

快速开始

1. 使用预设报告类型(日报/周报/月报)

from scripts.ppt_builder import build_daily_report, build_weekly_report, build_monthly_report
from datetime import datetime

# 日报
build_daily_report('data.xlsx', datetime(2026, 4, 10), 'daily_report.pptx')

# 周报
build_weekly_report('data.xlsx', datetime(2026, 4, 10), 'weekly_report.pptx')

# 月报
build_monthly_report('data.xlsx', datetime(2026, 4, 10), 'monthly_report.pptx')

2. 使用通用构建器(推荐)

from scripts.ppt_builder import build_report, quality_assured_build
from scripts.report_config import ReportConfig, MetricDef, PageDef

# 创建配置
config = ReportConfig(
    title='销售数据月度报告',
    period_type='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')

3. 完整工作流

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               # 动态页面布局引擎
│   ├── deep_insights.py              # 结构化深度洞察生成
│   ├── ppt_builder.py                # PPT 组装编排器
│   ├── quality_rules.py              # 质量检查规则定义
│   └── quality_inspector.py          # 质量自检与自动修复引擎
├── SKILL.md                          # 技能定义与 V2 生成契约
└── README.md                         # 本文件

报告类型

类型 页数 标准结构 分析维度
日报 8 页 封面 → 核心指标 → 近10天趋势 → 状态分布 → 负责人分布 → TOP8国家 → 异常告警 → 今日要点 与昨日对比、与上周同日对比
周报 9 页 封面 → 周汇总 → 7日趋势 → 环比分析 → 区域分布 → 国家排行 → 团队追踪 → 问题与建议 → 下周计划 周环比(WoW)、周同比(YoY)、7日移动平均
月报 11 页 封面 → 目录 → 月度总览 → 订单漏斗 → 区域分布 → TOP10国家 → 30日趋势 → 团队绩效 → 支持需求 → 下月规划 → 尾页 环比(MoM)、同比(YoY)、日均值、结构占比

通用构建器支持自定义页面结构和指标,不限于上述三种预设类型。

核心模块说明

数据探查(data_profiler.py)

自动分析任意数据结构:

  • Schema 检测:列名、类型推断、缺失率、唯一值统计
  • 统计特征:数值列的 min/max/mean/std/分位数/偏度/峰度,分类列的分布与 HHI 集中度
  • 语义推断:自动识别时间列、分类列、数值列、ID 列(支持中英文列名关键词匹配)
  • 数据质量评分:完整性、数值健康度、唯一性、时间一致性、分类完整性五维度加权评分
  • 衍生关系检测:自动发现数值列间的加减关系(如 总需求 - 已下单 = 未下单

质量自检(quality_inspector.py + quality_rules.py)

类别 检查项示例 严重等级
布局 元素飞出边界、图文重叠、占位符未替换、元素紧贴边缘 Critical/Major
视觉 字体不一致、字号异常、颜色对比度不足、图片拉伸 Major/Minor
内容 页面留白过多、KPI 数值为空、图表无数据、分析文本过短 Critical/Major
数据 图表与文本矛盾、页码错乱、数据来源缺失、刻度异常 Major/Minor

评分规则:严重问题 -20 分/页,主要问题 -10 分/页,次要问题 -3 分/页。默认阈值 85 分,最大迭代修复 5 次。

主题管理(theme_manager.py)

内置 5 套主题,每套包含主色、辅色、强调色、背景色、文字色和系列色盘:

  • business_classic — 商务经典(默认)
  • fresh_minimal — 清新简约
  • tech_blue — 科技蓝调
  • warm_orange — 暖橙活力
  • dark_night — 暗夜深邃

支持通过 theme_to_rgb_colors() 一键转换为 pptx 可用的 RGBColor 对象。

分析质量标准

生成分析文本时严格遵循 references/professional-data-analyst-playbook.md

  • 每页分析必须回答五个问题中的至少三个:发生了什么?变化多大?为什么?风险/机会是什么?下一步做什么?
  • 每个洞察块必须包含:结论、证据、解释、影响、动作
  • 禁止空洞表述(如"表现较好"、"需持续关注"),必须引用具体数字和可执行动作
  • 从第 4 页起禁止只做数据总结,必须写出结构、趋势、集中度、转化、缺口、异常和风险

配置参考

ReportConfig 主要字段

字段 类型 说明
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 结束页 固定尾页布局

注意事项

  1. 用户确认是强制步骤:通用构建器默认 require_six_confirmations=True,缺失确认或字段映射无效时必须停止生成
  2. 数据探查服务业务意图:当用户已确认核心指标时,探查结果应映射到实际 Excel 列,不得擅自改变业务焦点
  3. 模板是风格资产而非刚性契约:若模板占位符无法填充,应移除该占位符组件;若 KPI 网格占满空间,应改用其他布局或在后续分析页补充洞察
  4. 分析质量优先于布局质量:即使布局检查通过,仅重述总数/排名/类别名称而无对比、诊断、启示或行动的页面仍不可接受

License

MIT