Python データ分析 自動化

【Python】openpyxlで「Excelの数式」の読み込み・書き込み

この記事は約2分で読めます。

 

最近業務でエクセル処理をPythonで自動化しようとしていたのですが、エクセルの関数がうまく反映されず少しハマったので調べたことをメモしておきます。

 

# インストール
$ pip install openpyxl

 

PythonのOpenPyXLで「Excelの数式」を読み込む

 

import openpyxl

excel_file_path = "sample-1.xlsx" # 読み込むExcelファイルのPATH(適宜変更)
book = openpyxl.load_workbook(excel_file_path,data_only=False) # Excelファイルの読み込み
print(book["Sheet"]["A3"].value) # 数式を表示
print("PythonのOpenPyXLで数式を読み込みできました。")

 

肝はload_workbook()の引数のdata_onlyでこれをFalseとすることで、これでエクセル関数が文字列として読み込まれます。Trueだと計算結果の情報しか取得できません。

 

数式の計算結果を取得できないとき

 

ただOpenpylだとSUM()やIF()などの関数が使われている式はNoneが返ってきます。これはOpenxyplの仕様で関数の計算結果の数値を取得するためにはxlwingsという別のエクセルを読み込むライブラリを使うしかないみたいです。

 

PythonのOpenPyXLで「Excelの数式」を書き込む

 

書き込みは数字の時と同じで数式を文字列として指定してあげるだけでOKです。

 

# 数式を書き込む
book["Sheet"]["A3"].value = 'SUM(A1:A10)'

#結果を保存
book.save(excel_file_path)

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. […] 関連記事:【Python】openpyxlで「Excelの数式」の読み込み・書き込み […]

タイトルとURLをコピーしました