我正在使用openpyxl为一组数据构建Excel工作簿。它包含了我正在使用的模型中包含的每组数据的许多不同表。我的部分代码在每张工作表上激活Excel自动过滤器,其中包含数据填充范围内的数据。这是通过以下类型的代码完成的:
ws = book.get_sheet_by_name(sheet_name)
ws.autofilter.ref = 'A1:E1'
到目前为止,这已经完全正常了。我想要的是让工作表打开列标题上的自动过滤按钮,没有实际的过滤操作。但是,我开始遇到这个问题。每当工作表名称中有一个括号或大括号时,使用autofilter.ref
代码打开自动过滤器会导致错误。这个错误产生于当我打开Excel文件时,Excel告诉我它发现了某些内容的问题"并提供修复文件,然后修复文件使一切工作完全按照我的预期,但它需要首先修复。修复日志说明以下简短声明:
"删除记录:/xl/workbook.xml部分(工作簿)"
的命名范围如果未打开自动过滤器,或者从工作表名称中删除括号,则一切正常。
为什么会出现这种情况?有原因还是只是一个错误?作为参考,xlsxwriter在这种情况下表现正常,在名称中带有括号的工作表上正确应用自动过滤器,使用以下代码完成:
ws = book.get_worksheet_by_name(sheet_name)
ws.autofilter(0, 0, 0, 4)