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

如何用Pandas向多工作表Excel的指定工作表添加单行数据?若不行请推荐其他库

用Python操作Excel指定工作表添加行数据

方法一:使用Pandas实现

Pandas可以完成需求,但需要注意保留原文件中的其他工作表(直接写入会覆盖整个文件),步骤如下:

  1. 读取Excel所有工作表为字典结构
  2. 获取目标工作表并添加新行
  3. 将所有工作表写回原文件

代码示例

import pandas as pd

# 1. 读取整个Excel的所有工作表(sheet_name=None返回字典:键为表名,值为DataFrame)
excel_data = pd.read_excel("your_file.xlsx", sheet_name=None)

# 2. 获取指定工作表,比如名为"TargetSheet"的表
target_df = excel_data["TargetSheet"]

# 准备要添加的行数据(两种方式可选)
# 方式A:按列名匹配的字典
new_row = {"列1": "内容1", "列2": 2024, "列3": 3.14}
new_row_df = pd.DataFrame([new_row])

# 方式B:按列顺序的列表(需与目标表列顺序完全一致)
# new_row_list = ["内容1", 2024, 3.14]
# new_row_df = pd.DataFrame([new_row_list], columns=target_df.columns)

# 合并原表与新行(ignore_index=True重置索引)
updated_df = pd.concat([target_df, new_row_df], ignore_index=True)

# 更新字典中的目标工作表
excel_data["TargetSheet"] = updated_df

# 3. 写回Excel文件,保留所有工作表
# engine选openpyxl适用于.xlsx格式;若为.xls需用xlwt/xlrd
with pd.ExcelWriter("your_file.xlsx", engine="openpyxl", mode="a", if_sheet_exists="replace") as writer:
    for sheet_name, df in excel_data.items():
        df.to_excel(writer, sheet_name=sheet_name, index=False)

方法二:使用openpyxl直接操作(推荐大文件场景)

如果Excel文件较大,Pandas读取全表会占用过多内存,推荐用openpyxl直接操作指定工作表,无需加载整个文件:

代码示例

from openpyxl import load_workbook

# 加载Excel工作簿
wb = load_workbook("your_file.xlsx")

# 获取指定工作表
ws = wb["TargetSheet"]

# 直接追加一行数据(列表元素顺序需与表中列顺序一致)
ws.append(["内容1", 2024, 3.14])

# 保存修改
wb.save("your_file.xlsx")

注意事项

  • Pandas方法适合需要对数据做额外分析处理的场景,openpyxl更适合单纯的行追加操作,效率更高
  • 操作前建议备份原Excel文件,避免意外覆盖数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:16:16