python合并多个excel

前言

1.工作中,经常需要合并多个Excel文件 。如果文件数量比较多 , 则工作量大,易出错,此时,可以使用Python来快速的完成合并 。2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下 , 程序运行后 , 输入文件夹目录的地址即可,完成合并后会将合并后的文件放在当前目录下 。3.可以查看代码的详细编写,或者直接到最后复制完整代码使用 。
代码编写1.导包【python合并多个excel】import osimport xlrdimport xlsxwriterimport glob2.定义位置和表头biao_tou = "NULL"wei_zhi = "NULL"3.获取要合并的所有exce表格def get_exce():global wei_zhiwei_zhi = input("请输入Excel文件所在的目录:")all_exce = glob.glob(wei_zhi + "*.xls")print("该目录下有" + str(len(all_exce)) + "个excel文件:")if (len(all_exce) == 0):return 0else:for i in range(len(all_exce)):print(all_exce[i])return all_exce4.打开Exce文件def open_exce(name):fh = xlrd.open_workbook(name)return fh5.获取exce文件下的所有sheet# 获取exce文件下的所有sheetdef get_sheet(fh):sheets = fh.sheets()return sheets6.获取sheet下有多少行数据def get_sheetrow_num(sheet):return sheet.nrows7.获取sheet下的数据def get_sheet_data(sheet, row):for i in range(row):if (i == 0):global biao_toubiao_tou = sheet.row_values(i)continuevalues = sheet.row_values(i)all_data1.append(values)return all_data18.主函数if __name__ == '__main__':all_exce = get_exce()# 得到要合并的所有exce表格数据if (all_exce == 0):print("该目录下无.xls文件!请检查您输入的目录是否有误!")os.system('pause')exit()all_data1 = []# 用于保存合并的所有行的数据# 下面开始文件数据的获取for exce in all_exce:fh = open_exce(exce)# 打开文件sheets = get_sheet(fh)# 获取文件下的sheet数量for sheet in range(len(sheets)):row = get_sheetrow_num(sheets[sheet])# 获取一个sheet下的所有的数据的行数all_data2 = get_sheet_data(sheets[sheet], row)# 获取一个sheet下的所有行的数据all_data1.insert(0, biao_tou)# 表头写入# 下面开始文件数据的写入new_exce = wei_zhi + "总数据.xlsx"# 新建的exce文件名字fh1 = xlsxwriter.Workbook(new_exce)# 新建一个exce表new_sheet = fh1.add_worksheet()# 新建一个sheet表for i in range(len(all_data1)):for j in range(len(all_data1[i])):c = all_data1[i][j]new_sheet.write(i, j, c)fh1.close()# 关闭该exce表print("文件合并成功,请查看“" + wei_zhi + "”目录下的总数据.xlsx文件!")os.system('pause')os.system('pause')完整代码import osimport xlrdimport xlsxwriterimport globbiao_tou = "NULL"wei_zhi = "NULL"# 获取要合并的所有exce表格def get_exce():global wei_zhiwei_zhi = input("请输入Excel文件所在的目录:")all_exce = glob.glob(wei_zhi + "*.xls")print("该目录下有" + str(len(all_exce)) + "个excel文件:")if (len(all_exce) == 0):return 0else:for i in range(len(all_exce)):print(all_exce[i])return all_exce# 打开Exce文件def open_exce(name):fh = xlrd.open_workbook(name)return fh# 获取exce文件下的所有sheetdef get_sheet(fh):sheets = fh.sheets()return sheets# 获取sheet下有多少行数据def get_sheetrow_num(sheet):return sheet.nrows# 获取sheet下的数据def get_sheet_data(sheet, row):for i in range(row):if (i == 0):global biao_toubiao_tou = sheet.row_values(i)continuevalues = sheet.row_values(i)all_data1.append(values)return all_data1if __name__ == '__main__':all_exce = get_exce()# 得到要合并的所有exce表格数据if (all_exce == 0):print("该目录下无.xls文件!请检查您输入的目录是否有误!")os.system('pause')exit()all_data1 = []# 用于保存合并的所有行的数据# 下面开始文件数据的获取for exce in all_exce:fh = open_exce(exce)# 打开文件sheets = get_sheet(fh)# 获取文件下的sheet数量for sheet in range(len(sheets)):row = get_sheetrow_num(sheets[sheet])# 获取一个sheet下的所有的数据的行数all_data2 = get_sheet_data(sheets[sheet], row)# 获取一个sheet下的所有行的数据all_data1.insert(0, biao_tou)# 表头写入# 下面开始文件数据的写入new_exce = wei_zhi + "总数据.xlsx"# 新建的exce文件名字fh1 = xlsxwriter.Workbook(new_exce)# 新建一个exce表new_sheet = fh1.add_worksheet()# 新建一个sheet表for i in range(len(all_data1)):for j in range(len(all_data1[i])):c = all_data1[i][j]new_sheet.write(i, j, c)fh1.close()# 关闭该exce表print("文件合并成功,请查看“" + wei_zhi + "”目录下的总数据.xlsx文件!")os.system('pause')os.system('pause')到此这篇关于教你用Python代码实现合并excel文件的文章就介绍到这了,更多相关Python合并excel文件内容请查看博主其他的文章或继续浏览下面的相关文章希望大家以后多多支持!

    推荐阅读