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