在刷新AutoFilter后获取所有隐藏行索引

可能的使用场景

当您在工作表单元格上应用自动筛选时,一些行会自动隐藏。但可能情况是,一些行已经被Excel最终用户手动隐藏了,并不是由自动筛选自动隐藏的。因此,很难知道哪些行是由自动筛选隐藏的,哪些是由Excel最终用户手动隐藏的。Aspose.Cells for Python via .NET 使用AutoFilter.refresh(hide_rows)方法解决了这个问题。该方法返回所有由自动筛选隐藏而不是由Excel最终用户手动隐藏的行索引。

在刷新自动筛选后获取所有隐藏行索引

请参阅以下示例代码,该代码加载包含一些由Excel最终用户手动隐藏的行的示例Excel文件。该代码应用自动筛选并使用AutoFilter.refresh(hide_rows)方法刷新自动筛选,返回自动筛选隐藏的所有行的行索引。然后在控制台上打印出隐藏行的索引、单元格名称和值。

示例代码

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# Load the sample Excel file
wb = Workbook(sourceDir + "sampleGetAllHiddenRowsIndicesAfterRefreshingAutoFilter.xlsx")
# Access first worksheet
ws = wb.worksheets[0]
# Apply autofilter
ws.auto_filter.add_filter(0, "Orange")
# True means, it will refresh autofilter and return hidden rows.
# False means, it will not refresh autofilter but return same hidden rows.
rowIndices = ws.auto_filter.refresh(True)
print("Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.")
print("--------------------------")
for i in range(len(rowIndices)):
r = rowIndices[i]
cell = ws.cells.get(r, 0)
print(str(str(str(str(r) + "\t" ) + cell.name) + "\t" ) + cell.string_value)

控制台输出

Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.

\--------------------------

1       A2      Apple

2       A3      Apple

3       A4      Apple

6       A7      Apple

7       A8      Apple

11      A12     Pear

12      A13     Pear