Home » Python » xlrdの使い方 » xlrdで空白セルかを判定する

xlrdで空白セルかを判定する

動作検証バージョン:Windows 10 + Python 3.8.0 + xlrd 1.2.0

「xlrd 空セル」
という検索キーワードでのアクセスがありました。

xlrdで空白セルを判定するには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。

「python エクセル もしセルが空白なら」
といった検索キーワードでのアクセスもあります。

[スポンサードリンク]

xlrdで空白セルかを判定するサンプルスクリプト

以下のスクリプトを実行すると、C:\temp\sample.xlsxに含まれる先頭シートの全セルをチェックして、データの入力されていない空白セルの場合に「n行m列目のセルは空白です。」といった文字列を、空白セルでなければデータを出力します。

import xlrd

bk = xlrd.open_workbook(r'C:\temp\sample.xlsx')
sh = bk.sheet_by_index(0)

for row in range(sh.nrows):
    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

[スポンサードリンク]

Home » Python » xlrdの使い方 » xlrdで空白セルかを判定する

「xlrdの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.