∫dx 2025-06-19 14:32 采纳率: 0%
浏览 6

Python pandas

我想实现一个将文件写入Excel中不同的工作表,如果存在同名工作表,则写入相同工作表,但遇到问题,没有相同工作表能运行,存在相同工作表时出现写入问题,调试时运行到old_df = pd.read_excel出现错误报告,File is not a zip file,有人知道吗?

img

img

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-06-19 14:32
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    你遇到的问题是因为 pandas 读取 Excel 文件时,如果工作表已经存在,会抛出错误。为了解决这个问题,你可以使用 pandasExcelWriter 对象来写入 Excel 文件,并使用 sheet_name 参数指定工作表的名称。

    以下是一个示例代码:

    import pandas as pd
    
    # 创建一个 ExcelWriter 对象
    with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
        # 写入第一个工作表
        df1.to_excel(writer, sheet_name='Sheet1', index=False)
        
        # 写入第二个工作表
        df2.to_excel(writer, sheet_name='Sheet2', index=False)
    

    在上面的代码中,我们使用 ExcelWriter 对象来写入 Excel 文件,并使用 sheet_name 参数指定工作表的名称。如果工作表已经存在,pandas 会自动覆盖该工作表。

    如果你想在写入时检查是否存在相同工作表,可以使用 writer.sheets 属性来检查工作表的名称:

    import pandas as pd
    
    # 创建一个 ExcelWriter 对象
    with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
        # 检查是否存在相同工作表
        if 'Sheet1' in writer.sheets:
            # 如果存在相同工作表,使用 append 模式写入
            df1.to_excel(writer, sheet_name='Sheet1', index=False, mode='a', header=False)
        else:
            # 如果不存在相同工作表,使用写入模式写入
            df1.to_excel(writer, sheet_name='Sheet1', index=False)
    

    在上面的代码中,我们检查是否存在相同工作表,如果存在,我们使用 mode='a'header=False 参数来追加写入该工作表。如果不存在,我们使用默认的写入模式写入该工作表。

    评论

报告相同问题?

问题事件

  • 修改了问题 6月19日
  • 创建了问题 6月19日