2011-10-26 539 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")