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

如何为现有Excel文件添加打印页眉/页脚且不丢失原有数据

如何在不丢失原有数据的前提下为Excel文件添加打印页眉

原代码的核心问题是使用了xlsxwriter作为引擎——xlsxwriter仅支持创建新Excel文件,无法直接修改现有文件。你的代码只是创建了空的新工作表并设置页眉,但没有将原文件中的数据写入这些新表,最终保存时直接覆盖了原文件,导致数据丢失。

正确的做法是使用支持读写现有Excel文件的库(比如openpyxl),它可以直接加载已有工作簿,修改打印设置后保存,完全保留原有数据。

修正后的代码

import openpyxl
import glob
import os

def addExcelFile(locationPath, textAdd):
    # 遍历目标路径下所有xlsx文件(含子目录)
    for file in glob.glob(locationPath + '\\**\\*.xlsx', recursive=True):
        filename = os.path.basename(file)
        # 跳过Excel临时文件(以~$开头)
        if filename.startswith('~$'):
            print(f'跳过临时文件: {file}')
            continue
        
        print(f'正在处理文件: {file}')
        # 加载现有Excel工作簿,保留所有原有数据和格式
        wb = openpyxl.load_workbook(file)
        
        # 根据指定文本设置对应页眉格式
        if textAdd == 'LGE Confidential':
            # 格式:居中对齐、Tahoma粗体、14号字、红色(RGB: FF0000)
            header_content = f'&C&"Tahoma,Bold"&14&KFF0000{textAdd}'
        elif textAdd == 'LGE Internal Use Only':
            # 格式:居中对齐、Tahoma粗体、14号字、灰色(RGB: A9A9A9)
            header_content = f'&C&"Tahoma,Bold"&14&KA9A9A9{textAdd}'
        else:
            print(f"不支持的页眉文本: {textAdd},跳过当前文件")
            wb.close()
            continue
        
        # 为所有工作表设置页眉
        for ws in wb.worksheets:
            # 设置奇数页页眉
            ws.oddHeader = header_content
            # 若需要偶数页使用相同页眉,取消下方注释
            ws.evenHeader = header_content
        
        # 保存修改后的工作簿
        wb.save(file)
        wb.close()
        print(f'文件处理完成: {file}')

关键说明

  • openpyxl.load_workbook(file):直接加载现有Excel文件,完整保留原数据、格式和工作表结构。
  • 页眉格式控制符说明:
    • &C:页眉内容居中对齐
    • &"Tahoma,Bold":指定字体为Tahoma粗体
    • &14:设置字号为14
    • &KXXXXXX:设置字体颜色(十六进制RGB值,需大写)
  • 建议处理前备份重要Excel文件,避免意外问题导致数据丢失。

内容的提问来源于stack exchange,提问作者Thảo Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:38:15