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

Python脚本写入XLSX文件异常:仅保留最后一条计算结果,需批量写入

解决Python写入XLSX仅保留最后一组数据的问题

问题根源

你遇到的问题大概率是每次循环都重新创建工作簿/工作表,或者始终向同一行写入数据,导致之前的计算结果被不断覆盖,最终只留下最后一组数据。

解决方案

下面提供两种常用库的正确实现方式:

方式1:使用openpyxl

适合需要精细控制单元格的场景:

import openpyxl
import os

folder_path = "你的目标文件夹路径"

# 提前初始化工作簿和工作表,放在循环外部
wb = openpyxl.Workbook()
ws = wb.active
# 写入表头
ws["A1"] = "X值"
ws["B1"] = "Y值"
current_row = 2  # 从第2行开始写入数据

# 遍历文件夹内的文件
for filename in os.listdir(folder_path):
    # --------------------------
    # 替换成你的x、y实际计算逻辑
    x = filename.split(".")[0]
    y = len(filename)
    # --------------------------
    
    # 写入当前行的对应列
    ws[f"A{current_row}"] = x
    ws[f"B{current_row}"] = y
    current_row += 1  # 行号递增,避免覆盖

# 统一保存工作簿
wb.save("计算结果.xlsx")

方式2:使用pandas(更简洁)

适合批量数据处理,代码量更少:

import pandas as pd
import os

folder_path = "你的目标文件夹路径"
data = []

# 遍历文件并收集数据
for filename in os.listdir(folder_path):
    # --------------------------
    # 替换成你的x、y实际计算逻辑
    x = filename.split(".")[0]
    y = len(filename)
    # --------------------------
    data.append({"X值": x, "Y值": y})

# 将数据转为DataFrame并写入XLSX
df = pd.DataFrame(data)
df.to_excel("计算结果.xlsx", index=False)

关键注意点

  • 不要在循环内重复创建Workbook()对象,否则每次都会生成新文件覆盖旧的
  • 写入数据时要递增行号,确保每组数据写入不同行
  • pandas方式通过先收集所有数据再一次性写入,天然避免覆盖问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:15:03