エクセルを編集する上でシート操作を使うことは多いと思います。なのでここではopenpyxlでできるシート操作をいくつか紹介したいと思います。
1.シートの取得
シートの取得とは操作するシートを指定することです。シートの取得方法は以下の3通りがあります。
| 方法 | 書き方例 | 特徴 | |
|---|---|---|---|
| a | シート名を指定 | a = wb[“3月”] | ・書き方が分かりやすい ・シートの順番が変わっても変更不要 |
| b | インデックスで指定 | wb.worksheets[4] | ・シート名に左右されない ・シート番号は0からカウントされることに注意 |
| c | アクティブシートを取得 | c = wb.active | 自由度は低いが簡単 |
次の画像は最後に「6月」シートをアクティブにしていた場合の以下のコード実行結果です。

from openpyxl import load_workbook
wb = load_workbook('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')
#パターンa
a = wb["3月"]
a.cell(row = 1, column = 1).value = "パターンa"
#パターンb:インデックス番号に「4」を指定しているので、0,1,2,3,4となり左から5番目の「5月」シートを取得
b = wb.worksheets[4]
b.cell(row = 1, column = 1).value = "パターンb"
#パターンc:ファイルを閉じる直前に選択していた「6月」シートを取得
c = wb.active
c.cell(row = 1, column = 1).value = "パターンc"
wb.save('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')
正しく実行されると指定したシートに文字が入力されます。
2.シートの作成
新規シートはcreate_sheet()で作り、()内の引数titleにシート名を書きます。
例として「1.シートの取得」で使用したファイルに「7月」シートを作成すると次のようになります。
from openpyxl import load_workbook
wb = load_workbook('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')
#新たに「7月」シート作成
d = wb.create_sheet(title="7月")
wb.save('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')

3.シートの削除
シートを削除したい場合はremove()です。Excelファイルを新しく作成した際に初期からある「Sheet1」を消したい場合などに使用します。ここでは「2.シートの作成」で作った「7月」シートを削除してみます。
from openpyxl import load_workbook
wb = load_workbook('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')
#削除するシート名を指定
wb.remove(wb["7月"])
wb.save('C:/Users/1/Desktop/python/openpyxl/シート操作.xlsx')

4.終わりに
操作したいシート取得の書き方シートの作成・削除コマンドの使い方を紹介しました。新しくExcelファイルを作成するうえで、これらの操作は使用頻度が多いのでよく覚えておきましょう。

コメントを残す