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

使用openpyxl保存Excel文件时丢失原有页眉页脚问题求助

问题原因

openpyxl 默认加载现有 Excel 文件时,不会解析和保留页眉页脚这类打印布局属性。它的核心定位是处理单元格数据、样式等内容,对打印元数据的读取支持存在缺陷,因此直接加载后保存会丢失原有页眉页脚。

解决方案

方案1:使用win32com.client(Windows环境)

该库直接调用本地Excel应用程序,能完整保留所有文档属性,包括页眉页脚:

import win32com.client as win32

def modif_xlsx():
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = False
    wb = excel.Workbooks.Open(r"test.xlsx")
    # 在这里添加你需要的文件修改操作
    wb.SaveAs(r"test2.xlsx")
    wb.Close()
    excel.Quit()

modif_xlsx()

方案2:使用xlwings(跨平台)

xlwings同样依赖本地Excel应用,支持Windows和macOS,能完整保留文档属性:

import xlwings as xw

def modif_xlsx():
    with xw.App(visible=False) as app:
        wb = xw.Book("test.xlsx")
        # 执行你的修改操作
        wb.save("test2.xlsx")

modif_xlsx()

方案3:openpyxl手动补全(仅适用于已知页眉页脚内容)

如果必须用openpyxl,只能手动设置与原文件一致的页眉页脚(因为openpyxl无法读取原有内容):

from openpyxl import load_workbook

def modif_xlsx():
    wb = load_workbook("test.xlsx")
    ws = wb['Feuil1']
    # 替换为原文件的页眉页脚内容
    ws.header_footer.center_header = "原文档页眉"
    ws.header_footer.center_footer = "原文档页脚"
    wb.save("test2.xlsx")

modif_xlsx()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:45:33