python-將一個excel中多個sheet合並至新表格中一個sheet


'''
將多個/一個excel表格中的sheet合並至新表格中的一個sheet
'''

 1 # -*- coding: utf-8 -*-
 2 
 3 # 導入需要使用的包
 4 import xlrd        # 讀取excel文件的包
 5 import xlsxwriter  # 將文件寫入excel的包
 6 
 7 # 打開一個excel文件
 8 def open_xls(file):
 9     f = xlrd.open_workbook(file)
10     return f
11 
12 # 獲取excel中所有的sheet表
13 def getsheet(f):
14     return f.sheets()
15 
16 # 獲取sheet表的行數
17 def get_Allrows(f,sheet):
18     table = f.sheets()[sheet]
19     return table.nrows
20 
21 # 讀取文件內容並返回行內容
22 def getFile(file,shnum):
23     f=open_xls(file)
24     table=f.sheets()[shnum]
25     num=table.nrows
26     for row in range(num):
27         rdata=table.row_values(row)
28         datavalue.append(rdata)
29     return datavalue
30 
31 # 獲取sheet表的個數
32 def getshnum(f):
33     x=0
34     sh=getsheet(f)
35     for sheet in sh:
36         x+=1
37     return x
38 
39 # 函數入口
40 if __name__=='__main__':
41     # # 定義要合並的excel文件列表
42     # dir = './tstdb'
43     # # 獲取目錄下所有的表
44     # allxls = os.listdir(dir)
45     allxls=['./tables.xls']  #列表中的為要讀取的文件路徑
46     # 存儲所有讀取的結果
47     datavalue=[]
48     for fl in allxls:
49         # fl = os.path.join(dir,onexls)
50         f=open_xls(fl)
51         x=getshnum(f)
52         for shnum in range(x):
53             print("正在讀取文件:"+str(fl)+"的第"+str(shnum)+"個sheet表的內容...")
54             rvalue=getFile(fl,shnum)
55     # 定義最終合並后生成的新文件
56     endfile='excel.xlsx'
57     wb=xlsxwriter.Workbook(endfile)
58     # 創建一個sheet工作對象
59     ws=wb.add_worksheet()
60     for a in range(len(rvalue)):
61         for b in range(len(rvalue[a])):
62             c=rvalue[a][b]
63             ws.write(a,b,c)
64     wb.close()
65     print("文件合並完成")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM