You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Openpyxl在Excel中基于行数据制作饼图?

解决openpyxl基于行数据生成饼图的问题

你的代码核心问题在于add_data默认按列解析数据,而行结构数据需要明确指定读取方向,同时当前的引用范围包含了非数据的表头列("Pie"和"Sold"),导致饼图解析错误。以下是修正后的代码:

from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference

data = [
    ['Pie', 'Apple', 'Cherry', 'Pumpkin', 'Chocolate'],
    ['Sold', 50, 30, 10, 40]
]

wb = Workbook()
ws = wb.active

for row in data:
    ws.append(row)

pie = PieChart()
# 取第一行第2到第5列作为分类标签(Apple、Cherry等)
labels = Reference(ws, min_col=2, min_row=1, max_col=5, max_row=1)
# 取第二行第2到第5列作为对应数据
data_ref = Reference(ws, min_col=2, min_row=2, max_col=5, max_row=2)
# 关键参数:from_rows=True 表示按行读取数据系列
pie.add_data(data_ref, from_rows=True, titles_from_data=False)
pie.set_categories(labels)
pie.title = "Pies sold by category"
ws.add_chart(pie, "D1")

wb.save("pie_chart.xlsx")

关键修改说明:

  • 缩小Reference范围,排除第一列的非数据表头,只保留实际分类和数值列
  • 通过from_rows=True告知openpyxl按行结构解析数据
  • 设置titles_from_data=False,避免误将数据行的内容当作图表标题

内容的提问来源于stack exchange,提问作者Alejandropg7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:20:30