使用Apache POI按列名将CSV/XLSX文件拆分为多个工作表的咨询
按列名将CSV/XLSX拆分至多工作表的实现方案
首先安装依赖的Python工具库:pip install pandas openpyxl
核心实现逻辑
你可以通过配置「工作表名-对应列名列表」的映射规则,灵活拆分列到不同工作表,完整代码如下:
import pandas as pd # 读取原始文件,若为XLSX格式则替换为 pd.read_excel("你的原始文件.xlsx") raw_df = pd.read_csv("Sample.csv") # 自定义拆分规则:键为工作表名称,值为该工作表需要保留的列名 split_rule = { "sheet1": ["id", "name", "technology"], "User Sheet2": ["User", "Countries"], "Support_Place Sheet3": ["Support_Place", "Support_Details"] } # 批量写入多工作表Excel with pd.ExcelWriter("拆分结果.xlsx", engine="openpyxl") as writer: for sheet_name, keep_columns in split_rule.items(): raw_df[keep_columns].to_excel(writer, sheet_name=sheet_name, index=False)
常见场景调整说明
- 若原始文件有190列,仅需要在
split_rule中扩展配置对应工作表和列的映射即可,无需修改核心代码 - 列名需要和原始文件完全一致,区分大小写、空格、特殊符号
- 若需要输出为多个独立的CSV文件而非同一Excel的多工作表,将循环内的代码替换为:
raw_df[keep_columns].to_csv(f"{sheet_name}.csv", index=False)
内容的提问来源于stack exchange,提问作者Saranya
相关产品推荐
相关产品推荐

