2011-10-26 537 views
7

openpyxl似乎是使用Python讀取Excel文件的好方法,但我遇到了一個常見問題。我需要檢測單元格是否爲空,但似乎無法比較任何單元格屬性。我嘗試將字符串轉換爲字符串,然後使用「」但那不起作用。單元格的類型爲空時爲None或NoneType,但我無法弄清楚如何將對象與該對象進行比較。openpyxl檢查空單元格

對此提出建議?我知道openpyxl正在開發中,但也許這是一個普遍的Python問題。

+2

再次,多了幾分搜索已經產生了答案:如果電池使用'。值爲無' – MechEngineer

回答

15

要做些什麼的時候電池是不是空的附加:

if cell.value: 

這巨蟒一樣的,如果單元格值不爲None(即:如果沒有cell.value ==無:)

注意避免檢查空單元格可以使用

worksheet.get_highest_row() 

worksheet.get_highest_column() 

而且我發現它有用(雖然可能不是一個很好的解決方案)如果你想使用的單元格的內容作爲一個字符串無論哪種類型,你可以使用:

unicode(cell.value) 
+9

**注意!**'bool(cell.values)== False' if cell.value = 0' –

+1

在最新的openpyxl中,它刪除了get_highest_row和get_highest_column方法。它們已被max_row和max_column屬性取代 – Shoham

7

這爲我工作。

if cell.value is None: 
    print("Blank") 
else: 
    print("Not Blank") 
-2

你可以改變你要驗證 你也可以編寫一個或多個小區,例如:

import openpyxl 

wb = openpyxl.load_workbook("file.xlsx") 
sheet = wb.get_sheet_by_name('Sheet1') 

if sheet.cell(row = 1, column=7).value == None: 
    print("Blank") 
else: 
    print("No blank")