web-dev-qa-db-ja.com

空のセルのOpenpyxlチェック

openpyxlPythonを使用してExcelファイルを読み取るための優れた方法のようですが、常に問題が発生しています。セルが空かどうかを検出する必要がありますが、セルのプロパティを比較することができません。文字列としてキャストし、""を使用してみましたが、うまくいきませんでした。空のときのセルのタイプはNoneまたはNoneTypeですが、オブジェクトとそれを比較する方法がわかりません。

提案?私はopenpyxlが開発中であることを理解していますが、おそらくこれはより一般的なPython問題です。

18
MechEngineer

セルが空でないときに何かを行うには、以下を追加します。

if cell.value:

pythonは、セルの値がNoneでない場合と同じです(つまり、cell.valueがない場合== None :)

使用できる空のセルをチェックしないように注意してください

worksheet.get_highest_row()

そして

worksheet.get_highest_column()

また、使用できるタイプに関係なくセルの内容を文字列として使用したい場合は、(Niceソリューションではないかもしれませんが)便利です。

unicode(cell.value)
23
Aron Kisdi

これでうまくいきました。

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

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の問題は、空白の列もカウントされるため、目的が達成されないことです。

1
bhaskar