提问人:MechEngineer 提问时间:10/27/2011 最后编辑:MikkuMechEngineer 更新时间:11/13/2023 访问量:120464
Openpyxl 检查空单元格
Openpyxl check for empty cell
问:
openpyxl
似乎是使用 Python 读取 Excel 文件的好方法,但我遇到了一个不断的问题。我需要检测单元格是否为空,但似乎无法比较任何单元格属性。我尝试将转换为字符串并使用,但没有用。当它为空时,单元格的类型是 ,或者,但我无法弄清楚如何将对象与它进行比较。""
None
NoneType
建议?我知道正在开发中,但也许这更像是一个通用的 Python 问题。openpyxl
答:
31赞
Aron Kisdi
12/7/2011
#1
要在单元格不为空时执行某些操作,请添加:
if cell.value:
在 python 中,这与单元格值不是 None 相同(即:if not cell.value == None:)
注意:避免选中可以使用的空单元格
worksheet.get_highest_row()
和
worksheet.get_highest_column()
此外,我发现它很有用(尽管可能不是一个好的解决方案),如果您想将单元格的内容用作字符串,而不管您可以使用哪种类型:
unicode(cell.value)
评论
21赞
Mark Mikofski
2/21/2015
小心! 如果bool(cell.values) == False
cell.value = 0
6赞
Shoham
9/17/2017
在最新的 openpyxl 中,它删除了 get_highest_row 和 get_highest_column 方法。它们已被max_row和max_column财产所取代
9赞
alexis
3/23/2018
这个答案是不正确的。以这种方式检查会将零视为空单元格。
21赞
Mikku
12/27/2015
#2
这对我有用。
if cell.value is None:
print("Blank")
else:
print("Not Blank")
评论
0赞
Cmag
2/3/2020
你们知道有没有命令行快捷方式可以用“”替换空白单元格?谢谢!
1赞
Heinz
5/16/2020
我有一个工作表,其中单元格看起来是空白的,两者都给出 True,但什么也没给出,并且给出 0,完全令人困惑bool(not cell.value is None)
bool(not cell.value == None)
print(cell.value)
print(len(cell.value))
-1赞
Felipe R Valera
9/9/2016
#3
您可以更改要验证的一个或多个单元格 您还可以编写代码,例如:
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")
4赞
Bhaskar
5/19/2018
#4
这
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
0赞
V4ld3rr4m4
11/9/2023
#5
就我而言,修复程序是与 None 作为字符串进行比较
if cell(row,col).value == "None":
print(" Ignore cell ... ")
下一个:Openpyxl 检查空单元格
评论
if cell.value is None