PythonでExcelファイルを読み込む | プログラミング学習 初心者向け入門ガイド

ホーム › >>

PythonでExcelファイルを読み込む

記事掲載:https://laptrinhcanban.com/ja

Python で Excel ファイルを処理する方法について説明します。このレッスンの後、 openpyxl をインストールし、このモジュールを使用して Python で Excel ファイルを読み込み、Python で Excel ファイルからデータを抽出する方法を学習します。

Pythonにopenpyxlをインストールする方法

pip install openpyxl で openpyxl をインストールします。

Python で Excel ファイル処理を実行するには、次のように、Anaconda プロンプト画面でpipを使用してコンピューターに openpyxl モジュールをインストールする必要があります

pip install openpyxl

pip install openpyxl

インストールされているopenpyxlのバージョンは、上の画像の赤枠部分のように確認できます。openpyxl をインストールすると、openpyxl を使用して Python で Excel ファイル処理を実行できます。

このモジュールをもう使用したくない場合は 、次のようにpipを使用してコンピューターから openpyxl を削除することもできます。

pip uninstall openpyxl

pip uninstall openpyxl

openpyxlモジュールで Excel ファイルの処理をサポートするクラス

Excel ファイルを処理するために、openpyxl モジュールは次の 3 つのクラスを統合します。

クラス名定義
Workbookすべてのエクセルファイル
WorksheetExcel ファイルのシート
Cellシート内のセル

各クラスでは、Python で Excel ファイルを処理するのに役立つさまざまなメソッドをサポートします。

PythonでExcelファイルを読み込む | openpyxl

PythonでExcelファイル全体を読み込む

次の内容Excel ファイルがあるとします。

PythonでExcelファイル全体を読み込む

この exel ファイルを処理するには、まず openpyxl をプログラムにインポートする必要があります。さらに、結果を画面に表示して見やすくするには、次のように pprint モジュールをインポートしてください。

import openpyxl
import pprint

次に、次のようにopenpyxl.load_workbook()を使用して、Excel ファイル全体を含むWorkbook クラスのオブジェクトを作成します。

wb = openpyxl.load_workbook('./user/sample.xlsx')

ワークブック オブジェクトを作成した後、ワークブック クラスの組み込みメソッドを使用して、そのオブジェクトで Excel ファイルを処理できます。たとえば、Excel でシート名全体を取得できます。

print(wb.sheetnames)
# ['Sheet1', 'Sheet2']

PythonでExcelファイルのシートを読み込む

Excel ファイルのシートを処理するには、次のようにシート名を指定して、読み込むシートの内容を含むワークシート クラスのオブジェクトを作成します。

sheet = wb['Sheet1']

ワークシート オブジェクトを作成した後、次のようにセルの内容を含むcell クラスのオブジェクトを作成することで、A2、B3 などのワークシート内のセルにアクセスできます。

cellA2 = sheet['A2']
cellB3 = sheet['B3']

PythonでExcelファイルのセルを読み込む

cell オブジェクトを作成した後、 cell クラスの組み込みメソッドを使用して、新しく作成されたオブジェクトを処理できます。たとえば、そのセルの値を取得できます。

cell = sheet['A2']
print(cell.value)
# one

上記のセル名を指定することに加えて、次のようにそのセルの [row - column ] を介してシート内のそのセルの位置を指定することによって、セルの値を取得することもできます。

cell = sheet.cell(row=2, column=1)
print(cell.value)
# one

Excelシートの指定範囲のセルを読み込む

たとえば、Excel シートの指定された範囲のセルを読み込むには、上記で作成したワークシート オブジェクトA2:C4でこの範囲を指定し、ワークシートからその範囲内のすべてのセルをフォームとして取得する必要がありますu:

cells_tuple = sheet['A2:C4']

pprint.pprint(cells_tuple)
#((<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>),
# (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>),
# (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>))

これらのセルをタプルとして読み取った後、タプル操作を使用してこれらのセルを処理できます。たとえば、次のようにタプルの要素にアクセスして、指定したセルの値を取得します。

print(cells_tuple[0][1].value)
#11

print(cells_tuple[0][0].value)
#one

タプルを使用するだけでなく、クラス シートに組み込まれている iter_rows() メソッドを使用して、範囲内のすべてのセルをリストとして取得し、ジェネレータ (イテレータを生成するために使用される関数) を作成することもできます。次に、Python で list() 関数を使用して、上記のジェネレーターを以下のようにリストに変換します。

