Xlsxwriter写入文件异常:覆盖原有内容、调用save()报错如何解决?
关于AttributeError: 'Workbook' object has no attribute 'save'报错
XlsxWriter库的Workbook对象原生没有设计save()方法,文件落盘的官方实现是调用close()方法,你代码里写的workbook.close()就是正确的保存逻辑,不需要额外调用save,调用不存在的方法自然会抛出属性错误。
关于原有文件被覆盖的问题
XlsxWriter是仅支持创建写入新Excel文件的库,不具备读取、修改已有Excel文件的能力。当你使用xlsxwriter.Workbook('123.xlsx')实例化工作簿时,只要指定路径下存在同名文件,会直接创建空白的新文件覆盖原有内容,最终文件只会保留你本次代码写入的内容,这是库本身的设计特性,不是代码逻辑错误。
如果需要对已有Excel文件做内容追加/修改,可以改用支持读写操作的openpyxl库,示例逻辑如下:
from openpyxl import load_workbook # 加载已存在的文件,不存在的话可以先创建新的 wb = load_workbook('123.xlsx') # 选中第一个工作表,也可以按工作表名获取 ws = wb.active # openpyxl的单元格索引是从1开始的,对应你原来要写入的第4行第4列(原代码3,3是0基索引) ws.cell(row=4, column=4, value='Test') # 保存修改 wb.save('123.xlsx')
内容的提问来源于stack exchange,提问作者bot_der_4
相关产品推荐
相关产品推荐

