跳至主要內容

AI 撰寫範本 · 確定性 Runtime

為 AI 生成的 Excel 報表打造的確定性 Runtime。

由 LLM(Claude、GPT、Gemini、Cursor、Codex……)一次寫好 template.xlsx;xl3 把 (template.xlsx + raw.xlsx) 當成純函式轉換為 result.xlsx——相同輸入,每次都產出相同的位元組。

工作流程模型

引擎放在程式碼裡,工作流程留在活頁簿裡。

開發者只需建置轉換器一次。例行的商業規則、來源工作表對應、版面配置與輸出格式,全都留在團隊可封存、可移交的活頁簿範本裡。

01

在 Excel 裡定義合約

使用 __config__、source_table 與 XTL 運算式,描述原始活頁簿如何轉成報表。

02

提供簡單的上傳流程

非開發人員選擇原始 Excel 檔案與核可的範本,就能執行轉換器。

03

產出完成的活頁簿

輸出檔案會保留工作表結構、數值格式、樣式與合併儲存格,並由資料動態填入數值。

04

封存營運規則

範本本身就是交接文件:一個可攜的檔案,完整記錄這份例行 Excel 工作的運作方式。

__config__The template declares the source shape.
template.xlsxworkbook with transformation rules
B2fxB2 source_table = 1
ABC
1keyvaluenotes
2source_sheetRawworksheet to read
3source_table1column names and data rows
__config__

source_table tells the engine where the raw table starts and which columns belong to it.

開發者為何選擇 xl3

把例行報表邏輯,搬出一次性腳本之外。

Python 腳本、VBA 巨集與各種服務專屬的工作流程都能自動化 Excel,但商業規則往往散落在程式碼、帳號與個人經驗之中。

xl3 把可重用的引擎和活頁簿專屬的合約清楚分離。開發者維護 TypeScript 整合,每一份例行 Excel 工作則以範本活頁簿的形式流通。

貼合營運場景

為交接而設計,不只是自動化。

實際執行工作流程的人不需要讀程式碼,只需要一個穩定的轉換器、一份核可的範本,以及一個可預期的結果活頁簿。

範本即交接文件

報表規則存放於一個可審閱、可版控、可封存,並能交給下一位營運人員的活頁簿檔案中。

template.xlsx

營運人員也能輕鬆上手

Runtime 可包裝成瀏覽器頁面:上傳原始資料、選擇範本、下載活頁簿。

raw.xlsx → result.xlsx

引擎由開發者掌握

佈署、驗證與整合留在程式碼中,範本專屬的工作流程規則則留在 Excel 裡。

convert(template, raw)

XTL 0.1 隨附 70 ADRs154 conformance fixtures,於 Stage 2 全數通過。TypeScript 參考實作已發佈於 @jinyoung4478/xl3——移植指南 完整記錄合約規範,讓第二語言移植也能對齊一致。

與其他做法相比

同樣的問題,不同的解法。

做法擅長之處取捨
xl3由 LLM 主筆的 Excel 流程中,負責執行的那一半。模型只需寫一次範本,xl3 每次執行都以確定性方式渲染。Alpha 階段;僅有一位維護者;XTL 的語法面刻意精簡,直到 1.0 之前仍在演進。
Direct LLM → xlsx (spreadsheet SDK function call)快速的探索性草稿、一次性圖表。每次渲染都是非確定性的;即使 temperature 設為 0,樣式、數值格式與小計都會在不同次執行間飄移。
Spreadsheet SDKs (SheetJS, ExcelJS, openpyxl)底層的活頁簿產生。模型必須學會整個 SDK 的 API 表面,並在每次渲染時重新輸出程式碼;這裡的「範本」是應用程式碼,而非可攜的檔案。
Power Query / Office ScriptsMicrosoft 365 工作流程,以及 Excel 生態系內的資料整理。綁定租戶;工作流程規則無法隨活頁簿一起攜帶。
Template engines (JXLS, xltpl, jsreport xlsx)從類試算表範本產生伺服器端報表。誕生於 LLM 主筆模式之前;其範本 DSL 較大,並非為模型輸出而設計。
Doc-gen SaaS (Plumsail, Conga, Formstack)託管式文件工作流程、整合、簽核與交付。規則被綁在供應商服務裡,而不是一份可以交給 LLM 編輯的、可攜的活頁簿。
Python / VBA scripts貼近既有試算表、快速完成的一次性自動化。規則藏在程式碼或某位維護者的記憶中;並非模型可以輸出的成品。

開發者 API

把同一套工作流程,接進你的產品裡。

當示範流程要演變為內部入口、CLI 或服務端點時,直接使用這個套件。營運人員的操作體驗可以保持以檔案為核心,佈署與驗證則由你的應用程式掌控。

terminal
$npm install @jinyoung4478/xl3
example.ts
import { convert } from '@jinyoung4478/xl3';

const outputs = await convert(templateBuffer, dataBuffer);
// OutputFile[] → formatted .xlsx workbook(s)

Cookbook 01 — 5 分鐘快速上手 · 閱讀規格 · 移植指南