- 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公式ドキュメント