分享一段自己写的合并07Excel表格的代码

'''

此代码用于合并文件夹内的Excel表(07以的的Excel版本),前提是各个表的表头要一致

'''

import os

from openpyxl import load_workbook,Workbook

#多个Excel表格文件夹路径,自己设置

file_path = 'XXXXXXXXX/'

file_list = os.listdir(file_path)

headers = []

content_list = []

for file_name in file_list:

    if '.xlsx' in file_name:

        load_excel = load_workbook(file_path+file_name)

        load_excel_active = load_excel.active

        #获取读的第一个表的表头

        if headers:

            print('读取表格中《{}》....'.format(file_name))

        else:

            print('读取表格中《{}》....'.format(file_name))

            for headers_value in load_excel_active[1]:

                headers.append(headers_value.value)

                

        new_excel = Workbook()

        new_excel_active = new_excel.active

        new_excel_active.append(headers)

        #获取新表的内容

        for rows in load_excel_active.iter_rows(min_row = 2,values_only = True):

            content_list.append(rows)

new_filename = input('请输入合并表的名称:')

#保存文件的路径,自己设置

save_path = 'XXXXXXX'

#追加合并的各个表的内容

for content in content_list:

    new_excel_active.append(content)

#如果表头存在序号或编号的字样,则重新编号

for col in new_excel_active.iter_cols(max_col = 1,values_only=True):

    #print(col)

    if col[0]=='序号' or col[0]=='编号':

        newNum = 0

        for new_colNum in new_excel_active.iter_cols(min_row=2,max_col = 1,values_only=True):

            #print(new_colNum)

            for i in range(len(new_colNum)):

                newNum = i + 1

                new_excel_active['A'+str(i+2)] = newNum

#保存新表格

new_excel.save(save_path+'{}.xlsx'.format(new_filename))

print('---------------------------------------------------------')

print('合并表格完成.......合并后文件名称为{},路径为{}{}.xlsx'.format(new_filename,save_path,new_filename))


 

        

        


 

猜你喜欢

转载自blog.csdn.net/Danielyxk/article/details/114159224
今日推荐