读取Excel筛选之后的行号
评论
收藏

读取Excel筛选之后的行号

经验分享
予安
2024-09-10 17:28·浏览量:3510
予安
官方发布于 2024-09-10 17:283510浏览

我们都知道,影刀是支持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文件

以上两种办法都可以获取到excel表格筛选后的行号,以便于进行增加,删除等后续操作

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

收藏15
全部评论1
最新
发布评论
评论