如何使用Python仅转换Excel工作簿中单个工作表的格式?
批量转换Excel指定工作表为CSV的Python实现
前置依赖
先安装所需的处理库:pip install pandas openpyxl pyxlsb
- pandas:负责数据读写和格式转换
- openpyxl:处理.xlsx格式文件
- pyxlsb:处理.xlsb格式二进制Excel文件
实现代码
直接运行以下代码即可批量处理所有目标文件,按需修改开头的配置参数即可:
import os import pandas as pd # 配置参数,根据实际情况修改 EXCEL_FOLDER = "你的Excel文件所在文件夹路径" TARGET_SHEET = "需要提取的工作表名称" # 若用索引指定填数字,例如第一个工作表填0 OUTPUT_CSV_FOLDER = "CSV文件输出文件夹路径" # 自动创建输出文件夹 os.makedirs(OUTPUT_CSV_FOLDER, exist_ok=True) for filename in os.listdir(EXCEL_FOLDER): file_path = os.path.join(EXCEL_FOLDER, filename) # 跳过非文件、非目标格式的内容 if not os.path.isfile(file_path): continue suffix = filename.split(".")[-1].lower() if suffix not in ("xlsx", "xlsb"): continue # 匹配对应格式的读取引擎 engine = "openpyxl" if suffix == "xlsx" else "pyxlsb" try: # 仅加载指定工作表,不读取其他内容减少耗时 df = pd.read_excel( file_path, sheet_name=TARGET_SHEET, engine=engine ) # 生成CSV文件名,避免重名 csv_name = f"{os.path.splitext(filename)[0]}_{TARGET_SHEET}.csv" save_path = os.path.join(OUTPUT_CSV_FOLDER, csv_name) # 保存为UTF-8编码的CSV,兼容中文避免乱码 df.to_csv(save_path, index=False, encoding="utf-8-sig") print(f"转换完成:{filename} → {csv_name}") except Exception as e: print(f"处理{filename}失败,错误信息:{str(e)}")
优化建议
- 若只需要工作表中的部分列,可在
read_excel中添加usecols=["列名1", "列名2"]参数,进一步压缩读写时间 - 运行全量转换前先拿1-2个测试文件验证参数正确性,避免批量处理出错
内容的提问来源于stack exchange,提问作者Simran Parajulee
相关产品推荐
相关产品推荐

