如何用python把多個excel文件自動合併到一個文件中
這個小腳本主要是把多個excel文件合併到一個文件中。網上搜索了下文章,有不少excel的python庫,最後選擇了適合python3的openpyxl庫,這個庫安裝很簡單,
pip install openpyxl
開發的環境是:mac/win +python3.5 +pycharm
廢話不多說,把代碼貼出來,請大家多指點下,我覺著代碼還可以更簡潔下,如果大家有好的優化方案麻煩留言指導下:
#coding=gbkimport openpyxlexcel_data=[qihu.xlsx,baidu.xlsx]# new=openpyxl.load_workbook(all.xlsx)for excel_name in excel_data: wb= openpyxl.load_workbook(excel_name,data_only=True) sheet_name=wb.get_sheet_names() # print(sheet_name) for work in sheet_name: nb = openpyxl.load_workbook(all.xlsx,data_only=True) newsheet_name = nb.get_sheet_names() if work in newsheet_name : name = nb.get_sheet_by_name(work) sheet = wb.get_sheet_by_name(work) for i in range(1,sheet.max_row+1): for j in range(1,sheet.max_column+1): # 獲取整個sheet數據 data=sheet.cell(row=i,column=j).value name.cell(column=j,row=i).value=data else: newsheet = nb.create_sheet(title=work) name = nb.get_sheet_by_name(work) sheet = wb.get_sheet_by_name(work) for i in range(1,sheet.max_row+1): for j in range(1,sheet.max_column+1): # 獲取整個sheet數據 data=sheet.cell(row=i,column=j).value name.cell(column=j,row=i).value=data print(name) nb.save(all.xlsx) # print(newsheet_name)
推薦閱讀:
※如何更改EXCEL中新建sheet的默認字體?
※如何在sum時視一些前面幾列帶過來的#N/A為0?
※Excel如何將兩個表,根據有相同數據的一列數據,自動填寫到另外一張表?
※如何取消Excel自動日期轉換?
※如何用Excel畫出這樣的圖?
TAG:Python | MicrosoftExcel | 搜索引擎營銷SEM |