【Python】Excelファイルを操作する方法【OpenPyXL】

アイキャッチ画像
  • PythonでExcelファイルを操作するには?
  • Excelファイルの操作を効率化・自動化するには?

本記事ではこのような疑問を解決します。


ホワイトカラーの現場では、業務効率化・自動化ブームによってPythonによるExcelファイルの操作が徐々に使われるようになってきています。

とはいえ、一般化されるにはまだまだ時間がかかるでしょう。

そして、ダラダラと長い文章で説明されたものではなく、
必要な情報だけがまとめられたPythonによるExcelファイル操作の方法があると便利ですよね。


そこで今回は端的にまとめたPythonによるExcelファイルの操作方法をご紹介します。

ライブラリのインストール

まずはPythonでExcelファイルを操作するためのライブラリであるOpenPyXLをインストールします。

$ pip install openpyxl

それでは早速ファイル・シート・セルの各種操作方法を確認していきましょう。

ファイルの操作

ファイルの新規作成

from openpyxl import Workbook

wb = Workbook()# openpyxlではWorkbookがExcelオブジェクトにあたる

ファイルの保存

wb.save('【保存したいファイル名】.xlsx')# ファイルパスで指定する(指定しない場合、現在のディレクトリに保存される)

ファイルの読み込み

from openpyxl import load_workbook

wb = load_workbook(filename='【ファイル名】.xlsx')# 読み込むファイルのファイルパスを指定する

※上書き保存と名前を付けて保存

・上書き保存→save()で同じファイル名を指定する
・名前を付けて保存→save()で別のファイル名を指定する

シートの操作

シートの取得

ws = wb.sheetnames[0]# インデックスで指定するパターン

ws = wb.sheetnames['【シート名】']# シート名で指定するパターン

シートの追加

ws2 = wb.create_sheet('【シート名】')

シートの削除

ws = wb.remove('【シート名】')

列・行の操作

列・行の挿入

ws.insert_cols(3, 4)# (列番号, 列数)

ws.insert_rows(3, 4)# (行番号, 行数)

列・行の削除

ws.delete_cols(5, 7)

ws.delete_rows(5, 7)

セルの操作

セルの取得

# 単体セルの取得
cell = ws['A1']# 番地を指定する

# 複数セルの取得
cells = ws['A1:D4']

セル値の取得

cell_val = ws['A5'].value

セル値の書き込み・削除

# 書き込み
ws['A5'].value = 100

# 削除
ws['A5'].value = 'None'

セルの結合

ws.merge_cells('A3:B7')# ('開始セル:終了セル')

フォント等の編集

from openpyxl.styles import Font

cell.font = Font(size=13, name='メイリオ', bold=True, color='FF0000')
# size:フォントサイズ、name:フォント種類、bold:太字、color:文字カラー

罫線の付与

from openpyxl.styles.borders import Border, Side

side = Side(style='thin', color='0000FF')
# style:線の種類(例→thin:細い罫線、dotted:点線、double:二重罫線、thick:太い罫線)、color:罫線の色

border = Border(left=side, right=side, top=side, bottom=side)
cell = ws['C2']
cell.border = border

まとめ

以上がPythonでExcelファイルを操作する方法になります。

Excelファイル操作用のライブラリであるOpenPyXLを使うことでファイルからセルまで扱うことができました。

本記事の基本操作を組み合わせたり、応用したりすることで業務の効率化・自動化を実現することができます。

なお、より詳しい内容についてはこちらのOpenPyXL公式ドキュメントをご参考ください。

OpenPyXL公式ドキュメント