使用OpenPyXl检查空单元格

我倒了很多版本的这个相同的问题,但根本找不到一个工作的解决scheme循环通过一组单元格和检查空的。

这是我的代码:

wb = openpyxl.Workbook(write_only=False) sheet = wb.get_sheet_by_name('Sheet') for i in range(1, 20): if sheet.cell(row=i, column=1).value == None or 'None': print('Space' + str(i)) sheet.cell(row=i, column=1) = i else: pass wb.save('filename.xlsx') 

但由于某种原因,它写入空单元格并覆盖写入其中的值的单元格。

我注释掉循环,我发现如果我运行代码,它会将所有手动写入电子表格的内容都擦除。 也许这是问题的一部分?

另外我使用LibreOffice如果有所作为

查理提到的当然是正确的。

Python中的非空string评估为True ,因此实际上testing的单元格值是None还是bool('None') ,而后者总是True ,因此您的条件总是计算为True

为了解决你的具体情况,我不知道你为什么试图用'None'来testing一个空单元格。

如果你真的想这样做,你的情况应该是这样的:

 if sheet.cell(row=i, column=1).value in [None,'None'] 

如果你想testingNone或空string,那么None or ''那么当然你的条件应该是:

 if sheet.cell(row=i, column=1).value in [None,''] 

希望这能让你走上正轨。