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

【Python】OpenPyXlでExcelのセル値を取得・変更する方法を解説!

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

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

カズトンです!

今回もPythonのライブラリである”OpenPyXl”を使って、Excelを操作する記事です。

本記事は「OpenPyXlでExcelのセル内のデータを取得したり変更したりする方法」を解説します。

PythonでExcelを操作することができる記事を投稿しています。こちらから、ご覧ください。

はじめに”OpenPyXl”の導入と作業をしたツールなどの環境を確認したいと思います。

確認ができている方は、スキップしてもらって構いません。

カズトン

では、スタート!

はじめに

まずは、事前準備をします。

以下の項目を確認していきましょう。

確認項目
  • OpenPyXlをPCに導入できているか
  • PCやツールのバージョンは把握しているか

OpenPyXlの導入

Pythonのライブラリである”OpenPyXl”は導入できていますか?

導入できていないと、Excelを操作することができません。

まだPCにダウンロードできていない方は、こちらの記事を参考に導入してみてください。

またPCにPythonをインストールできていない方は、公式サイトから導入しておいてください。

PCやツールのバージョン確認

今回紹介しているコードを実行したPCやツールのバージョンを確認しておきます。

エラーなどの問題が発生したときに、解決の手がかりになるかもしれません。

環境バージョン
Python2.7.16
OpenPyXl1,2,4
Excel2019年版
Mac OS12.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ファイルの名前”を渡してください。

ファイル名を間違えると、読み込むことができないので注意してください。

詳しくは、こちらの記事を参考にしてください。

まとめ

構文:openpyxl.load_workbook(‘ファイル名’)

解説:編集したい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ファイル名を指定しましょう。

おわりに

最後まで読んでいただき、ありがとうございました。

無事にセル値を取得することができたでしょうか?

もし、わからないことがあれば質問してくださいね!

では、また!

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