You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历Excel多工作表并按条件转换为CSV的代码调试问题

问题分析与代码修正

你的代码存在逻辑和语法错误,以下是修正后的版本及关键问题说明:

原代码核心问题

  • 遍历df.items()时未正确解构元组:df.items()返回**(工作表名称, 对应数据框)**的元组,直接用sheets接收无法正确提取工作表名
  • 判断条件sheets[df.items()] == 'Shipment'完全错误,未正确获取工作表名称
  • 读取Excel时存在语法错误:括号未闭合,sheet_name与header参数传递方式错误
  • 保存CSV时路径固定会导致文件被覆盖,未按工作表名区分输出文件

修正后的代码

import pandas as pd

def convert_to_csv(excel_file):
    # 先获取所有工作表名称,避免一次性读取全部数据节省内存
    xls = pd.ExcelFile(excel_file)
    sheet_names = xls.sheet_names
    
    for sheet_name in sheet_names:
        # 根据工作表名选择对应的header参数
        header = 4 if sheet_name == 'Shipment' else 0
        # 读取当前工作表数据
        df = pd.read_excel(excel_file, sheet_name=sheet_name, header=header)
        # 按工作表名命名输出CSV,避免文件覆盖
        output_path = f"{sheet_name}.csv"
        df.to_csv(output_path, decimal=',', index=False)

关键优化说明

  • 使用pd.ExcelFile先获取工作表列表,适合处理大文件,避免内存浪费
  • 直接遍历工作表名称,逻辑更清晰易懂
  • 用三元表达式简化header的判断逻辑
  • 输出文件名绑定工作表名称,确保每个工作表的CSV文件独立不被覆盖
  • 修复了原代码的语法错误(括号闭合、参数传递)

内容的提问来源于stack exchange,提问作者Murtaza Mohsin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:48:45