使用 xlwings 根据其值获取单元格位置

get cell location based on its value using xlwings

我正在尝试根据值列表对列应用自动筛选器

过滤后,我想获得列位置

例如:在下面的屏幕截图中,如果我的过滤器值为 1,我希望单元格位置为 B10。

同样,当我的过滤器值为2时,我希望单元格位置为B11。

我怎样才能得到这个?我正在尝试类似下面的东西

import xlwings as xw
for val in filter_val_list:
    for col in range(1, 1000000):
        if sheet.range((row,col)).value == val:
            print("The Row is: "+str(row)+" and the column is "+str(col))

检查该行是否被隐藏,如果没有则打印单元格地址:

import xlwings as xw

path = r"test.xlsx"

with xw.App(visible=False) as app:
    wb = xw.Book(path)
    ws = wb.sheets[0]

    for a_cell in ws.used_range:
        if a_cell.api.EntireRow.Hidden == False:
            print(a_cell.address) # Or use .column if you need the column number.
    wb.close()

如果您的 sheet 的第一行是您不想获取其单元格地址的 header 行,请使用 used_range[1:,:] 而不是 used_range。您还可以指定一列而不是 used_range.