openpyxl似乎是使用Python读取Excel文件的好方法,但我遇到了一个常见的问题。我需要检测一个单元格是否为空,但似乎无法比较任何单元格属性。我尝试使用“”作为字符串进行转换,但是这不起作用。它为空时的单元格类型为None或NoneType但我无法弄清楚如何将对象与之进行比较。
连连呢?我知道openpyxl正在开发中,但这可能是一个普遍的Python问题。
答案 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_column
和ws.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")