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