python+openpyxl 获取最大行数,不是真正想获取的行数,导致替换时,报”NoneType' object has no attribute 'find'


问题描述:

使用excel对接口的数据进行管理,添加接口数据时,可能习惯性选择多行,设置了格式,导致多选了很多空行也被设置了格式,在读取这个sheet的最大行数时,发现有问题,获取到了为None的空行,导致后面的查找方法find,报错”AttributeError: 'NoneType' object has no attribute 'find'”

 

openpyxl分析:

openpyxl里sheet.max_row可以获取最大行,但是这个变量有个问题,就是对那些原先有数据,后来又删除的表,容易出现获取最大行不是所需要值的情况,这是因为openpyxl把一些格式改变过的单元格也算成有效行了。

具体问题:

截图:这个sheet的最大行数是19,实际通过openpyxl读取到的是79

 

 实际读取到的有79行,其他行,估计有做过单元格的格式,导致被openpyxl认为是有效的行

 

 

 

解决方案

1:尝试将空行的格式删除,再进行获取,发现获取到的最大行数还是有问题;不行

2:新建一个sheet,将需要的内容,复制过去,然后就可以正确获取行数了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM