记录一下今天运用openpyxl库操作Excel的小坑。。。(老实鬼:MMP,这分明是一个智障的错误)
我的目的:遍历一个工作簿的所有sheet,并且逐个打印出来。本人新手小白,但是有需求不会,就找度娘。百度了一篇博文:
python读取excel文件中所有sheet表格:openpyxl模块(二)
https://blog.csdn.net/sqlserverdiscovery/article/details/53572519
参考的代码:
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+'->>>')
有了渔具,那就开始丰衣足食,自给自足,
我的代码:
from openpyxl import load_workbook
wb = load_workbook('最终汇总2.xlsx')
sheets = wb.get_sheet_names()
for i,sheet in enumerate(sheets,1):
print(i,sheet)
代码没报错,但是给了一个围巾警告【DeprecationWarning】:
DeprecationWarning: Call to deprecated function get_sheet_names
(Use wb.sheetnames).
sheets = wb.get_sheet_names()
由于从小养成不违反【警告类提示】(比如警告:水浅,禁止游泳!别问我为什么水浅不能游泳,我tm怎么知道做这个警示牌的人脑子里装的是哪个水?)。然后我就屁颠屁颠的把wb.get_sheet_names()给成了wb.sheetnames(),结果给老子报错:
sheets = wb.sheetnames()
TypeError: 'list' object is not callable
然后又搜了很多篇stackflowover的问题回答,还是没有解决,无奈只能翻了翻openpyxl的官方文档
MMP,原来我多了一个括号。。。把wb.sheetnames()的括号去掉就OK了,没毛病老铁。