所有图表必须使用 python-pptx 原生 Chart 对象创建,数据写入图表内嵌 Excel 工作簿,确保用户在 PowerPoint 中可右键 → 编辑数据。
| 图表类型 | XL_CHART_TYPE | 值 | 使用场景 |
|---|---|---|---|
| 簇状柱形图 | COLUMN_CLUSTERED | 51 | 区域分布对比、团队追踪 |
| 簇状条形图 | BAR_CLUSTERED | 57 | 国家排名、负责人排名、状态漏斗(横向) |
| 折线图(带标记) | LINE_MARKERS | 65 | 多日趋势、30日追踪、7日走势 |
| 环形图 | DOUGHNUT | -4120 | 状态分布、区域占比 |
| 表格 | TABLE | 19 | 明细数据、TOP列表、状态变化 |
| 用途 | 色值 | 说明 |
|---|---|---|
| 系列1主色 | #5B9BD5 |
蓝色,主要数据系列 |
| 系列2对比 | #ED7D31 |
橙色,对比/参考系列 |
| 系列3辅助 | #A5A5A5 |
灰色,辅助线或第三系列 |
| 正增长 | #70AD47 |
绿色,用于涨幅标记 |
| 负增长 | #C5504B |
红色,用于跌幅标记 |
| 警告 | #ED7D31 |
橙色,异常告警 |
#333333#D9D9D9,宽度 0.75pt#666666from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
chart_data = ChartData()
chart_data.categories = ['亚洲', '非洲', '拉美', '中东', '欧洲']
chart_data.add_series('订单量', (2160, 1840, 1743, 878, 247))
chart = slide.shapes.add_chart(
XL_CHART_TYPE.COLUMN_CLUSTERED,
left, top, width, height,
chart_data
).chart
数据自动写入 PPT 内嵌的 Excel 工作簿,用户可在 PowerPoint 中直接编辑。
chart = slide.shapes.add_chart(XL_CHART_TYPE.BAR_CLUSTERED, ...).chart
chart.category_axis.reverse_order = True
chart = slide.shapes.add_chart(XL_CHART_TYPE.DOUGHNUT, ...).chart
chart.plots[0].hole_size = 0.5 # 50% 中心空白
chart = slide.shapes.add_chart(XL_CHART_TYPE.LINE_MARKERS, ...).chart
series = chart.series[0]
series.marker.size = 7
series.marker.style = XL_MARKER_STYLE.CIRCLE