毎日、Twitterで日々の成果や頑張りをツイートしてします!

【Python】OpenPyXlでExcelのシートを操作する方法を解説!(取得や追加など)

アイキャッチ画像
カズトン

みなさん、おはようございます!

カズトンです!

今回も引き続き、Pythonのライブラリである”OpenPyXl”を使ってExcelを操作しようと思います。

本記事はタイトルでも書いていますが、Excelのシートを操作する方法をまとめました。

Excel自動化をする際に、シートを選択することはたくさんあると思います。

「ぜひ、最後まで読んでシートを自在に操ってください!」

他にもExcel自動化についての記事を投稿しておりますので、見てみて下さい。

シートの操作方法の解説では、構文と解説の2つで構成しています。

コピペで使いたい方は、構文をコピーして利用してください。

また、OpenPyXlについて詳しく知りたい方は解説部分も読んでみてくださいね!

カズトン

では、スタートです!

はじめに

いつもですが、確認をしておきます。

確認する項目は、以下の2つです。

確認事項
  1. OpenPyXlは導入できているのか
  2. 操作しているバージョンの確認(PCやツール)

まだ、PCにPythonをダウンロードしていない方は、こちらから。

OpenPyXlの導入

毎度おなじみですが・・・笑

本記事を初めて見た方もおられると思うので、確認しておきましょう。

ライブラリをPCにインストールができているか確認をしてください。

インストールされていない場合、Excel操作にてエラーが起きます。

まだインストールされていない方は、こちらの記事を参考にしてください。

PCやツールの環境確認(バージョン)

続いて、PCやツールのバージョンを確認しましょう。

OpenPyXlでエラーが生じたときの手がかりになることがありますので、確認しておきます。

環境バージョン
Python2.7.16
OpenPyXl1.2.4
Excel2019年版
Mac OS12.0.1
作業した環境のバージョン確認

シートの操作一覧

はじめに、Excelのシートでどんな操作ができるのかをまとめておきました。

おもに、以下のことができます。

シートの操作一覧

シートに対しての操作

  • シートの取得
  • シートの追加
  • シートのコピー
  • シートの消去

シート名に対しての操作

  • シート名の取得
  • シート名の変更

この項目ひとつずつを解説していきます。

カズトン

「シート」と「シート名」をちゃんと区別しようなぁ!

分かりづらいけども・・・

共通

まずは、それぞれの操作を解説するまえに準備をしておきます。

準備は、以下のコードです。

import openpyxl #ライブラリのインポート

excel_file = openpyxl.load_workbook('Excelファイル名') 

#行いたい操作のコードを記述

excel_file.save("ファイル名") #上書き保存

“ライブラリのインポート”と”Excelファイルの読み込み”を行っておいてください。

そして、操作が終わったら必ず上書き保存を行って下さい。

Excelファイルの読み込みの方法は、こちらの記事から。

アイキャッチ画像

シートに対しての操作方法

ここでは、シートに対しての操作をひとつずつ見ていきます。

シートの取得

シートの取得ってイメージ湧きますかね?

「シートの取得」=「PythonでExcelのシートを扱えるようにすること」

シートを取得しないと、Pythonでシートを操作することができません。

ですので、必ずシートを扱う前に「シートの取得」を行って下さい!

構文

excel_file_sheet = excel_file["シート名"] #シート名を指定して取得

excel_file_sheet = excel_file[インデックス番号] #インデックス番号を指定して取得

解説

シートを取得するためには、2つの方法があります。

  1. シート名を指定して取得する場合
  2. インデックス番号を指定して取得する場合

どちらにしても、「Excelファイルを読み込んだ変数.[シートを指定]」と記載することでシートを取得することができます。

1つ目:シート名を指定する場合

excel_file_sheet = excel_file["りんご"] #一枚目のシートを取得

excel_file_sheet = excel_file["みかん"] #二枚目のシートを取得

excel_file_sheet = excel_file["バナナ"] #三枚目のシートを取得

2つ目:インデックス番号を指定する場合

インデックス番号とは、一枚目を0として数えた番号のことです。

「1枚目を0、2枚目を1、3枚目を2、4枚目を3」と数えていきます。

excel_file_sheet = excel_file[0] #一枚目のシートを取得

excel_file_sheet = excel_file[1] #二枚目のシートを取得

excel_file_sheet = excel_file[2] #三枚目のシートを取得
まとめ

構文:Excelファイルを読み込んだ変数.[シートの指定]

