PythonのOpenPyXLモジュールを使ってExcelの関数を操作する方法について解説します。OpenPyXLはPythonでExcel作業を自動化するためのライブラリで、Excelの数式を操作する機能も提供しています。
OpenPyXLでExcelに数式を入力する
PythonのOpenPyXLモジュールを使ってExcelに数式を入力する基本的なコードは以下の通りです。
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 10
sheet['A2'] = 20
sheet['A3'] = 30
sheet['A4'] = '=SUM(A1:A3)'
wb.save('test_write_4.xlsx')
このコードでは、新しいExcelワークブックを作成し、アクティブなシートに数値を入力した後、A4
セルにSUM
関数を用いてA1
からA3
までの合計を計算する数式を入力しています。
数式を文字列として書き込む
数式をExcelのセルに書き込む際には、数式を文字列として直接書き込みます。例えば、上記のコードでは'=SUM(A1:A3)'
という文字列をA4
セルに書き込んでいます。
Pythonで同じ計算をする
Pythonで同じ計算を行い、その結果をExcelに書き込むことも可能です。以下のコードはその一例です。
numbers = [10,20,30]
for i, number in enumerate(numbers):
sheet.cell(row=i+1, column=1).value = number
sheet['A4'] = sum(numbers)
このコードでは、Pythonのsum
関数を使ってリストnumbers
の合計を計算し、その結果をA4
セルに書き込んでいます。
OpenPyXLで数式を入力する利用シーン
Excelに数式を書き込むか、Pythonで計算した結果をExcelに書き込むのはどちらがいいかは、ケースバイケースです。例えば、Excelに数式を書き込んでいた場合、Excelファイルを開いてA1
セルを直接更新した際、A4
セルの合計値も更新されます。しかし、Pythonで計算した結果だけを書き込んでいた場合、A4
セルの値は更新されません。
以上、PythonとOpenPyXLを使ってExcelの関数を操作する方法について解説しました。この情報がPythonとOpenPyXLを使ってExcel作業を自動化する際の参考になれば幸いです。.