利用python实现对.xls文件表头的修改
- 其他
- 2025-09-19 03:30:01

今天同事说手上有1000多个表,要求批量把表头改了,比如人事干部任免表改为人员信息表这样的小事,一个个的改估计要花费不少时间,看能否写个小程序什么的。
首先考虑的是这件事不是那么容易,主要是.xls是老格式,只是改表,不动格式其实挺不容易,然后开始尝试,gpt总是喜欢改.xlsx格式的,老格式的反倒没有太多支持的。
最后找到了xlwings组件,总算是可以只改一下表头,不会丢格式了,考虑到是1000多个文件,最好放在一个目录中遍历寻找,找到一个改一个然后存另一个目录中,整体代码如下:
程序中为了操作简单,直接在D盘创建文件夹D:/data/ori作为源目录
D:/data/mod作为目标目录
import os import xlwings as xw def modify_excel_file(file_path, save_path, app): """ 使用传入的 Excel 应用实例 app 打开 file_path 文件, 修改第一个工作表 A1 单元格内容为“人员信息表”, 然后另存为 save_path 文件。 """ wb = app.books.open(file_path) # 假设标题在第一个工作表的 A1 单元格(如果有合并单元格,则修改左上角即可) wb.sheets[0].range('A1').value = "人员信息表" wb.save(save_path) wb.close() def process_excel_files(input_dir, output_dir): """ 搜索 input_dir 目录下所有 .xls 文件, 使用 Excel 修改后另存到 output_dir 目录中。 """ # 如果输出目录不存在,则创建 if not os.path.exists(output_dir): os.makedirs(output_dir) # 启动 Excel 应用,后台运行 app = xw.App(visible=False) try: # 遍历目录下所有文件 for filename in os.listdir(input_dir): if filename.lower().endswith('.xls'): file_path = os.path.join(input_dir, filename) save_path = os.path.join(output_dir, filename) print(f"正在处理:{file_path}") modify_excel_file(file_path, save_path, app) finally: # 退出 Excel 应用 app.quit() if __name__ == '__main__': input_directory = r'D:\data\ori' output_directory = r'D:\data\mod' process_excel_files(input_directory, output_directory) print("处理完成!") input("按任意键退出...")然后得发给同事用,他们可能没有python环境,使用pyinstaller --onefile cc.py
生成cc.exe即可
利用python实现对.xls文件表头的修改由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“利用python实现对.xls文件表头的修改”