Formulon が必要な理由
Formulon は、Excel を動かさずに Excel ワークブックを計算したい製品のためのエンジンです。.xlsx と .xlsb を読み込み、数式の評価と再計算、セルや構造の編集を行い、ファイルに書き戻すまでを、すべて自分のプロセスの中で処理します。同じ C++17 エンジンを、ブラウザ、Node、Python、シェル、AI エージェント向けにパッケージ化しています。
どの実行入口も同じコアを呼ぶので、どこで動かしても同じワークブックは同じ結果になります。
できること
- Excel なしで Excel の結果を得られます。デスクトップアプリ、Microsoft のランタイム、COM 自動化は要りません。Formulon が認識する 526 個の関数名のうち 511 個をローカルで実行します。残る 15 個は Microsoft 365 のサービスに依存するため、固定のエラーを返します。
- 互換性を自分で確かめられます。計算結果は実際の Excel 365 から取得した値と照合しています。既知の差分は、理由と最後に確認した Excel ビルドとともに
tests/divergence.yamlに記録しています。浮動小数点の誤差から和暦まで、具体的なケースを互換性をどこまで詰めているかでその場で照合できます。 - ロケールごとの Excel の答えに合わせられます。28 個のプロファイルが Mac と Windows の 14 ロケールをカバーし、文字列の比較や数式名のローカライズも含みます。Mac の全プロファイルと
win-365-ja_JPは Excel の取得値で実測しています。ほかの Windows プロファイルは現時点では推定値です。新しいワークブックは、別のプロファイルを選ばない限りwin-365-en_USで計算します。詳しくはロケールプロファイルを参照してください。 - ワークブックのデータは手元に残ります。計算は自分のプロセスの中で行い、Formulon がホストするサービスにファイルが渡ることはありません。ブラウザなら、アップロードしたワークブックを端末の外に出す必要もありません。
- どの実行環境でも同じ値になります。ブラウザ、Python、CLI、Native Node、MCP はコアを共有しているため、ある環境で確かめた結果がほかの環境でもそのまま得られます。
- ワークブック全体を往復できます。対応するワークブック構造を保ったまま値を再計算するので、数式を評価するだけでなく、読み込み、編集、再計算、保存まで通せます。
ほかの選択肢との違い
| 選択肢 | 向いている場面 | Formulon の違い |
|---|---|---|
| Excel 本体 | 実際のアプリ、VBA、Power Query、外部データ接続、最終的な見た目の確認が必要なとき | ブラウザ、サービス、ジョブの中でヘッドレスに動き、デスクトップアプリを自動操作しない |
| デスクトップのオフィススイートの一括変換 | 大量のファイルを変換し、そのスイートの計算挙動で問題ないとき | ロケールプロファイルごとに実測した Excel の挙動に合わせる |
| 数式だけを扱うライブラリ | 数式は評価するが .xlsx を開いたり保存したりしないとき | ワークブック自体を読み込み、編集し、書き出す |
| クラウドのスプレッドシート API | ワークブックがすでにそのホスト型製品の中にあるとき | ローカルで計算し、ファイルをホスト型サービスに送らない |
対象にしないこと
エンジン自体にはユーザーインターフェイスがなく、グラフも描画しません。ブラウザで表計算 UI が必要なら、エンジンの上に作った formulon-cell が UI を提供し、主なグラフの種類も描画します(ベータ版です)。VBA、Power Query、DAX の実行、外部データの更新、旧形式の .xls の読み込みには対応していません。これらを外しているので、エンジンを小さく保ち、組み込みやすく、テストしやすくできています。
現在の状況
Formulon は 1.0 前で、最初の安定版までに API やパッケージ構成が変わる可能性があります。速度はワークブックの形や数式の組み合わせで変わるため、単一のベンチマーク値は示していません。手元のワークブックで測ってください。業務上重要な用途では、Formulon のバージョンとプロファイルを固定し、代表的なワークブックを検証用に残してください。現時点で最も向いているのは、サーバーのジョブ、CI、社内ツール、組み込み計算で、内容を把握しているワークブックを扱う用途です。