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

使用Python openpyxl循环创建Excel多工作表仅生成单页问题求助

问题原因

  • 你将工作簿初始化wb = openpyxl.Workbook()和文件保存wb.save(filepath)的逻辑放在了for循环内部,每次循环都会生成一个全新的空白工作簿,直接覆盖上一次循环保存的Excel文件,最终只会保留最后一次循环的执行结果。
  • openpyxl初始化工作簿时会默认生成一个名为Sheet的空白工作表,不需要可以手动删除。

修正后代码

from datetime import datetime
import openpyxl
from openpyxl.styles import Font

table_name = ["M-1", "M-2", "M-3"]
xltitle = datetime.now()
tit_head = "ALL_MACHINE" + xltitle.strftime("%d_%m_%Y_%H_%M_%S")+".xlsx"
filepath = tit_head
headings = ("NAME", "ID", "EMPLOYEE NAME",
            "NUMBER", "START TIME", "STOP TIME")

# 工作簿初始化放在循环外,只创建一次
wb = openpyxl.Workbook()
# 删除默认生成的空白Sheet
wb.remove(wb.active)

for tab_nam in table_name:
    # 循环内仅创建新工作表、配置内容
    sheet = wb.create_sheet(title=tab_nam)
    sheet.row_dimensions[1].font = Font(bold=True)
    for colno, heading in enumerate(headings, start=1):
        sheet.cell(row=1, column=colno).value = heading

# 所有工作表创建完成后统一保存,只执行一次
wb.save(filepath)

内容的提问来源于stack exchange,提问作者Kiran Shankar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:57:05