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

使用Pandas向含日期列的Excel追加数据:报错及位置错误求助

解决方案

问题分析

你的代码当前会把源数据写入目标文件的新空白行(B-F列),导致该行无日期,核心问题是:

  1. 未给新行添加对应周的日期
  2. 写入逻辑没有匹配目标文件“日期行+对应数值”的结构

另外代码报错大概率是openpyxl版本过低(if_sheet_exists参数要求版本≥3.0.0),先执行升级:

pip install --upgrade openpyxl

场景1:新增带日期的完整行(每周更新通用场景)

如果目标文件需要新增一行,包含本周第一天日期+源数据,用以下代码:

import pandas as pd
from datetime import datetime, timedelta

# 1. 生成本周第一天的日期(这里以周一为每周首日,若需周日则调整timedelta参数)
today = datetime.today()
week_start_date = today - timedelta(days=today.weekday())
week_start_str = week_start_date.strftime("%Y-%m-%d")  # 匹配目标文件的日期格式

# 2. 读取源文件数据(确保Blad1工作表只有一行待追加数据)
source_data = pd.read_excel("Source_file.xlsx", sheet_name="Blad1", header=None).iloc[0]

# 3. 构造包含日期的新行
new_row = pd.DataFrame([[week_start_str] + source_data.tolist()])

# 4. 追加到目标文件
with pd.ExcelWriter("Destination_file.xlsx", mode="a", engine="openpyxl", if_sheet_exists="overlay") as writer:
    # 获取目标工作表的最后一行行号,从下一行开始写入
    start_row = writer.sheets["Sheet1"].max_row
    new_row.to_excel(writer, sheet_name="Sheet1", header=None, index=False, startrow=start_row)

场景2:填充已有日期行的空白列

如果目标文件中已经存在本周日期的行,仅需把源数据填充到该行的右侧列,用以下代码:

import pandas as pd
from datetime import datetime, timedelta

# 1. 生成本周第一天日期(匹配目标文件的日期格式)
today = datetime.today()
week_start_date = today - timedelta(days=today.weekday())
week_start_str = week_start_date.strftime("%Y-%m-%d")

# 2. 读取源数据并转为列表
source_list = pd.read_excel("Source_file.xlsx", sheet_name="Blad1", header=None).iloc[0].tolist()

# 3. 读取目标文件并找到对应日期的行
dest_df = pd.read_excel("Destination_file.xlsx", sheet_name="Sheet1", header=None)
target_row_idx = dest_df[dest_df[0] == week_start_str].index[0]

# 4. 填充数据到该行的第2-6列(对应B-F列)
dest_df.loc[target_row_idx, 1:5] = source_list

# 5. 保存回目标文件
dest_df.to_excel("Destination_file.xlsx", sheet_name="Sheet1", header=None, index=False)

关键注意事项

  • 确保源文件Blad1工作表中只有一行待追加的数值数据
  • 调整日期生成逻辑(timedelta参数)以匹配你定义的“每周第一天”(比如周日需改为timedelta(days=today.weekday()+1))
  • 若目标文件日期格式为MM/DD/YYYY,需修改strftime参数为"%m/%d/%Y"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:07:53