一、问题:
哎,今天老婆大人要求把一个文件夹下面所有的excel表格数据合并成一个汇总表格,想到没想,so easy。先看看图片有个直观了解吧。

合并这个文件夹里面所有的工作簿,并且在问价下面生成一个总汇总表
二、问题分析
想了一下,那就利用列表的方法吧,遍历所有工作簿的工作表,合并一个总列表,然后新建汇总表,复制过去,但是后来由于表格数据问题,试了很多次都没有搞定,想了想,还是利用复制*力暴**一点,最终还是解决了
三、看效果吧:

生成了汇总数据表
四、代码实现
import xlwings as xw
import os
app = xw.App(visible=True,add_book=False)
# 需要把下面file_path更改为文件夹的路径,打开文件夹复制属性,然后拼接/文件夹名称
file_path = r"C:\Users\123\Desktop\新建文件夹"
file_list = os.listdir(file_path)
new_book = app.books.add()
# 如果需要更改生成总表的名称,可以把“汇总表”改为你需要的名字
new_sheet = new_book.sheets.add("汇总表")
header = False
for i in file_list:
if os.path.splitext(i)[1] == ".xlsx":
file_name = os.path.join(file_path,i)
workbook = app.books.open(file_name)
# 这里需要注意下每个工作簿下面的文件名字,这里默认的是跟工作簿一样的名字,到时候可能要改
worksheet = workbook.sheets(os.path.splitext(i)[0])
if header == False:
worksheet.range('a1').api.EntireRow.Copy(Destination=new_sheet["a1"].api)
header = True
row_num = new_sheet.range("a1").current_region.last_cell.row
worksheet.range('a1').current_region.offset(1,0).api.Copy(Destination=new_sheet.range("A{}".format(row_num+1)).api)
workbook.close()
new_sheet.autofit()
new_book.save(file_path+"\\汇总数据表.xlsx")
new_book.close()
app.quit()
五、总结
原本还以为简单,但是在上机操作的时候才发现很多的问题,哎,不管那么多了,实现了就好,如果大家有好方法可以互相交流学习哦。