国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

python合并多個excel

前言

1.工作中,經常需要合并多個Excel文件 。如果文件數量比較多,則工作量大,易出錯,此時,可以使用Python來快速的完成合并 。2.使用方法:將需要合并的多個Excel文件放到同一個文件夾下,程序運行后,輸入文件夾目錄的地址即可,完成合并后會將合并后的文件放在當前目錄下 。3.可以查看代碼的詳細編寫,或者直接到最后復制完整代碼使用 。
代碼編寫1.導包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')

經驗總結擴展閱讀