ポイント:シート名で指定する場合は、[“シート名”]

     インデックス番号で指定する場合は、[インデックス番号]

シートの追加

続いて、シートの追加です。

シートの追加では、create_sheetメソッドを使います。

構文

excel_file.create_sheet(title="タイトル名" index="追加したいインデックス番号")

解説

シートを追加したい場合は、create_sheetメソッドを扱います。

引数にタイトルと追加したい場所をインデックス番号で渡すことで指定できます。

書き方は、「Excelファイルを読み込んだ変数.create_sheet(title=”タイトル名” index=”追加したい場所をインデックス番号で指定”)」です。

indexを指定しないと、一番後ろに追加されます。

例えば、3番目に「梨」というタイトルのシートを追加したい場合は、以下のように記載します。

excel_file.create_sheet(title="梨" index="2")

追加したい場所は、インデックス番号で指定してください。

先頭が0から始まることを注意してください。

まとめ

構文:Excelファイルを読み込んだ変数.create_sheet(title=”タイトル名” index=”追加したい場所をインデックス番号で指定”)

ポイント:追加する場所を指定する場合は、インデックス番号で指定する。

シートのコピー

続いては、シートをコピーする方法です。

シートをコピーするためには、copy_worksheetメソッドを使います。

構文

excel_file.copy_worksheet(excel_file["コピーしたいシート名"])

解説

シートをコピーしたい場合は、copy_worksheetメソッドを扱います。

引数に、コピーしたいシートのデータを渡すことでシートをコピーすることができます。

コピーされたシートの名前は、「コピー元のシート名 Copy」となり、一番最後に追加されます。

例として、りんごというシートをコピーしたいと思います。

excel_file.copy_worksheet(excel_file["りんご"])

すると、一番最後に「りんご Copy」というタイトルでりんごのシートをコピーできました。

まとめ

構文:Excelファイルを読み込んだ変数.copy_worksheet(Excelファイルを読み込んだ変数[“コピーしたいシート名”])

ポイント:タイトル名は、「コピー元のタイトル Copy」となり一番最後に追加される。

シートの消去

シートの消去をするためには、removeメソッドを使います。

構文

excel_file.remove(excel_file["消したいシート名"])

解説

シートの消去は、removeメソッドを扱います。

引数には、消したいシートのデータを渡します。

書き方は、Excelファイルを読み込んだ変数.remove(Excelファイルを読み込んだ変数[“消去したいシート名”])です。

一つ例に出します。

りんご Copyのシートを消去してみます。

excel_file.remove(excel_file["りんご Copy"])

ちゃんと、シートを消去されていることが確認できるはずです。

まとめ

構文:Excelファイルを読み込んだ変数.remove(Excelファイルを読み込んだ変数[“消去したいシート名”])

ポイント:特になし。

シート名に対しての操作方法

次は、シート名に対しての操作です。

シート名の操作は、2つ。

  1. 取得
  2. 変更

では、紹介していきます。

シート名の取得

シート名を取得する場合は、titleプロパティが必要になります。

構文

excel_file_sheet = excel_file['取得したいシートのインデックス番号']

print(excel_file_sheet.title)

解説

シート名を取得したい場合は、まずは、シート自体を取得する必要があります。

そのシート自体を読み込んだ変数.titleすることで、シート名を取得することができます。

では、梨というシート名を取得しようと思います。

excel_file_sheet = excel_file[2]

print(excel_file_sheet.title)

#結果 梨
まとめ

構文:Excelシートを読み込んだ変数.title

ポイント:シート自体を読み込む必要がある。

シート名の変更

シート名の変更でも、titleプロパティを扱います。

構文

excel_file_sheet = excel_file['取得したいシートのインデックス番号']

excel_file_sheet.title = '新しいタイトル名'

解説

一行目は、シート名の取得と同じです。

二行目は、少し違います。

Excelシートを読み込んだ変数.title = ‘新しいタイトル名’でタイトルを変更することができます。

今回は、梨というタイトルをレモンに変えたいと思います。

excel_file_sheet = excel_file['2']

excel_file_sheet.title = 'レモン'
まとめ

構文:Excelシートを読み込んだ変数.title = ‘新しいタイトル名’

ポイント:シート自体を読み込む必要がある。

終わりに

最後まで読んでくださりありがとうございます。

どんどんExcel自動化の記事を出していくので見て下さい!

もし、わからないことがあればTwitterのDMでも相談してくださいね!

では、また!

最後まで読んでくれてありがとう