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