PR

【Python】Excelを操作する方法―3分で解説!

Python

PythonでExcelを操作する方法を3分で解説します。

Excelと言えばVBAなのでは?と思う方もいらっしゃるかもしれませんが、実はPythonからでもExcel操作が可能です。

このページでは、初心者向けにPythonで行うExcel自動化の基本を1から解説していきます。

このページで学べる内容
  • openpyxlライブラリのインストール方法
  • Excel操作の基本
    • ファイルを開く方法
    • ファイルの読み取り方法
    • ファイルへの書き込み方法

Pythonエンジニアであれば知っておくと便利な知識です。3分ぐらいで読めますので、是非最後までご覧ください。

スポンサーリンク

PythonでExcel操作を行うには⇒OpenPyXL

まず始めに、PythonでExcel操作を行えるようにするために必要な「OpenPyXL」というライブラリについて解説します。(Excelを操作するためには、OpenPyXLが必要になります。

ライブラリとは、簡単に言えば「プログラムの集合体」で、「OpenPyXL」には、Excel操作を行うための関数クラス変数が含まれています。

したがって、この「OpenPyXL」をインストールするだけで、Excelを操作するためのメソッドが利用できるということ。

1から、自分でExcel操作に関するプログラムを組んでいくことも不可能ではありません。ただし、それには何の意味もありませんので、ライブラリのインストールをおすすめします。

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

ライブラリ「OpenPyXL」をインストールするには、コマンドプロンプトを起動し、以下のコマンドを実行するだけです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip install openpyxl
pip install openpyxl
pip install openpyxl

インストールが完了したら、OpenPyXLが正常にインストールできているかどうかを確認。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip list
pip list
pip list

上記コマンドを実行するだけで確認できます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Package Version
---------- -------
et-xmlfile 1.0.1
jdcal 1.4.1
openpyxl 3.0.3     ←これ
pip 20.0.2
setuptools 41.2.0
Package Version ---------- ------- et-xmlfile 1.0.1 jdcal 1.4.1 openpyxl 3.0.3     ←これ pip 20.0.2 setuptools 41.2.0
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」のインポート

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#coding: utf-8
import openpyxl as px # OpenPyXLのインポート
#coding: utf-8 import openpyxl as px # OpenPyXLのインポート
#coding: utf-8
import openpyxl as px   # OpenPyXLのインポート

コーディングのはじめに、ライブラリをインポートする必要があります。

構文ルール:import
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import ライブラリ名 as 別名 # as以降はなくてもOK
import ライブラリ名 as 別名 # as以降はなくてもOK
import ライブラリ名 as 別名  # as以降はなくてもOK

import文で利用するライブラリをインポートします。(インポートしないと、そのプログラムの中でラライブラリを呼び出すことができません。

"as" をつけることによって、ライブラリ名に別名をつけることが可能です。(なぜ別名をつける必要があるの?というのは、つかっていくうちに分かるようになりますが、簡単に言うとコーディングを簡単にするためです。)

ブックの操作:Workbookクラス

ライブラリのインポートが完了したら、後はコーディングしていくだけです。

ここからは、①ブックの操作(Excelファイルの作成・保存)、②シートの操作、③セルの操作の順に構造化して解説していきます。

OpenPyXLの3つのクラス
  • "Workbook" クラス:ワークブック
  • "Worksheet" クラス:シート
  • "Cell" クラス:セル

Excelファイルの新規作成と保存

最初は、Excelの新規作成から。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#coding: utf-8
import openpyxl as px
wb = px.Workbook() # Workbookオブジェクトの生成
wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
#coding: utf-8 import openpyxl as px wb = px.Workbook() # Workbookオブジェクトの生成 wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
#coding: utf-8
import openpyxl as px

wb = px.Workbook()      # Workbookオブジェクトの生成
wb.save("sample.xlsx")  #"sample.xlsx"としてファイルを保存 

4行目から5行目にかけてがExcel新規作成処理のコードです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
wb = px.Workbook() # Workbookオブジェクトの生成
wb = px.Workbook() # Workbookオブジェクトの生成
wb = px.Workbook()      # Workbookオブジェクトの生成

この部分で、"wb" というワークブックオブジェクトが生成しています。WorkbookはOpenPyXLに含まれるクラスの1つです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
wb.save("sample.xlsx") #"sample.xlsx"としてファイルを保存
wb.save("sample.xlsx")  #"sample.xlsx"としてファイルを保存 

ワークブックオブジェクトの "save"メソッドを用いて、Excelファイルとして保存します。

引数指定したファイル名でExcelファイルが保存されます。

既存のExcelファイルを開く

既存のExcelファイルを開くには、load_workbookメソッドを利用します。引数に指定したパスのファイルが開かれます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#coding: utf-8
import openpyxl as px
wb=px.load_workbook('sample.xlsx') # 「sample.xlsx」を開く
#coding: utf-8 import openpyxl as px wb=px.load_workbook('sample.xlsx') # 「sample.xlsx」を開く
 #coding: utf-8
import openpyxl as px

wb=px.load_workbook('sample.xlsx')  # 「sample.xlsx」を開く

このままコードを実行しても、画面上にエクセルファイルが開くわけではありません。

あくまでもプログラムがそのファイルを開いている(作業している)だけの状態です。

これで、Excelファイルの作成・保存についての基本理解はOK。

シートの操作:Worksheetクラス

続いて、シートの操作方法を解説します。

Pythonで新規作成したExcelファイルは、下記の通り「sheet」シートが1つのみ存在するだけです。

この章では、シートの追加方法と削除方法を解説します。

シートの追加

シートを新規に追加する場合には、create_sheetメソッドを利用します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#coding: utf-8
import openpyxl as px
wb=px.Workbook()
wb.create_sheet('はじめてのシート追加') # シートの追加
wb.save('sample1.xlsx')
#coding: utf-8 import openpyxl as px wb=px.Workbook() wb.create_sheet('はじめてのシート追加') # シートの追加 wb.save('sample1.xlsx')
#coding: utf-8
import openpyxl as px

wb=px.Workbook()
wb.create_sheet('はじめてのシート追加') # シートの追加
wb.save('sample1.xlsx')

上記を実行した結果、「はじめてのシート追加」シートが追加されていることが分かります。

シートの追加位置指定

シートを追加する位置を指定することができます。

構文ルール
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
create_sheet() # シートを1番後ろに追加
create_sheet(0) # シートを1番前に追加
create_sheet(index=1,title="a") # シート名と、シート位置を追加
create_sheet() # シートを1番後ろに追加 create_sheet(0) # シートを1番前に追加 create_sheet(index=1,title="a") # シート名と、シート位置を追加
create_sheet()                   # シートを1番後ろに追加
create_sheet(0)                  # シートを1番前に追加
create_sheet(index=1,title="a")  # シート名と、シート位置を追加

シート位置は、1番初めが0から始まります。上記の例でいえば、前から数えて2番目に「シートa」が追加されます。

サンプルコードはこちら。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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')
#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')
#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クラスの理解が求められます。

この章では、セルに値を書き込む方法を解説します。

セルに値を書き込む

セルへの値書き込みは難しくありません。

シート名[セル] = "書き込みたい内容"

とするだけ。メソッドは不要です。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#coding: utf-8
import openpyxl as px
wb = px.Workbook()
ws = wb.active # アクティブシートを選択
ws["A1"] = "Hello World!" # A1セルに書き込み
wb.save('sample1.xlsx')
#coding: utf-8 import openpyxl as px wb = px.Workbook() ws = wb.active # アクティブシートを選択 ws["A1"] = "Hello World!" # A1セルに書き込み wb.save('sample1.xlsx')
#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から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。

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