如何在Excel中筛选以customer开头的列并保存至新路径
Excel筛选以"customer"开头的列并保存到新文件
完整实现代码(基于openpyxl库)
from openpyxl import load_workbook from openpyxl import Workbook # 替换为你的实际文件路径 original_path = "原Excel文件路径.xlsx" new_path = "新文件保存路径.xlsx" # 加载原工作簿,取第一个工作表 wb_original = load_workbook(original_path) ws_original = wb_original.active # 找出所有表头以"customer"开头的列索引(openpyxl列索引从1开始) target_cols = [] for col in range(1, ws_original.max_column + 1): header_value = ws_original.cell(row=1, column=col).value if header_value and str(header_value).startswith("customer"): target_cols.append(col) # 创建新工作簿和工作表 wb_new = Workbook() ws_new = wb_new.active # 复制目标列的表头 for idx, col in enumerate(target_cols, start=1): ws_new.cell(row=1, column=idx).value = ws_original.cell(row=1, column=col).value # 复制目标列的数据行 for row in range(2, ws_original.max_row + 1): for idx, col in enumerate(target_cols, start=1): ws_new.cell(row=row, column=idx).value = ws_original.cell(row=row, column=col).value # 保存新文件 wb_new.save(new_path)
关键逻辑说明
- 定位目标列:遍历第一行表头,筛选出值以"customer"开头的列,记录它们的索引
- 复制表头与数据:先把筛选出的表头复制到新表,再逐行复制对应列的内容
- 保存结果:将整理好的新工作簿保存到指定路径
对你原有代码的修正点
- 原代码未遍历表头列,
ws.cell不能直接用于比较,需要指定行和列来获取单元格内容 - 缺少原工作簿加载、新工作簿创建及数据复制的核心逻辑,无法完成筛选和保存操作
内容的提问来源于stack exchange,提问作者Jesse Morelli
相关产品推荐
相关产品推荐

