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

如何用Pandas更新Excel文件并保留原有格式参数?

解决Excel文件更新时保留格式与多工作表的问题

Pandas本身只专注数据处理,不支持保留Excel的格式(列颜色、尺寸等),而且read_excel默认只读取第一个工作表,to_excel会直接覆盖整个文件,所以你遇到的多表丢失、格式全无的情况是正常的。要实现“只加新行、保留原有格式和多工作表”,可以用下面两个专门操作Excel的库:

方案1:用openpyxl(纯Python,无需安装Excel)

openpyxl是专门处理xlsx格式文件的库,能直接读取并保留原文件的所有格式,适合没有安装Excel的服务器环境。

示例代码

from openpyxl import load_workbook

# 1. 打开原Excel文件,data_only=False保留公式,仅需数据可设为True
wb = load_workbook('my_file.xlsx', data_only=False)

# 2. 定位要添加行的工作表,可指定表名如wb['销售数据'],默认选第一个表
ws = wb.active

# 3. 获取当前数据的最后一行行号
last_row = ws.max_row

# 4. 准备要添加的新行数据
new_data = [100, "张三", "研发部"]

# 5. 在最后一行的下一行写入数据
ws.append(new_data)

# 6. 保存文件,建议先备份原文件再操作
wb.save('my_file.xlsx')

注意事项

  • 要操作多个工作表,直接通过wb['工作表名']切换,其他工作表的内容和格式会原样保留
  • 处理超大文件时,openpyxl会占用一定内存,提前备份更稳妥

方案2:用xlwings(需安装Excel,格式保留更完整)

xlwings直接调用本地Excel程序操作文件,能完美保留所有原生格式,甚至支持复杂Excel功能,适合有Excel客户端的场景。

示例代码

import xlwings as xw

# 1. 启动Excel应用,visible=True可看到窗口,False则后台运行
app = xw.App(visible=True, add_book=False)

# 2. 打开原文件
wb = app.books.open('my_file.xlsx')

# 3. 定位目标工作表,可指定表名如wb.sheets['销售数据'],默认选第一个表
ws = wb.sheets[0]

# 4. 获取最后一行的下一行行号,模拟Excel的Ctrl+↓操作
last_row = ws.range('A1').end('down').row + 1

# 5. 写入新数据,从A列开始填充
ws.range(f'A{last_row}').value = [100, "张三", "研发部"]

# 6. 保存关闭文件,退出Excel
wb.save()
wb.close()
app.quit()

注意事项

  • 必须本地安装Excel软件才能使用xlwings
  • 操作时Excel会真实打开,格式保留效果和原文件完全一致,适合处理有复杂格式的文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:55:13