openpyxl检查空单元格

Mec*_*eer 14 python comparison object openpyxl

openpyxl似乎是使用Python读取Excel文件的好方法,但我遇到了一个常见的问题.我需要检测一个单元格是否为空,但似乎无法比较任何单元格属性.我尝试使用""作为字符串进行强制转换但是没有用.它为空时的单元格类型为None或NoneType但我无法弄清楚如何将对象与之进行比较.

建议?我知道openpyxl正在开发中,但这可能是一个普遍的Python问题.

小智 21

要在单元格不为空时执行某些操作,请添加:

if cell.value:
Run Code Online (Sandbox Code Playgroud)

python中的内容与单元格值不是None相同(即:if if cell.value == None :)

请注意,避免检查可以使用的空单元格

worksheet.get_highest_row()
Run Code Online (Sandbox Code Playgroud)

worksheet.get_highest_column()
Run Code Online (Sandbox Code Playgroud)

如果你想将单元格的内容用作字符串而不管你可以使用哪种类型,我发现它很有用(虽然可能不是一个很好的解决方案):

unicode(cell.value)
Run Code Online (Sandbox Code Playgroud)

  • **注意!**`bool(cell.values)== False`如果`cell.value = 0` (11认同)
  • 这个答案是不正确的.检查这种方式会将零视为空单元格. (3认同)
  • 在最新的openpyxl中,已删除了get_highest_row和get_highest_column方法.它们已被max_row和max_column属性取代 (2认同)

Mik*_*kku 13

这对我有用.

if cell.value is None:
    print("Blank")
else:
    print("Not Blank")
Run Code Online (Sandbox Code Playgroud)