Python:保留原格式复制万份Excel表格到汇总表,并自动生成目录

我是智能取经人 2024-08-03 09:54:50

摘要: 工作中,经常需要将很多独立的excel表格按照顺序复制汇总到单个工作簿中,并且要求保留原表格的格式,且要生成目录页。使用excel自带的“移动或复制”可以实现,但是纯手工操作,需要一个一个打开并复制到新的表格。目录也要手动“复制粘贴”。

你是否也曾被这样繁琐重复的汇总工作折磨得筋疲力尽?现在,用Python自动化工具,几秒钟就完成了原本需要几天的工作量,彻底告别了枯燥与低效!

引言

微信公众号粉丝小李担任公司的办公室主任。每月,他都要执行一项看似简单却极其繁琐的任务:将来自不同部门的Excel报告按照原格式汇总到一个工作簿中,并在工作簿的第一个表里形成目录,供领导层审阅。这不仅是一项重复性极高的工作,而且手工操作一次表格就需要几分钟,而每月的报告数量多达上百份。

1.小李的挑战

小李在微信公众号上留言说:“我每个月都要汇总各部门的报告,挨个打开Excel表格,然后‘移动复制表格到汇总表里’,再手动在第一张表里添加上目录。这样的工作重复性高,耗时长,让我感到非常疲惫。”

2.传统方法的局限

小李之前的做法是:

逐个打开每个Excel文件使用Excel的“移动或复制”功能,将每个工作表粘贴到汇总表中。手动在汇总表的第一张工作表里添加目录,指向每个部门的报告。面对每月上百份的报告,需要重复操作数百次。3.Python自动化的解决方案

我们为小李提供了一个Python脚本,能够自动将多个独立的Excel表格按照顺序汇总到单个工作簿中,并保留原表格的格式,同时自动生成目录页。

import os # 用于获取目标文件所在路径import win32comimport win32com.clientpath = os.getcwd()+"\\文件\\" # 文件夹绝对路径files = []for file in os.listdir(path): if file.endswith(".xls") or file.endswith(".xlsx"): # 只获取".xls"后缀的文件 files.append(path+file)excel_app = win32com.client.Dispatch("Excel.Application")excel_app.Visible = False # 不显示Excel文件excel_app.DisplayAlerts = False# 新建excel工作簿wb = excel_app.Workbooks.Add()wb.SaveAs(os.getcwd() + "\\汇总.xlsx")ws = wb.Worksheets(1)ws.Name = "目录"for i in range(len(files)): file_name = files[i].split("\\")[-1].split(".")[0] ws.Range("A"+str(i+1)).Value = file_name # 读取子文件 wb_sub = excel_app.Workbooks.Open(files[i]) ws_sub = wb_sub.ActiveSheet # 获取活动工作表 ws_sub.Copy(ws) # 复制工作表到汇总表 wb.ActiveSheet.Name = file_name # 更改工作表名 wb_sub.Close() print(f"已复制文件 {file_name}")# 将“目录”工作表移动到最前面first_sheet = files[0].split("\\")[-1].split(".")[0]wb.Worksheets("目录").Move(wb.Worksheets(first_sheet))wb.Save()wb.Close()excel_app.Quit()4.效果展示

使用我们的脚本,小李现在可以在几秒钟内完成之前需要几天的工作。这个自动化工具不仅提高了效率,还减少了因手动操作导致的错误。更重要的是,它自动生成的目录页,使得领导层能够快速定位到每个部门的报告。

结语

Python自动化不仅仅是编程技巧的展示,更是一种工作方式的革新。它能够帮助我们从重复性劳动中解放出来,让我们有更多时间去做更有创造性的工作。小李的故事证明了自动化的力量,希望他的经历能够激励更多的人去探索和利用Python自动化办公的无限可能。

如果你也像小李一样,面临着重复性工作的苦恼,或者对Python脚本的编写有任何疑问,欢迎在评论区留言,我们将为你提供一对一的技术支持!

尾注: 本文为原创技术文章,转载请标明出处。如果你喜欢本文,别忘了点赞、转发和关注我们的公众号,获取更多技术干货!

数海丹心

大数据和人工智能知识分享与应用

132篇原创内容

公众号

0 阅读:1