pandas xlswriter下拉列表Excel错误

vu8f3i0k  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(101)

为了对特定列中的所有行应用数据验证,使用以下序列:

import xlsxwriter

workbook = xlsxwriter.Workbook('data_validate2.xlsx')
worksheet = workbook.add_worksheet()

status_col_loc=1
for row in range(1,50000):
    worksheet.data_validation(xlsxwriter.utility.xl_rowcol_to_cell(row,status_col_loc) ,{'validate':'list' ,'source': ['Closed','Pending','Redirected']})
workbook.close()

当应用的行数小于50K时,此方法工作正常。超过此值时,它会损坏excel文件

有没有什么方法可以在不破坏excel文件的情况下对超过100K的行应用验证?

jdzmm42g

jdzmm42g1#

Excel对每个工作表的唯一非连续数据验证限制为60,000个,这一限制未做任何说明。
Excel通过对重复验证进行优化(超过60,000次),支持超过60,000次非唯一、非连续数据验证。
但是,XlsxWriter不支持这种优化,因此您必须将工作表中的数据验证限制为60,000。

2023年更新:Excel对每个工作表60,000个唯一非连续数据验证的限制仍然存在。但是,对于60,000个非唯一、非连续数据验证的次要情况,现在可以使用worksheet.data_validation()multi_range功能解决此问题。

相关问题