使用openpyxl写入Excel单元格报错AttributeError: setitem,如何解决?
解决openpyxl中AttributeError: setitem的问题
嘿,这个问题我之前也踩过坑!你出错的原因很简单——你直接在Workbook对象上操作单元格了,但openpyxl要求必须先定位到具体的工作表(Worksheet)才行。
错误原因拆解
load_workbook返回的wb是Workbook实例,它代表整个Excel文件,本身并不支持像wb['A1']这样直接赋值单元格的操作,所以才会抛出AttributeError: setitem的错误。你需要先获取到文件里的某个工作表,再对工作表进行单元格赋值。
修改后的代码
from openpyxl import load_workbook def readInWorkbook(): wb = load_workbook(filename = 'myTracker.xlsx') # 获取当前激活的工作表(默认是第一个工作表) ws = wb.active # 或者指定具体工作表名称,比如你的表叫"Sheet1" # ws = wb['Sheet1'] ws['A1'] = 'HEY we made it' wb.save('myTracker.xlsx') print("After save")
补充说明
- 如果你的Excel文件里有多个工作表,记得用
wb['工作表名称']来指定你要操作的表,避免修改错工作表。 - 操作完成后一定要调用
wb.save()保存更改,不然你的修改不会写入到文件里哦。
内容的提问来源于stack exchange,提问作者user8128927
相关产品推荐
相关产品推荐

