前言
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')
經驗總結擴展閱讀
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Python實現改進后的Bi-RRT算法實例
- ppt中如何添加多個副標題
- 1 python-數據描述與分析
- 二 Java之POI導出Excel:多個sheet
- 支付寶多個賬號怎么注銷(支付寶注銷的后果)
- Python中list列表的常見操作
- aardio + Python 可視化快速開發桌面程序,一鍵生成獨立 EXE
- Python-函數-字符串函數
- python及第三方庫交叉編譯
- 跟我學Python圖像處理丨傅里葉變換之高通濾波和低通濾波
