我目前有一个pandas数据帧,我正在将其导入一个已格式化的excel工作表中。在工作簿中的另一个工作表上,我使用的是Excel数据验证下拉列表。
这是我目前的代码:
file= "Test.xlsm"
book = load_workbook(file, read_only=False, keep_vba=True)
writer = pd.ExcelWriter(file, engine='openpyxl', mode='a')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
df.to_excel(writer, sheet_name='UnitDB', startrow = 3, starcol =1, index=False, header = False)
writer.save()
程序成功执行,除了收到一个警告。
UserWarning: Data Validation extension is not supported and will be removed.
在我刚刚将数据帧写入的Excel工作簿中,我注意到数据验证列表的其他工作表中的所有实例都已删除。
我知道这可能是openpyxl无法理解数据验证的一个限制,但有没有办法让openpyxl忽略这一点,这样我当前的数据验证就可以保持原样?
谢谢!
我能够通过在公式名称管理器中创建一个变量来绕过这个错误,该变量包含我最初在数据验证工具中使用的单元格范围。然后,在进行数据验证时,我只输入=myvariablename,而不是单元格范围。