Python in Excelの実行形態
PythonのコードはMicrosoftの用意したクラウドサーバー上で実行される。
コードと参照しているExcel上のデータは適宜、そのサーバーに送られ、サーバーで実行した結果が戻される。
制約
上記の実行方法ゆえ、以下の制約がある。
- ネット接続を必要とし、また実行時間のオーバーヘッドがある
- クラウド上での実行ゆえ、ローカルファイルや社内ファイルサーバー上のファイルへのpythonコードから直接アクセスすることは出来ない
- Webサイトへのpythonコードからのアクセスは出来ない
- 使用可能なpythonのライブラリーは、クラウドサーバー上にあらかじめ用意されているもののみで、自由に追加はできない
利用可能なライブラリー
Excelの数式リボン上の「初期化」のアイコンをクリックすると、デフォルトでimportされているライブラリーが確認できる。
サーバーにインストールされているライブラリー
以下のコードは、ChatGPTに作ってもらった、Python in Excelで利用可能なライブラリーを確認するためのコード。
from importlib.metadata import distributions
import pandas as pd
dists = distributions()
data = [(d.metadata["Name"], d.version) for d in dists if "Name" in d.metadata]
df = pd.DataFrame(sorted(data), columns=["Package", "Version"])
これをPython in Excel上で実行すると、利用可能なライブラリーとして、サーバーにインストール済みのライブラリーが確認できる。
実行してみると、200弱ほどのライブラリーが出てくるのだが、なぜかjupyterlabやplotlyなど、Python in Excel上で実行することが不可能あるいは実行することに意味が無いと思われるものが含まれている。おそらく、Anaconda由来で勢いで混じってしまった様に思える。
Python in Excelの活用の範囲
上記の制約やインストール済みのライブラリーから考えて、Python in Excelが有効に活用できる主な範囲は以下と考えられる
- numpy, scipyを用いた数値計算
- pandasを用いた統計処理
- matplotlibを用いたグラフ生成
- sympyを用いた数式処理
- pillow, qrcodeなどを用いた画像生成
- 正規表現、f文字列などを用いた文字列処理