22

openpyxl似乎是使用Python读取Excel文件的好方法,但我一直遇到问题。我需要检测一个单元格是否为空,但似乎无法比较任何单元格属性。我尝试将其转换为字符串并使用"",但这没有用。为空时的单元格类型是None,或者NoneType但我不知道如何将对象与之进行比较。

建议?我知道openpyxl正在开发中,但也许这更像是一个一般的Python问题。

4

4 回答 4

27

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

if cell.value:

这在 python 中与如果单元格值不是 None 相同(即:如果不是 cell.value == None :)

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

worksheet.get_highest_row()

worksheet.get_highest_column()

此外,如果您想将单元格的内容用作字符串而不考虑可以使用的类型,我还发现它很有用(尽管可能不是一个好的解决方案):

unicode(cell.value)
于 2011-12-06T22:46:03.330 回答
17

这对我有用。

if cell.value is None:
    print("Blank")
else:
    print("Not Blank")
于 2015-12-27T08:18:26.790 回答
2

if cell.value is None:

是用于这种情况的最佳选择。

如果你想在迭代中使用它,你可以像这样使用它:

ws=wb.active
names=ws['C']
for x in names:
    if x.value is None:
        break
    print(x.value)

ws.max_columnand的问题ws.max_row是它也会计算空白列,从而达到目的。

于 2018-05-19T11:30:08.810 回答
-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")
于 2016-09-08T22:07:38.200 回答