零依賴試算表引擎
Hucre 是一個純 TypeScript 開發的試算表處理引擎,聲稱不依賴任何第三方套件。它能讀寫 XLSX、CSV、ODS 格式,支援 Schema 驗證、串流處理和往返保留(round-trip preservation),設計目標是在各種執行環境中都能運作。
核心功能與格式支援
Hucre 支援的讀寫操作涵蓋:
- XLSX:支援多種儲存格型別(字串、數字、布林值、日期、公式、富文本、內聯字串、錯誤值),並能解析儲存格樣式、合併儲存格、凍結面板、自動篩選、資料驗證、超連結、圖片(PNG/JPEG/GIF/SVG/WebP)、註解、表格、條件式格式、具名範圍、列印設定、分頁符、工作表/工作簿保護、樣式、共用/陣列/動態公式、迷你圖、文字方塊、背景圖片。
- CSV:RFC 4180 相容,支援分隔符自動偵測,型別推論。
- ODS:OpenDocument Spreadsheet 格式。
效能與依賴對比
Hucre 與主要競品的差異:
| 項目 | Hucre | SheetJS | ExcelJS | read-excel-file |
|---|---|---|---|---|
| 依賴數 | 0 | 0* | 12 (存在 CVE) | 2 |
| 套件大小 (gzip) | ~18 KB | ~300 KB | ~500 KB | ~40 KB |
| ESM 原生支援 | 是 | 部分 | 否 (CJS) | 是 |
| TypeScript | 原生 | 後行加入 | 後行加入 | 是 |
| Edge 執行時 | 是 | 否 | 否 | 否 |
| CSP 相容 | 是 | 是 | 否 (eval) | 是 |
| NPM 發佈 | 是 | 否 (CDN only) | 已過時 | 是 |
| 讀+寫 | 是 | 是 (Pro $) | 是 | 分開套件 |
*SheetJS 已自 npm 移除,需透過 CDN tarball 安裝。
串流與大型檔案處理
Hucre 提供非同步生成器實現的串流讀取,能逐列處理大型檔案而不需一次載入整個檔案到記憶體。串流寫入方面,使用 XlsxStreamWriter 類別可逐列遞增寫入資料,例如產生 100,000 列資料無需同時在記憶體中持有全部內容。
往返保留與修改
透過 openXlsx() 和 saveXlsx() API,使用者可開啟現有 XLSX 檔案、修改資料後儲存,同時保留圖表、VBA 巨集、主題等 Hucre 不主動處理的功能,避免資料遺失。
Schema 驗證與資料型別強制轉換
Schema 驗證功能支援型別強制轉換、正規表達式模式匹配、列舉值驗證、最小最大值約束、預設值設定、自訂驗證器與轉換函式。驗證結果包含驗證過的物件陣列與錯誤清單(行號、欄位、錯誤訊息、原始值)。
輸出格式與工具
除了讀寫電子表格格式,Hucre 還提供:
- HTML/Markdown 輸出(表格含樣式、無障礙屬性、深淺色 CSS)。
- JSON 匯出(物件、陣列、欄位模式)。
- CLI 工具(convert、inspect、validate)。
- Fluent API Builder(流暢方法鏈語法)。
- Template Engine(以
{{placeholder}}填充現有範本)。 - 數字格式渲染器(支援地區設定)。
跨平台支援
Hucre 核心程式碼不使用 Node.js 專屬 API(fs、crypto、Buffer),因此在 Node.js 18+、Deno、Bun、現代瀏覽器、Cloudflare Workers、Vercel Edge Functions、Web Workers 都能正常運作。其 ZIP 引擎為零依賴的 DEFLATE/inflate 壓縮與 ZIP 讀寫實作。
實現完成度
專案追蹤 135 項功能中的 127 項已實現。未來規劃(v2 路線圖)包括 XLS BIFF、加密、圖表、樞紐分析表等功能。
🆕 Zero-dependency spreadsheet engine. Read & write XLSX, CSV, ODS. Schema validation, streaming, round-trip preservation. Pure TypeScript, works everywhere.
— Wind (@productdevbook) March 29, 2026
Github: https://t.co/SvQ8UvU1hj
Demo: https://t.co/Z5eibjmzdO pic.twitter.com/PSDe56ThDe
