openpyxl检查空单元格

时间:2011-10-26 19:40:13

标签: python object comparison openpyxl

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

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

4 个答案:

答案 0 :(得分:20)

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

if cell.value:
python中的

与单元格值不是None相同(即:if if cell.value == None:)

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

worksheet.get_highest_row()

worksheet.get_highest_column()

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

unicode(cell.value)

答案 1 :(得分:12)

这对我有用。

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

答案 2 :(得分:0)

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_columnws.max_row的问题在于它会计算空白列,从而无法实现目的。

答案 3 :(得分:-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")