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

Python替换Excel的Sheet2时如何保留原有工作表格式?

保留Excel原有格式更新Sheet2的解决方案

由于pandas的ExcelWriter在替换工作表时会完全重建工作表,无法直接保留原有格式,你可以通过openpyxl直接操作原工作表的单元格值,实现数据替换同时保留格式,具体步骤如下:

实现步骤

  1. 完成Sheet2的数据处理,得到处理后的DataFrame
  2. 用openpyxl加载原Excel文件,获取目标工作表
  3. 清空工作表原有数据(仅清除单元格值,保留格式)
  4. 将处理后的DataFrame数据写入原工作表对应位置
  5. 保存文件

代码示例

import pandas as pd
from openpyxl import load_workbook

# 1. 读取并处理Sheet2数据(你的原有处理逻辑)
df = pd.read_excel(newest_isaac_file, sheet_name='sheet2')
# --- 这里插入你的数据处理代码 ---

# 2. 加载原Excel文件,获取目标工作表
wb = load_workbook(filepath)
ws = wb['Sheet2']

# 3. 清空原有数据(保留格式):从第2行开始(假设第1行是表头)
# 如果需要更新表头,将min_row改为1
for row in ws.iter_rows(min_row=2, max_row=ws.max_row, max_col=ws.max_column):
    for cell in row:
        cell.value = None

# 4. 将处理后的数据写入工作表
# 从第2行开始写入数据(对应原表头位置)
for r_idx, row_data in enumerate(df.itertuples(index=False), start=2):
    for c_idx, value in enumerate(row_data, start=1):
        ws.cell(row=r_idx, column=c_idx, value=value)

# 5. 保存修改后的文件
wb.save(filepath)

注意事项

  • 如果原工作表包含合并单元格,只要处理后的DataFrame数据位置与原数据位置对应,就不会破坏合并格式
  • 列宽、行高、单元格样式(字体、颜色、边框等)都会完整保留
  • 若需要更新表头,只需调整清空数据的min_row为1,同时写入数据的start改为1即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:25:26