python讀取excel文件中所有sheet表格:openpyxl模塊(二)


通過openpyxl模塊 循環遍歷excel文件中所有sheet表格。

excel文件 e:\\t.xlsx ,有2個sheet:  

sales

 

客戶編碼	年月	銷售額(萬元)
JLF0001	201601 	380.911
JLF0002	201601 	670.015
JLF0003	201601 	193.208
JLF0004	201601 	34.061
JLF0005	201601 	565.88
SJLH0006	201601 	910.788
SJLH0007	201601 	248.901
SJLH0008	201601 	525.305
SJLH0009	201601 	333.548
LG0010	201601 	1031.233
LG0011	201601 	171.034
LG0012	201601 	893.994
LG0013	201601 	631.179
LG0014	201601 	752.132
YF0015	201601 	1010.865
YF0016	201601 	961.7
YF0017	201601 	641.959
DRF0018	201601 	156.505
DRF0019	201601 	257.043
DRF0020	201601 	322.802
DRF0021	201601 	493.298
DRF0022	201601 	964.793
PFLH0023	201601 	720.269
PFLH0024	201601 	508.636
PFLH0025	201601 	166.223
PFLH0026	201601 	970.758
JLF0001	201602 	565.458
JLF0002	201602 	242.569
JLF0003	201602 	251.056
JLF0004	201602 	73.336
JLF0005	201602 	478.217
SJLH0006	201602 	423.748
SJLH0007	201602 	760.715
SJLH0008	201602 	740.672
SJLH0009	201602 	976.413
LG0010	201602 	891.867
LG0011	201602 	196.07
LG0012	201602 	795.677
LG0013	201602 	318.742
LG0014	201602 	374.868
YF0015	201602 	698.005
YF0016	201602 	129.207
YF0017	201602 	668.375
DRF0018	201602 	895.893
DRF0019	201602 	165.05
DRF0020	201602 	989.937
DRF0021	201602 	281.775
DRF0022	201602 	493.085
PFLH0023	201602 	965.011
PFLH0024	201602 	705.788
PFLH0025	201602 	381.18
PFLH0026	201602 	494.359

store

 

 

客戶名稱	客戶編碼	門店經理	聯系電話	總公司
家樂福華翔店	JLF0001	張小	13885543175	家樂福
家樂福魯班店	JLF0002	李小	13947307567	家樂福
家樂福雙井店	JLF0003	王五	13814451372	家樂福
家樂福華強北店	JLF0004	李六	13431835911	家樂福
家樂福九龍店	JLF0005	劉大	13907503491	家樂福
世紀聯華大寧店	SJLH0006	張三	13656648200	世紀聯華
世紀聯華回龍觀店	SJLH0007	李四	13595016793	世紀聯華
世紀聯華五角場店	SJLH0008	黃三	13571233335	世紀聯華
世紀聯華中山公園店	SJLH0009	吳經理	13878398999	世紀聯華
樂購三里橋店	LG0010	洪經理	13471662230	樂購
樂購西紅門店	LG0011	阮經理	13574331991	樂購
樂購六里橋店	LG0012	楊經理	13593898873	樂購
樂購朝陽門店	LG0013	朴經理	13918551523	樂購
樂購天寧寺店	LG0014	佘經理	13875581623	樂購
益豐大葯房靜安寺店	YF0015	何經理	13631153296	益豐大葯房
益豐大葯房普陀店	YF0016	呂經理	13636974620	益豐大葯房
益豐大葯房長安大街店	YF0017	趙經理	13985911395	益豐大葯房
大潤發華翔店	DRF0018	錢經理	13778777529	大潤發
大潤發魯班店	DRF0019	孫經理	13562409883	大潤發
大潤發泗涇店	DRF0020	李經理	13436440586	大潤發
大潤發松江店	DRF0021	周經理	13445030753	大潤發
大潤發新源里店	DRF0022	吳經理	13633069663	大潤發
卜蜂蓮花楊高北路店	PFLH0023	鄭經理	13572247063	卜蜂蓮花
卜蜂蓮花楊川沙店	PFLH0024	王經理	13946094869	卜蜂蓮花
卜蜂蓮花楊高南路店	PFLH0025	馮經理	13612290949	卜蜂蓮花
卜蜂蓮花楊吳中路店	PFLH0026	陳經理	13925668293	卜蜂蓮花

操作步驟:

 

(1)用load_workbook函數打開excel文件,返回一個工作簿對象

(2)用工作簿對象獲取所有的sheet

(3)第一個for循環遍歷所有sheet

(4)每次遍歷sheet時,先用get_sheet_by_name獲取要遍歷的sheet

(5)開始下一個for循環,循環遍歷這個sheet中的所有行

(6)在遍歷每一行的for循環中,遍歷每一列,把每一列的值,通過join函數拼接起來,這里用ljust函數進行左對齊


代碼如下:

 

#  -*- coding:gbk -*-

import openpyxl

wb = openpyxl.load_workbook('e:\\t.xlsx')

#獲取workbook中所有的表格
sheets = wb.get_sheet_names()

print(sheets)

#循環遍歷所有sheet
for i in range(len(sheets)):
    sheet= wb.get_sheet_by_name(sheets[i])
    
    print('\n\n第'+str(i+1)+'個sheet: ' + sheet.title+'->>>')

    for r in range(1,sheet.max_row+1):
        if r == 1:
            print('\n'+''.join([str(sheet.cell(row=r,column=c).value).ljust(17) for c in range(1,sheet.max_column+1)] ))
        else:
            print(''.join([str(sheet.cell(row=r,column=c).value).ljust(20) for c in range(1,sheet.max_column+1)] ))


輸出:

 



 


免責聲明!

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



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