我正在使用 openpyxl 导入现有的 Excel 工作表并尝试填写一些值并重新保存,但我注意到电子表格中现有的数据验证下拉框在执行此操作时会变得混乱。即使只是加载电子表格,不执行其他操作,然后重新保存,也会发生这种情况,所以这似乎是 openpyxl 固有的东西。电子表格中的数据验证由某些单元格中的保管箱组成,这些保管箱从一组大约 20 列的其他单元格中获取可能的值(这是为了为公司生成 QC 报告)。例如,单元格 C13 的初始数据验证“源”为 $Z$6:$AB$6,但在加载并保存 Excel 工作表后,该单元格被错误地更改为 $Z$5:$AB$5。奇怪的是,这在所有细胞中并不一致。有些单元格保持正确的范围,而有些单元格则偏离了五行左右。看起来只按行,而不按列。所有具有数据验证的单元格都被合并,我不确定这是否重要。有谁知道为什么会发生这种情况,或者如何解决它?没有太多代码可以显示,但这里有一个会导致此问题的加载/保存函数的简单示例:
wb = load_workbook(filename='myspreadsheet.xlsx')
wb.save('myspreadsheet.xlsx')
Run Code Online (Sandbox Code Playgroud)
提前致谢!罗伯特