通過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)] ))
輸出: