Excel で契約を定義する
__config__、source_table、XTL 式を使って、元データのワークブックをどのようにレポートへ変換するかを記述します。
ワークフローモデル
開発者はコンバーターを一度だけ構築します。繰り返し使う業務ルール、ソーステーブルのマッピング、レイアウト、出力の形は、チームがアーカイブして引き継げるワークブックテンプレートの中にとどまります。
__config__、source_table、XTL 式を使って、元データのワークブックをどのようにレポートへ変換するかを記述します。
開発者ではないメンバーが元データの Excel ファイルと承認済みテンプレートを選び、コンバーターを実行します。
出力はシート構成、数値書式、スタイル、結合セルをそのまま維持しつつ、値はデータから差し替えられます。
テンプレートは引き継ぎの成果物となり、定期的な Excel 業務の動き方をそのまま持ち運べる 1 つのファイルに収まります。
| A | B | C | |
|---|---|---|---|
| 1 | key | value | notes |
| 2 | source_sheet | Raw | worksheet to read |
| 3 | source_table | 1 | column names and data rows |
source_table tells the engine where the raw table starts and which columns belong to it.
開発者が選ぶ理由
Python scripts や VBA macros、サービス固有のワークフローでも Excel を自動化できますが、業務ルールがコードやアカウント、暗黙知の中に散らばってしまいがちです。
xl3 は再利用可能なエンジンと、ワークブック固有の契約を分離します。開発者は TypeScript の統合部分を保守し、定期的な Excel 業務はそれぞれテンプレートワークブックとして持ち運べます。
運用へのフィット
ワークフローを回す人がコードを読む必要はありません。安定したコンバーター、承認済みのテンプレート、そして予測可能な結果ワークブックがあれば十分です。
レポートのルールはワークブックファイルに収まり、レビュー・バージョン管理・アーカイブ・次の運用担当への受け渡しがすべて可能です。
template.xlsxランタイムはブラウザページとして公開できま す。元データをアップロードし、テンプレートを選び、ワークブックをダウンロードするだけです。
raw.xlsx → result.xlsxデプロイ・バリデーション・統合はコード側に残しつつ、テンプレート固有のワークフロールールは Excel の中にとどめます。
convert(template, raw)XTL 0.1 は 70 ADRs と 154 conformance fixtures を備え、Stage 2 ですべてグリーンです。TypeScript リファレンス実装は @jinyoung4478/xl3 で公開されており、Porter's Guide が契約を明文化しているので、別言語への移植でも同じ挙動を再現できます。
他の選択肢との比較
| アプローチ | 得意なこと | トレードオフ |
|---|---|---|
| xl3 | LLM が著者となる Excel パイプラインの「実行」側。モデルが一度テンプレートを書き、xl3 が毎回決定論的にレンダリングします。 | アルファ版。メンテナーは 1 名。XTL の機能セットは意図的に小さく、1.0 までは進化が続きます。 |
| Direct LLM → xlsx (spreadsheet SDK function call) | ざっくりとした探索的なドラフト作成や、使い切りのチャート生成。 | レンダリングごとに非決定論的になります。temperature を 0 にしても、スタイル・数値書式・合計が実行のたびにブレます。 |
| Spreadsheet SDKs (SheetJS, ExcelJS, openpyxl) | 低レベルなワークブック生成。 | モデルが SDK の API 表面すべてを覚え、レンダリングのたびに再生成する必要があります。「テンプレート」はアプリケーションコードであり、持ち運べるファイルではありません。 |
| Power Query / Office Scripts | Microsoft 365 のワークフロー、Excel エコシステム内でのデータ整形。 | テナントに縛られ、ワークフローのルールがワークブックと一緒に持ち運べません。 |
| Template engines (JXLS, xltpl, jsreport xlsx) | スプレッドシート風テンプレートからのサーバーサイドレポート生成。 | LLM が著者となるモデルが登場する以前の設計で、テンプレート DSL も大きく、モデルが出力する前提では作られていません。 |
| Doc-gen SaaS (Plumsail, Conga, Formstack) | マネージド型のドキュメントワークフロー、連携、承認、配信。 | ルールはベンダーのサービスの中にあり、LLM に渡して編集してもらえる持ち運び可能なワークブックにはなりません。 |
| Python / VBA scripts | 既存スプレッドシートに寄り添った、素早い使い捨て自動化。 | ルールはコードや担当者 1 人の頭の中にあり、モデルが出力できる成果物にはなりません。 |
開発者向け API
デモのフローを社内ポータルや CLI、サービスエンドポイント へ昇格させたいときは、このパッケージを使えます。運用担当の体験はファイルベースのまま、デプロイとバリデーションはアプリ側で持てます。
$npm install @jinyoung4478/xl3import { convert } from '@jinyoung4478/xl3';
const outputs = await convert(templateBuffer, dataBuffer);
// OutputFile[] → formatted .xlsx workbook(s)