今回もPythonのライブラリである”OpenPyXl”を使って、Excelを操作する記事です。
本記事は「OpenPyXlでExcelのセル内のデータを取得したり変更したりする方法」を解説します。
PythonでExcelを操作することができる記事を投稿しています。こちらから、ご覧ください。
はじめに”OpenPyXl”の導入と作業をしたツールなどの環境を確認したいと思います。
確認ができている方は、スキップしてもらって構いません。

では、スタート!
はじめに
まずは、事前準備をします。
以下の項目を確認していきましょう。
- OpenPyXlをPCに導入できているか
- PCやツールのバージョンは把握しているか
OpenPyXlの導入
Pythonのライブラリである”OpenPyXl”は導入できていますか?
導入できていないと、Excelを操作することができません。
まだPCにダウンロードできていない方は、こちらの記事を参考に導入してみてください。
またPCにPythonをインストールできていない方は、公式サイトから導入しておいてください。
PCやツールのバージョン確認
今回紹介しているコードを実行したPCやツールのバージョンを確認しておきます。
エラーなどの問題が発生したときに、解決の手がかりになるかもしれません。
環境 | バージョン |
---|---|
Python | 2.7.16 |
OpenPyXl | 1,2,4 |
Excel | 2019年版 |
Mac OS | 12.0.1 |
セルのデータを取得・変更する方法
ここからが本番ですね。
今回は以下の方法を解説していきます。
- セル内のデータの取得
- セル内のデータを変更
- セル内にデータを代入
構文
まずは構文を紹介します。(コピペで使ってください)
#ライブラリのインポート
import openpyxl
#編集するExcelファイル、シートの読み込み
excel_file = openpyxl.load_workbook('ファイル名')
excel_sheet = excel_file["シート名"]
#セル値の取得
excel_sheet['セル番地'].value
#セル値の代入・変更
excel_sheet['セル番地'].value = '代入・変更したい値'
#Excelファイルの上書き保存
excel_file.save('ファイル名')
コード解説
コードの解説は5つのブロックに分けて行います。
Step1:ライブラリのインポート
import openpyxl
一番最初に書いているこのコードで、ライブラリをインポートしています。
ライブラリのインポートとは、このPythonのファイルで”OpenPyXl”を利用できるようにすることです。
意味としては、「これから”OpenPyXl”を使うぞ!」と宣言しています。
この一文がないとExcelを操作することができないので、必ず記述するようにしておきましょう。
構文:import ライブラリ名
解説:ライブラリを利用するときに必要になるコード
Step2:編集するExcelファイル・シートを読み込む
Excelファイルの読み込み
excel_file = openpyxl.load_workbook('ファイル名')
load_workbookメソッドを使って、編集したいExcelファイルのデータを読み込みます。
引数に”編集したいExcelファイルの名前”を渡してください。
ファイル名を間違えると、読み込むことができないので注意してください。
詳しくは、こちらの記事を参考にしてください。
Excelシートの読み込み
excel_sheet = excel_file["シート名"]
Excelファイルを読み込んだ変数の後ろに編集したいExcelシートの名前を指定することで、Excelシートを取得することができます。
こちらもシート名を間違えないように注意をしてください。
詳しくは、こちらの記事を参考にしてください。(他の取得方法も掲載しております)
構文:excelファイル[“シート名”]
解説:編集したいExcelシートの名前を引数として渡すことで、シートを読み込む
Step3:セル値の取得
excel_sheet['セル番地'].value
セル値の取得をしたい場合は、”取得したいセル値があるExcelシート”の後ろに”セル番地”をしています。
例えば、以下の画像の場合について考えます。

今回のセル値は、”B5″となります。
したがって、以下のように記述するとセル値を取得できます。
excel_sheet['B5'].value #結果:リンゴ
他の取得方法
行と列でセル値を取得することも可能です。
その場合は、以下のように書きます。
excel_sheet.cell(row=8, column=2).value #結果:リンゴ
rowは行数、columnは列数を指定することでセル値を取得することができます。
構文1:excelシート[‘セル番地’].value
解説:セル番地を指定して取得(例:B5,H8)
構文2:excelシート.cell(row=行数,column=列数).value
解説:行数と列数を指定して、セル値を取得
Step4:セル値を代入・変更
excel_sheet['セル番地'].value = '代入・変更したい値'
セル値を変更や新しく代入したい場合は、セル値を取得して「=’新しいデータ’」を付け加えるだけです。
新しくセル値を代入
セル番地がA3のところに、「みかん」というデータを代入したい場合は、以下のように記述します。
excel_sheet['A3'].value = 'みかん'

セル値の変更
さきほどの例を使うと、「リンゴ」→「バナナ」に変えたい場合は、以下のように記述します。
excel_sheet['B5'].value = 'バナナ'

構文:excel_sheet[‘セル番地’].value = ‘代入・変更したい値’
解説:代入・変更したいデータを取得したセル値に代入する。
Step5:Excelファイルを上書き保存
excel_file.save('ファイル名')
Excelファイルを編集したあとは、この一文をつけましょう。とても大事です。
この一文の意味は、編集したExcelファイルを保存することです。
- 編集したExcelファイルと同じ名前:上書き保存
- 新しいExcelファイルの名前:名前をつけて保存
上書き保存をする場合は、ファイル名を同じにしてください。
構文:読み込んだExcelファイル.save(‘ファイル名’)
解説:上書き保存をしたい場合は、読み込んだExcelファイル名を指定しましょう。
おわりに
最後まで読んでいただき、ありがとうございました。
無事にセル値を取得することができたでしょうか?
もし、わからないことがあれば質問してくださいね!
では、また!

みなさん、おはようございます!
カズトンです!