Ⅰ 如何用python把多個excel文件自動合並到一個文件中
工作中經常用到Excel,很多事情都重復處理,比如每天的日報,每周的周報,各種數據表,這種固定的表其實都是重復性的勞動。最近這段時間一直在學python,但是斷斷續續的,眼高手低,看別人的代碼看的很懂,但是自己就是寫不出來,決定自己寫個小程序練練手,解決下身邊的實際問題,提高工作效率。
這個小腳本主要是把多個excel文件合並到一個文件中。網上搜索了下文章,有不少excel的python庫,最後選擇了適合python3的openpyxl庫,這個庫安裝很簡單,
pip install openpyxl
開發的環境是:mac/win +python3.5 +pycharm
廢話不多說,把代碼貼出來,請大家多指點下,我覺著代碼還可以更簡潔下,如果大家有好的優化方案麻煩留言指導下:
#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','.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)