Python使用openpyxl向xlsx文件写入数据报错如何解决
错误原因
template_wb.sheetnames[0]返回的是第一个工作表的名称字符串,并非可操作的工作表对象,对字符串执行下标赋值操作自然会触发'str' object does not support item assignment类型错误。- 原代码中
template_wb.save()没有传入要保存的文件路径,后续运行也会触发参数缺失报错。
修正后代码
from openpyxl import load_workbook template_wb = load_workbook(r'E:\test.xlsx') # 直接通过worksheets属性获取第一个工作表对象 template_ws = template_wb.worksheets[0] template_ws['B4'] = 'test data' # 保存时传入目标文件路径,也可以另存为其他路径 template_wb.save(r'E:\test.xlsx') template_wb.close()
补充写法
如果你需要先获取工作表名称再取对应工作表,可以用以下写法:
from openpyxl import load_workbook template_wb = load_workbook(r'E:\test.xlsx') # 先取第一个工作表的名称 first_sheet_name = template_wb.sheetnames[0] # 用工作簿对象+工作表名称取对应的工作表对象 template_ws = template_wb[first_sheet_name] template_ws['B4'] = 'test data' template_wb.save(r'E:\test.xlsx') template_wb.close()
内容的提问来源于stack exchange,提问作者Pavan Gunda
相关产品推荐
相关产品推荐

