「xlrd 空セル」
という検索キーワードでのアクセスがありました。
xlrdで空白セルを判定するには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。
「python エクセル もしセルが空白なら」
といった検索キーワードでのアクセスもあります。
xlrdで空白セルかを判定するサンプルスクリプト
以下のスクリプトを実行すると、C:\temp\sample.xlsxに含まれる先頭シートの全セルをチェックして、データの入力されていない空白セルの場合に「n行m列目のセルは空白です。」といった文字列を、空白セルでなければデータを出力します。
bk = xlrd.open_workbook(r'C:\temp\sample.xlsx')
sh = bk.sheet_by_index(0)
for col in range(sh.ncols):
if sh.cell_type(row, col)==xlrd.XL_CELL_EMPTY:
print(row+1, '行', col+1, '列目のセルは空白です。', sep='')
else:
print(sh.cell_value(row, col))
サンプルスクリプトで行っている処理
xlrdでは、Sheetオブジェクトcell_typeメソッドや、Cellオブジェクトのctype属性で、セル内データの種別を判定できます。
空白セルの場合は、定数XL_CELL_EMPTY(実際の値は0)が返されます。
上記のスクリプトでは、Sheet.nrows・Sheet.ncolsで取得したデータの入力されている全セルに対してループを回して、
for row in range(sh.nrows):
for col in range(sh.ncols):
Sheet.cell_typeの値がXL_CELL_EMPTYかを調べています。
if sh.cell_type(row, col)==xlrd.XL_CELL_EMPTY:
xlrdの行番号・列番号は0オリジンで、このまま出力するよりは1オリジンにしたほうがわかりやすいでしょうから、それぞれ1を加算して出力しています。
print(row+1, '行', col+1, '列目のセルは空白です。', sep='')
最終更新日時:2020-05-21 10:40