

我们都知道,影刀是支持excel表格中的数据筛选的,也可以对筛选内容进行读取
但是呢,在有的时候,我们还想获取筛选后对应的行号,以便进行增删改查等操作,这个时候,我们大多想到的就是用【查找数据所在行】指令,来对行号进行匹配
那么,我们如何在筛选之后直接获取对应的行号呢?
答案是:用代码~
首先确保已经安装了openpyxl库,然后可以直接在流程中插入代码,或者新建py文件,将以下代码粘贴进入。
from openpyxl import load_workbook
# 修正路径
file_path = r"C:\Users\13275\Desktop\测试.xlsx" # 这里替换为你的excel文件路径
# 加载 Excel 文件
wb = load_workbook(file_path, data_only=True)
ws = wb['Sheet1'] # Sheet页名称
# 获取自动筛选范围
auto_filter_range = ws.auto_filter.ref
start_cell, end_cell = auto_filter_range.split(':')
start_row = int(''.join(filter(str.isdigit, start_cell))) # 提取起始行号
end_row = int(''.join(filter(str.isdigit, end_cell))) # 提取结束行号
#如果是在【插入代码段(python)】指令中,就不需要这个,但是要在指令前设置一个列表变量
visible_rows = []
# 遍历筛选后的可见单元格并获取对应的行号
for row in ws.iter_rows(min_row=start_row, max_row=end_row):
if row[0].row not in visible_rows and not ws.row_dimensions[row[0].row].hidden:
visible_rows.append(row[0].row)
# 打印筛选后的行号,这里以列表的形式输出,如果是用的【插入代码段(python)】指令,就不需要这个代码段了
print(visible_rows)筛选前的Excel格数据
1)代码复制在【插入代码段(Python)】指令后,运行结果
注:在完成筛选之后,一定要增加上保存的指令,以免代码读取错误!!!

2)代码保存在.py文件中,调用.py文件

希望能对大家有所帮助,如果有更好的办法欢迎大家共同探讨~