Pythonでエクセルファイルに入力されている値の読み込みができます。
読み込んだエクセルファイルの値を、他のエクセルファイルに転記するというような操作ができるのです。
参考:Pythonでエクセルに書き込みができる!そのやり方と実例!
例えば、仕入れ先のシステムから仕入れた商品情報をエクセルで出力できるとしたら、それを読み込んで他の社内報告用のエクセルフォーマットに転記するといったことが可能になります。
1.Pythonでエクセルを読み込むための機能
Pythonでエクセルを読み込むためには、以下の機能を利用します。
openpyxl
プログラムの最初で「import openpyxl」と記述することにより機能をインポートする。
この機能をプログラムの最初でインポートすることにより、エクセルの読み込みができるようになります。
2.プログラムの書き方
プログラムの記述は以下のような内容になります。
# 機能のインポート
import openpyxl
# ブックを取得
【任意の変数1】 = openpyxl.load_workbook(‘【任意のファイル名】.xlsx’)
# シートを取得
【任意の変数2】 = 【任意の変数1】[‘【対象のシート名】‘]
# セルの読み込み rowに対象セルの行、columnに対象セルの列を指定
【任意の変数3】 = 【任意の変数2】.cell(row=行,column=列).value
# 読み込んだセルの値をプリントしてみる
print(【任意の変数3】)
これだけだといまいちわからない方もいると思いますので、実際に以下の手順でプログラムを実行してエクセルに書き出してみましょう。
3.プログラムの実行例
例えば、Pythonの実行環境に「excel_operation_test.xlsx」というエクセルファイルを用意するとします。
中身は以下の内容だとします。
さらに、以下の内容とファイル名で、同じくPythonの実行環境に保存します。
# 機能のインポート
import openpyxl
# ブックを取得
WB = openpyxl.load_workbook(‘excel_operation_test.xlsx‘)
# シートを取得
WS = WB[‘Sheet1‘]
# セルの読み込み rowに対象セルの行、columnに対象セルの列を指定
CV = WS.cell(row=5,column=2).value
# 読み込んだセルの値をプリントしてみる
print(CV)
そして以下のようにコマンドプロンプトに入力、プログラムを実行すると…
以下のようにエクセルから値を取得してプリントできました。
プログラムの記述の通り、
「excel_operation_test.xlsx」というエクセルファイルの
「Sheet1」というシートの
5行目の2列目のセルの値「パイナップル」を取得し
「CV」という変数に格納し
プリント(表示)させたわけです。
4.捕捉
以下に捕捉内容を記載しておきます。
4−1.書き込むセルの指定の方法
上述したプログラムの
CV = WS.cell(row=5,column=2).value
の個所は
CV = WS.[‘B5’]
と記述することもできます。
こちらの書き方だと普段エクセルを使っていて見慣れた書き方ですね。
4−2.書き込むエクセルファイルの保存場所の指定方法
上述したプログラムの
WB = openpyxl.load_workbook(‘excel_operation_test.xlsx‘)
や
WB.save(‘excel_operation_test.xlsx‘)
は、それぞれPython実行環境のフォルダと同じ場所に「excel_operation_test.xlsx」が置かれている前提の書き方です。
もしこのエクセルファイルが別な場所、例えばデスクトップに置いてあるとしたらフルpathで以下のように書きます。
WB = openpyxl.load_workbook(‘C:\\Users\\ユーザフォルダ\\Desktop\\excel_operation_test.xlsx‘)
WB.save(‘C:\\Users\\ユーザフォルダ\\Desktop\\excel_operation_test.xlsx‘)
階層と階層の境目を示すときは「\」ではなく「\\」と記述することに注意してください。