【问题标题】:Bypass openpyxl data validation extension in python?绕过python中的openpyxl数据验证扩展?
【发布时间】:2021-12-28 22:18:27
【问题描述】:

我目前有一个 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 忽略这一点,以便我当前的数据验证能够保持原样?

谢谢!

【问题讨论】:

    标签: python excel validation openpyxl


    【解决方案1】:

    我能够通过在公式名称管理器中创建一个变量来绕过此错误,该变量包含我最初在数据验证工具中使用的单元格范围。然后,在进行数据验证时,我只需输入 =myvariablename 而不是单元格范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2015-08-31
      相关资源
      最近更新 更多