g = sheet.iter_rows(min_row=2, max_row=4, min_col=1, max_col=3)

print(type(g))
# <class 'generator'>

cells_list=list(g)

pprint.pprint(cells_list)
#[(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>),
# (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>),
# (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>)]

これらのセルをリストとして読み取った後、リスト操作を使用してこれらのセルを処理できます。たとえば、次のようにリスト内の要素にアクセスして、指定したセルの値を取得します。

print(cells_list[0][1].value)
#11

print(cells_list[0][0].value)
#one

* PythonのListでリストを処理するその他の方法を参照してください。

Python を使用して Excel ファイルからデータを抽出

PythonでExcelシートのすべてのセル値を抽出する

Worksheet クラスのvaluesプロパティを使用することで、ジェネレーター(Python で反復子を作成するために使用される関数) を作成し、リスト クラスを使用して上記のジェネレーターを変数のすべての値を含むリストに変換できます。例えば:

g_all = sheet.values
pprint.pprint(list(g_all), width=40)

次のように Python でリスト内包表記を使用して、Excel シート内のセルの値全体を取得する関数を作成することもできます。

def get_cell_value_list(sheet):
return([[cell.value for cell in row] for row in sheet])

all_cell_value = get_cell_value_list(sheet)
pprint.pprint(all_cell_value, width=40)

上記の両方の方法で同じ結果が得られるため、シート内のすべてのセル値は、次のように python の 2 次元リストとして取得されます。

[[None, 'A', 'B', 'C'],
['one', 11, 12, 13],
['two', 21, 22, 23],
['three', 31, 32, 33]]

Excelシートで指定された範囲のセルの値を取得

Excel シートの指定された範囲のセル値を取得したい場合は、シート全体を読み取ってそのセルの値全体を取得するのではなく、特定の範囲のセルを読み込むだけで済みます。上記の指示に従って、その範囲に存在するセルの値を取得すれば完了です。

def get_cell_value_list(sheet):
return([[cell.value for cell in row] for row in sheet])

all_cell_value_with_range = get_cell_value_list(sheet['A2:C4'])
pprint.pprint(all_cell_value_with_range, width=40)

その結果、シート内の指定された範囲のすべてのセル値が、次のように 2 次元リストとして取得されます。

[['one', 11, 12],
['two', 21, 22],
['three', 31, 32]]

Pythonを使用してExcelでデータの行数を数える

Python を使用して Excel でデータの行数をカウントするには、次の構文で Workbook クラスのmax_row属性を使用します。

sheet.max_row

たとえば、次のコードで python を使用して、Excel のデータを含む行数をカウントします。

wb = openpyxl.load_workbook('./user/sample.xlsx')
sheet = wb['Sheet1']
max = sheet.max_row

print(max)
#> 3

sheet.max_row を使用すると、次のように、データを含む行の数をカウントし、ヘッダー行を除くすべてのデータを取得する関数を作成できます。

def get_all_excel_infor(excel_filepath):
wb = openpyxl.load_workbook(excel_filepath, data_only=True)
sheet = wb['Sheet1']
max = sheet.max_row
return([[cell.value for cell in row] for row in sheet[2:max]])

この関数を使用する場合、処理する Excel ファイルのパスとして引数を指定するだけです。

all_excel_infor = get_all_excel_infor('./user/sample.xlsx')

Pythonを使用してExcelのデータで列の数を数えます

Python を使用して Excel のデータを含む列の数をカウントするには、次の構文で Workbook クラスのmax_column属性を使用します。

sheet.max_column

たとえば、次のコードで Python を使用して、Excel のデータを含む列の数をカウントします。

wb = openpyxl.load_workbook('./user/sample.xlsx')
sheet = wb['Sheet1']
max = sheet.max_column

print(max)
#> 4

返される結果は、指定された Excel ファイル内のデータを含む列の最大数になります。

まとめ

上記 Kiyoshi は、python で Excel ファイルを読み込む方法について説明しました。レッスンの内容をよりよく理解するために、今日の例を書き直す練習をしてください。

そして、 Python でのExcel ファイルへのデータの書き込みの記事に引き続き従い、 Python で Excel ファイルを処理する操作を完全にマスターしてください。

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/csv-excel-json-xml-pdf/doc-file-excel-trong-python/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.