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

使用Python向含VBA的Excel写入图片时出现'Cell'无'_id'属性错误

问题分析与解决

这段代码存在两个明确问题,直接导致了报错:

  • add_image方法参数使用错误
    sheet_InputData_Overview.add_image(ws.cell(2,28)) 完全误用了openpyxl的API规则。add_image方法的首个参数必须是你创建的Image对象,而非Cell对象。要指定图片放置位置,需要给Image对象设置anchor属性,或是在调用add_image时传入位置参数。

  • 未定义变量ws
    代码里从未定义过ws这个变量,你实际使用的工作表对象是sheet_InputData_Overview,此处属于变量名书写错误。

修正后的代码如下:

wb = openpyxl.load_workbook('Output_Report_v16.xlsm', read_only=False, keep_vba=True)
sheets = wb.sheetnames
sheet_InputData_Overview = wb[sheets[7]]

img = openpyxl.drawing.image.Image('Eink_Liq.png')
# 设置图片锚点为第2行第28列的单元格
img.anchor = sheet_InputData_Overview.cell(2,28).coordinate
sheet_InputData_Overview.add_image(img)

wb.save('Output_Report_v16.xlsm')

补充说明:你设置的keep_vba=True是正确的,保存后的xlsm文件会保留原有VBA代码,不会被修改或删除,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:40:27