PythonでExcelを操作する方法を3分で解説します。
Excelと言えばVBAなのでは?と思う方もいらっしゃるかもしれませんが、実はPythonからでもExcel操作が可能です。
このページでは、初心者向けにPythonで行うExcel自動化の基本を1から解説していきます。
Pythonエンジニアであれば知っておくと便利な知識です。3分ぐらいで読めますので、是非最後までご覧ください。
PythonでExcel操作を行うには⇒OpenPyXL
まず始めに、PythonでExcel操作を行えるようにするために必要な「OpenPyXL」というライブラリについて解説します。(Excelを操作するためには、OpenPyXLが必要になります。)
ライブラリとは、簡単に言えば「プログラムの集合体」で、「OpenPyXL」には、Excel操作を行うための関数やクラス・変数が含まれています。
したがって、この「OpenPyXL」をインストールするだけで、Excelを操作するためのメソッドが利用できるということ。
1から、自分でExcel操作に関するプログラムを組んでいくことも不可能ではありません。ただし、それには何の意味もありませんので、ライブラリのインストールをおすすめします。
OpenPyXL" ライブラリのインストール
ライブラリ「OpenPyXL」をインストールするには、コマンドプロンプトを起動し、以下のコマンドを実行するだけです。
pip install openpyxl
インストールが完了したら、OpenPyXLが正常にインストールできているかどうかを確認。
pip list
上記コマンドを実行するだけで確認できます。
Package Version ---------- ------- et-xmlfile 1.0.1 jdcal 1.4.1 openpyxl 3.0.3 ←これ pip 20.0.2 setuptools 41.2.0
これで、OpenPyXLのインストールが完了です。
早速、Excelを操作するPythonプログラムをコーディングしていきましょう。
PythonでExcelを操作する方法
早速、PythonでExcel操作を行う手順を確認していきましょう。
1つ1つ、順を追って丁寧に解説していきます。
ライブラリ「OpenPyXL」のインポート
#coding: utf-8 import openpyxl as px # OpenPyXLのインポート
コーディングのはじめに、ライブラリをインポートする必要があります。
import ライブラリ名 as 別名 # as以降はなくてもOK
import文で利用するライブラリをインポートします。(インポートしないと、そのプログラムの中でラライブラリを呼び出すことができません。)
"as" をつけることによって、ライブラリ名に別名をつけることが可能です。(なぜ別名をつける必要があるの?というのは、つかっていくうちに分かるようになりますが、簡単に言うとコーディングを簡単にするためです。)
ブックの操作:Workbookクラス
ライブラリのインポートが完了したら、後はコーディングしていくだけです。
ここからは、①ブックの操作(Excelファイルの作成・保存)、②シートの操作、③セルの操作の順に構造化して解説していきます。
- "Workbook" クラス:ワークブック
- "Worksheet" クラス:シート
- "Cell" クラス:セル
Excelファイルの新規作成と保存
最初は、Excelの新規作成から。
#coding: utf-8 import openpyxl as px wb = px.Workbook() # Workbookオブジェクトの生成 wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
4行目から5行目にかけてがExcel新規作成処理のコードです。
wb = px.Workbook() # Workbookオブジェクトの生成
この部分で、"wb" というワークブックオブジェクトが生成しています。WorkbookはOpenPyXLに含まれるクラスの1つです。
wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
ワークブックオブジェクトの "save"メソッドを用いて、Excelファイルとして保存します。
引数指定したファイル名でExcelファイルが保存されます。
既存のExcelファイルを開く
既存のExcelファイルを開くには、load_workbookメソッドを利用します。引数に指定したパスのファイルが開かれます。
#coding: utf-8 import openpyxl as px wb=px.load_workbook('sample.xlsx') # 「sample.xlsx」を開く
このままコードを実行しても、画面上にエクセルファイルが開くわけではありません。
あくまでもプログラムがそのファイルを開いている(作業している)だけの状態です。
これで、Excelファイルの作成・保存についての基本理解はOK。
シートの操作:Worksheetクラス
続いて、シートの操作方法を解説します。
Pythonで新規作成したExcelファイルは、下記の通り「sheet」シートが1つのみ存在するだけです。
この章では、シートの追加方法と削除方法を解説します。
シートの追加
シートを新規に追加する場合には、create_sheetメソッドを利用します。
#coding: utf-8 import openpyxl as px wb=px.Workbook() wb.create_sheet('はじめてのシート追加') # シートの追加 wb.save('sample1.xlsx')
上記を実行した結果、「はじめてのシート追加」シートが追加されていることが分かります。
シートの追加位置指定
シートを追加する位置を指定することができます。
create_sheet() # シートを1番後ろに追加 create_sheet(0) # シートを1番前に追加 create_sheet(index=1,title="a") # シート名と、シート位置を追加
シート位置は、1番初めが0から始まります。上記の例でいえば、前から数えて2番目に「シートa」が追加されます。
サンプルコードはこちら。
#coding: utf-8 import openpyxl as px wb=px.Workbook() wb.create_sheet("はじめてのシート") # シート「はじめてのシート」の追加 wb.create_sheet() # シートを1番後ろに追加 wb.create_sheet(0) # シートを1番前に追加 wb.create_sheet(index=1,title="a") # シート「a」を1番目に追加 wb.save('sample1.xlsx')
実行した結果、シートが自由に様々追加されていることをご確認いただけるかと思います。
セルの操作:Cellクラス
最後にセルの操作です。
Pythonを利用して作業の自動化を行う際には、このCellクラスの理解が求められます。
この章では、セルに値を書き込む方法を解説します。
セルに値を書き込む
セルへの値書き込みは難しくありません。
シート名[セル] = "書き込みたい内容"
とするだけ。メソッドは不要です。
#coding: utf-8 import openpyxl as px wb = px.Workbook() ws = wb.active # アクティブシートを選択 ws["A1"] = "Hello World!" # A1セルに書き込み wb.save('sample1.xlsx')
これだけです。
以上で、PythonからExcelファイルを操作する基本解説は終了です。
Pythonを1から学習したい方は
Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。
そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。
各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。