如何使用openpyxl筛选Excel第五列指定值并保存结果到新文件?
实现方案
你已完成目标文件的加载逻辑,后续只需完成行筛选、结果写入新文件两个步骤即可。注意openpyxl的单元格列号从1开始计数,目标第五列对应列索引为5,若直接读取行值元组则下标从0开始,对应下标为4。
完整可运行代码
from openpyxl import load_workbook from openpyxl import Workbook # 加载原始文件,路径前加r避免反斜杠转义错误 wb = load_workbook(r"C:\ktl.xlsx") ws = wb.active # 新建结果工作簿 result_wb = Workbook() result_ws = result_wb.active # 若需要保留原始表头,放开下一行注释即可 # result_ws.append(next(ws.iter_rows(values_only=True))) # 遍历原始表所有行,筛选第五列值为SPT098的行 for row in ws.iter_rows(values_only=True): # 第五列对应元组下标4,判断值是否匹配 if row[4] == "SPT098": result_ws.append(row) # 保存结果文件,可自行修改保存路径和文件名 result_wb.save(r"C:\spt098_filter_result.xlsx")
注意事项
- 路径前加
r是为了让Python把路径当作原始字符串处理,避免\k这类字符被识别为转义符触发报错 - 上述代码为精确匹配逻辑,如果需要模糊匹配包含SPT098的内容,可以把判断条件替换为
row[4] is not None and "SPT098" in str(row[4]),避免空值运行报错 - 保存结果时如果需要存到指定路径,直接把
save()方法里的路径替换成目标绝对路径即可
内容的提问来源于stack exchange,提问作者Allison
相关产品推荐
相关产品推荐

