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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yupeigu/article/details/53572519

通过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)] ))

输出:



猜你喜欢

转载自blog.csdn.net/yupeigu/article/details/53572519