\

PythonのOpenPyXLライブラリを使用してExcelのデータを操作する際、空白のセルの取り扱いは重要な課題となります。特に、空白のセルを読み込むと、その値はNoneとなります。

空白セルの取り扱い

OpenPyXLでは、空白のセル(値、フォント、境界線などがないセル)は保存されません。ワークシートからセルを取得すると、新しい空のセルが動的に作成され、その値はNoneになります。

from openpyxl import load_workbook

# Excelファイルのロード
excel_path='C:/sample/sample.xlsm'
workbook = load_workbook(filename=excel_path, read_only=True)

# シートのロード
sheet = workbook['フレンズたち']

# セルの値取得
cell_3_6_value = sheet.cell(column=3, row=6).value
cell_4_6_value = sheet.cell(column=4, row=6).value

# 取得した値の表示
print('(3, 6)', cell_3_6_value)  # 'サーバル'
print('(4, 6)', cell_4_6_value)  # None

# ロードしたExcelファイルを閉じる
workbook.close()

上記のコードでは、cell_3_6_value'サーバル'という値を持つ一方で、cell_4_6_valueNoneとなります。これは、C6とD6が結合セルであり、値はC6側にのみ入っているためです。

空白セル(None)の置換

空白セルの値がNoneとなる問題を解決する一つの方法は、Noneを別の値に置換することです。以下のコードは、セルの値がNoneの場合に空文字列に置換する例です。

message = ''
for row in ws["A1:C4"]:
    for col in row:
        if col.value is None:
            message += '\n'
        else:
            message += f'{col.value}\n'

このコードでは、Noneの値を持つセルは改行文字に置換され、その他のセルはその値がそのまま使用されます。

以上がPythonとOpenPyXLを使用してExcelの空白セル(None)の取り扱いについての基本的な情報です。この情報がPythonとOpenPyXLを使用してExcelのデータを操作する際の参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です