OpenPyXLを活用してPythonでエクセルを扱う

lecture
スポンサーリンク

OpenPyXLについて

OpenPyXLはPythonでExcelファイルを読み書きするためのライブラリです。OpenPyXLの主な特徴は以下のとおりです。

  • Excelファイルの読み書きが可能です。OpenPyXLを使用すると、PythonコードからExcelファイルを読み込んだり、Excelファイルを作成したり、Excelファイルにデータを書き込んだりできます。
  • フォーマットをサポートしています。OpenPyXLは、Excelファイル内のセルにフォーマットを適用することができます。これにより、数値、日付、通貨などのデータを読み書きすることができます。
  • ワークシートの操作が可能です。OpenPyXLを使用すると、ワークシート内の行や列を操作することができます。また、ワークシートを作成したり、削除したり、コピーしたりすることもできます。
  • グラフの作成が可能です。OpenPyXLは、Excelファイルを読み込んでmatplotlibなどと併用することでグラフを描くことができます。
  • パフォーマンスが高速です。OpenPyXLは、大規模なExcelファイルに対しても高速に動作するように設計されています。

OpenPyXLは、PythonでExcelファイルを処理する必要がある場合に非常に便利なライブラリです。Excelファイルを扱うための機能が豊富であり、使いやすいAPIを提供しています。
公式ドキュメント

OpenPyXLのinstall

OpenPyXLのインストールは次のように行います。
なお、Anaconda また Colab を使用する場合はすでにインストールされています。

OpenPyXLのインポート

pip install openpyxl

注意:OpenPyXLを使用する時にパソコン上でエクセルファイルが開かれているとエラーが出る場合があります。
OpenPyXLのimportは次のように書きます。

import openpyxl

Pandasでエクセルファイルを読み込むことができます。この場合も事前にOpenPyXLをインポートしておく必要があります。
多くの場合はWorkbookクラスをimportしておけば事足りるからかもしれません。

新規エクセルのワークブックオブジェクトの作成

Pythonでエクセルデータを扱うときにまず行うことは、workbookオブジェクトを作成することです。
新規ワークブックの作り方は次のようにします。

wb_new = openpyxl.Workbook()

Workbook()はエクセルのワークブックオブジェクトを返します。
オブジェクトを作成すると同時に便利なメソッドや属性が使えるようになります。

既存のエクセルファイルの読み込み

既存のエクセルファイルを読み込んでWorkbookオブジェクトを作るには次のようにします。
別の階層のフォルダに対象ファイルがある場合はパスをつけて指定します。

wb = openpyxl.load_workbook("sample.xlsx")

ワークシートオブジェクトの取り扱い

特定のワークシートの情報を取得するには2つ方法があります。
辞書風にキーで指定する方法

sheet = wb['売上']

index番号で指定する方法(0から始まる整数で指定)もあります。

ワークシートのタイトル取得

ワークシートオブジェクトのタイトルはtitle属性で取得します。

sheet.title

ワークシートオブジェクトの一覧

ワークブックのオブジェクトからworksheets属性でワークシートのオブジェクト一覧が取れます。

wb.worksheets

ワークシートオブジェクトの一覧はリストでまとまっていますので、indexingで個別のワークシートのオブジェクトが取れます。

sheet = wb.worksheets[0]
sheet.title

ワークシート名の変更

sheet.title = 'test'  # sheet名変更
print(f'変更後のタイトル : {sheet.title} ','n')

ワークシートの追加

第2引数は挿入位置をindex番号(0からのシーケンス)で指定できる。

new_sheet = wb.create_sheet(title='Sheet2', index=1)
wb.sheetnames

ワークシートのコピー

ワークシートのコピーは次のようにします。

copy_sheet = wb.copy_worksheet(wb['Sheet2'])
wb.sheetnames

ワークシートの削除

ワークシートの削除は次のようにします。

wb.remove(copy_sheet)
wb.remove(wb.worksheets[-1])

OpenPyXLを使ってWorkbookオブジェクトとWorksheetオブジェクトを活用のポイント

Workbookオブジェクトの活用方法

Workbookオブジェクトは、Excelブック全体を表します。以下のようにしてWorkbookオブジェクトを作成し、Excelファイルを読み込んでデータを取得することができます。

from openpyxl import load_workbook

# Excelファイルを読み込む
workbook = load_workbook(filename='example.xlsx')

# ワークシート名を出力する
print(workbook.sheetnames)

# ワークシートを取得する
worksheet = workbook['Sheet1']

# ワークシートの行と列を出力する
print(worksheet.max_row)
print(worksheet.max_column)

# ワークシートのデータを出力する
for row in worksheet.iter_rows(values_only=True):
    print(row)

Worksheetオブジェクトの活用方法

Worksheetオブジェクトは、Excelブック内の個々のワークシートを表します。以下のようにしてWorksheetオブジェクトを作成し、データを取得することができます。

from openpyxl import Workbook

# Workbookオブジェクトを作成する
workbook = Workbook()

# 新しいワークシートを作成する
worksheet = workbook.create_sheet('Sheet1')

# ワークシートにデータを追加する
worksheet.append(['Name', 'Age', 'Gender'])
worksheet.append(['John', 25, 'Male'])
worksheet.append(['Sarah', 30, 'Female'])

# ワークシートの特定のセルにデータを書き込む
worksheet.cell(row=1, column=4, value='Occupation')

# ワークシートをExcelファイルに保存する
workbook.save(filename='example.xlsx')

以上のようにして、WorkbookオブジェクトとWorksheetオブジェクトを活用することができます。
Excelファイルの読み込みや書き込み、ワークシートの作成やデータの取得、セルへの書き込みなどが簡単にできます。

タイトルとURLをコピーしました