← 返回首頁
Wind
Wind
@productdevbook
302🔁 21
𝕏 (Twitter)🔥🔥🔥
AI 中文摘要Claude 生成

零依賴試算表引擎

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、加密、圖表、樞紐分析表等功能。