You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

openpyxl.charts中Reference的min_col参数报错问题求助

问题原因及解决办法

这个问题我之前也碰到过!核心原因是你用的openpyxl版本和《Python编程快速上手》里的示例版本不兼容——书中的代码基于旧版openpyxl(2.4.x及更早),而你现在安装的大概率是3.x以上的新版本,openpyxl在后续更新里重构了图表相关的模块结构和API。

具体来说:

  • 旧版的openpyxl.charts模块已经被重命名为openpyxl.chart(去掉了末尾的s)
  • 新版里Reference类的导入路径变了,虽然参数名(min_colmin_row这些)还保留,但如果导入错了模块,就会触发你看到的参数错误

解决办法

直接修改代码适配新版openpyxl,调整后的完整代码如下:

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

wb = Workbook()
ws = wb.active

for i in range(10):
    ws.append([i])

# 正确使用新版Reference类
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E15")

wb.save("SampleChart.xlsx")

如果你非要和书中代码完全对齐,也可以安装旧版本的openpyxl,执行以下命令:

pip install openpyxl==2.4.9

不过更推荐用新版代码,因为旧版本已经停止维护,后续可能会有兼容性问题。

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

火山引擎 最新活动