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

openpyxl批量生成Excel出现多余旧工作表和空白工作表问题求助

问题原因

  • 你整个脚本仅在最开始初始化了一次Workbook对象,所有创建的工作表都会被追加到这同一个工作簿实例中。循环运行到第4、5次处理file2的内容时,之前创建的sheet1、sheet2、sheet3仍保留在工作簿中,保存时自然会一起写入file2。
  • openpyxl初始化Workbook对象时会默认自动创建1张名为Sheet的空白工作表,你的代码没有删除这个默认表,所以所有生成的文件都会携带这张未初始化的空白工作表。

修正后代码

import openpyxl

lst1=["file1","file1","file1","file2","file2"]
lst2=["sheet1","sheet2","sheet3","sheet4","sheet5"]
lst3=["a","b","c","d","e"]

# 按文件名分组存储对应的工作表配置
file_config = {}
for file_name, sheet_name, cell_value in zip(lst1, lst2, lst3):
    if file_name not in file_config:
        file_config[file_name] = []
    file_config[file_name].append((sheet_name, cell_value))

# 逐个生成目标Excel文件
for file_name, sheets in file_config.items():
    # 每个文件单独创建新的工作簿实例
    wb = openpyxl.Workbook()
    # 删除默认生成的空白工作表
    wb.remove(wb.active)
    # 添加当前文件需要的所有工作表
    for sheet_name, cell_value in sheets:
        sheet = wb.create_sheet(sheet_name)
        sheet.cell(row=1, column=1).value = cell_value
    wb.save(f"{file_name}.xlsx")

运行上述代码即可实现file1仅包含sheet1、sheet2、sheet3,file2仅包含sheet4、sheet5,且无多余空白工作表的需求。

内容的提问来源于stack exchange,提问作者Fady Hanna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:02