excel多个单元格中的文字汇总合并 (excel表格多列合并成一列数据汇总)

一、问题:

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

excel重复数据自动合并汇总,excel合并单元格如何求和汇总

合并这个文件夹里面所有的工作簿,并且在问价下面生成一个总汇总表

二、问题分析

想了一下,那就利用列表的方法吧,遍历所有工作簿的工作表,合并一个总列表,然后新建汇总表,复制过去,但是后来由于表格数据问题,试了很多次都没有搞定,想了想,还是利用复制*力暴**一点,最终还是解决了

三、看效果吧:

excel重复数据自动合并汇总,excel合并单元格如何求和汇总

生成了汇总数据表

四、代码实现

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()

五、总结

原本还以为简单,但是在上机操作的时候才发现很多的问题,哎,不管那么多了,实现了就好,如果大家有好方法可以互相交流学习哦。