如何使用具有特定值的单元格隐藏行?

2024-10-02 10:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想隐藏在我的WorkBook中具有值"MASK"的单元格的行

def hide_rows_with_MASK(wb):
    for ws in wb:
        for row in ws.rows:
            if not rowShouldBeHidden(row): continue
            print("hide the row:",row)
            #row.hidden = True
                

def rowShouldBeHidden(row):
    for cell in row:
        if cell.value == "MASK": return True
    return False

hidden部分外,此代码正在工作。实际上row不是一个对象,而是一个细胞的tuple

This post shows how to hide columns但我没能让它在我的例子中起作用。我可以通过隐藏细胞找到一个丑陋的解决方案,但我觉得有一个很好的方法(我只是还不知道)


Tags: intrueforreturnifwsdefcell
1条回答
网友
1楼 · 发布于 2024-10-02 10:20:17

要隐藏行,可以使用RowDimension.hidden属性。您可以查看dimensions子模块documentation

我会做如下的事情:

def hide_rows_with_MASK(wb):
    for ws in wb:
        for i, row in enumerate(ws.rows):
            if rowShouldBeHidden(row):
                print(f"Hiding row {i + 1}")
                #  openpyxl indexes are 1 based not 0
                ws.row_dimensions[i+1].hidden = True

相关问题 更多 >

    热门问题