我正在尝试使用 openpyxl 将额外的工作表添加到现有的 xlsx 工作簿,同时保留数据验证规则。但是,当我加载工作簿时,我收到警告:
openpyxl\worksheet_reader.py:312:用户警告:不支持数据验证扩展,将被删除
当我使用此代码添加额外的工作表时:
excel_book = openpyxl.load_workbook('SomeSpreadsheet.xlsx' )
with pd.ExcelWriter('SomeSpreadsheet.xlsx', engine='openpyxl') as writer:
writer.book = excel_book
writer.sheets = {
worksheet.title: worksheet
for worksheet in excel_book.worksheets
}
secondMockData = { 'c': [10,20], 'd': [30,40] }
secondMockDF = pd.DataFrame(secondMockData)
secondMockDF.to_excel(writer, 'sheetB', index=False)
writer.save()
代码运行成功,但正如警告消息所述,保存文件后所有数据验证规则均已生效。有没有办法解决这个问题,或者可以通过任何其他方式完成此任务(例如,添加额外的工作表)而不丢失数据验证?
提前非常感谢
您将需要解决创建数据验证的标准方法。您仍然会在终端中收到错误消息,但是数据验证将保留在您的 Excel 文件中。
这样,openpyxl 就可以识别并保留与命名范围关联的数据验证规则。