您好,登錄后才能下訂單哦!
小編給大家分享一下python如何按照sheet合并多個Excel,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
工作中會遇到這樣的需求,有多個Excel的格式一樣,都有多個sheet,且每個sheet的名字和格式一樣,我們需要按照sheet 合并,就是說合并后的表的格式和合并錢的格式是一樣的。A、B、C表格式如圖
現在需要合并成下圖:
我這次處理是保留第一個表的首行,其余的表的首行都不保留。因此結果會和上面有所不同,上面的是將所有的首行都保存
import xlrd,xlsxwriter #待合并excel allxls=["C:/xxx/xxx.xlsx", "C:/xxx/xxx.xlsx"] #目標excel end_xls="C:/xxx/merge.xlsx" def open_xls(file): try: fh=xlrd.open_workbook(file) return fh except Exception as e: print("打開文件錯誤:"+e) #根據excel名以及第幾個標簽信息就可以得到具體標簽的內容 def get_file_value(filename,sheetnum): rvalue=[] fh=open_xls(filename) sheet=fh.sheets()[sheetnum] row_num=sheet.nrows for rownum in range(0,row_num): rvalue.append(sheet.row_values(rownum)) return rvalue def get_file_value_1(filename,sheetnum): rvalue=[] fh=open_xls(filename) sheet=fh.sheets()[sheetnum] row_num=sheet.nrows for rownum in range(1,row_num): rvalue.append(sheet.row_values(rownum)) return rvalue #獲取第一個excel的sheet個數以及名字作為標準 first_file_fh=open_xls(allxls[0]) first_file_sheet=first_file_fh.sheets() first_file_sheet_num=len(first_file_sheet) sheet_name=[] for sheetname in first_file_sheet: sheet_name.append(sheetname.name) #定義一個目標excel endxls=xlsxwriter.Workbook(end_xls) all_sheet_value=[] #把所有內容都放到列表all_sheet_value中 for sheet_num in range(0,first_file_sheet_num): all_sheet_value.append([]) for i,file_name in enumerate(allxls): if i==0: print("正在讀取"+file_name+"的第"+str(sheet_num+1)+"個標簽...") file_value=get_file_value(file_name,sheet_num) all_sheet_value[sheet_num].append(file_value) else: print("正在讀取"+file_name+"的第"+str(sheet_num+1)+"個標簽...") file_value=get_file_value_1(file_name,sheet_num) all_sheet_value[sheet_num].append(file_value) #print(all_sheet_value) num=-1 sheet_index=-1 #將列表all_sheet_value的內容寫入目標excel for sheet in all_sheet_value: sheet_index+=1 end_xls_sheet=endxls.add_worksheet(sheet_name[sheet_index]) num+=1 num1=-1 for sheet1 in sheet: for sheet2 in sheet1: num1+=1 num2=-1 for sheet3 in sheet2: num2+=1 #print(num,num1,num2,sheet3) #在第num1行的第num2列寫入sheet3的內容 end_xls_sheet.write(num1,num2,sheet3) endxls.close()
以上是“python如何按照sheet合并多個Excel”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。