使用Python的openpyxl向Excel写入内容后文件未更新问题
OpenPyXL写入Excel后文件未更新问题
问题描述
我有一个处于打开状态、名为student.xlsx的Excel工作簿,该工作簿为空且仅包含一个名为Sheet1的工作表。我尝试运行以下Python代码向第一行各列单元格写入字母,代码运行无报错,但Excel工作簿未更新。
运行的代码
import openpyxl wb = openpyxl.load_workbook('student.xlsx') sheet = wb['Sheet1'] # Write letters to different cells sheet['A1'] = 'A' sheet['B1'] = 'B' sheet['C1'] = 'C' sheet['D1'] = 'D' sheet['E1'] = 'E' # Save the workbook wb.save('student.xlsx')
原因及解决办法
- 问题根源:Excel在打开文件时会对文件加锁,防止其他程序修改。OpenPyXL的
save()操作虽然执行成功,但无法覆盖被锁定的原文件,所以你在打开的Excel窗口里看不到更新内容。 - 解决步骤:
- 关闭正在打开的
student.xlsx文件; - 重新执行上述Python代码;
- 再次打开
student.xlsx,就能看到写入的A-E字母了。
- 关闭正在打开的
额外注意
- 后续操作时,务必确保目标Excel文件没有被任何程序(Excel客户端、其他脚本等)占用后,再运行Python写入代码;
- OpenPyXL是基于磁盘文件读写的库,不支持在Excel客户端打开文件时实时同步更新内容。
内容的提问来源于stack exchange,提问作者Warren Chekaluk
相关产品推荐
相关产品推荐

