-
Notifications
You must be signed in to change notification settings - Fork 1
Feature Comparison
ABCrimson edited this page Mar 3, 2026
·
7 revisions
Exhaustive capability matrix — every feature either library supports, compared side-by-side.
| Legend | Meaning |
|---|---|
| ✅ | Fully supported |
| ⭐ | Supported + superior implementation |
| 🔒 | SheetJS Pro only (paid license) |
| ❌ | Not supported |
| 🚧 | Partial / limited support |
| modern-xlsx | SheetJS | |
|---|---|---|
| Categories won | 20 | 8 |
| Ties | 4 | |
| Total features | 250 | 173 |
modern-xlsx wins: Workbook ops, merge cells, styling (free), frozen panes, data validation, conditional formatting, hyperlinks, comments, named ranges, page setup, sheet protection, date utilities, rich text, images, barcodes, table layout, validation/repair, web workers, performance, API design
SheetJS wins: Read formats (18 vs 1), write formats (20 vs 1), I/O ops, document properties, cell ref utils, number formatting, sheet conversion, streaming
| Format | modern-xlsx | SheetJS | Notes |
|---|---|---|---|
| XLSX (Office Open XML) | ✅ | ✅ | Both full support |
| XLSM (Macro-enabled) | ❌ | ✅ | Data only, no macros |
| XLSB (Binary) | ❌ | ✅ | |
| XLS (BIFF8/5/4/3/2) | ❌ | ✅ | Legacy Excel 97-2003 |
| XLML (SpreadsheetML 2003) | ❌ | ✅ | |
| ODS (OpenDocument) | ❌ | ✅ | |
| FODS (Flat ODS) | ❌ | ✅ | |
| CSV | ❌ | ✅ | |
| TSV / TXT | ❌ | ✅ | |
| HTML tables | ❌ | ✅ | |
| SYLK | ❌ | ✅ | |
| DIF | ❌ | ✅ | |
| PRN | ❌ | ✅ | |
| ETH (EtherCalc) | ❌ | ✅ | |
| DBF (dBASE) | ❌ | ✅ | |
| WK1/WK3/WKS (Lotus) | ❌ | ✅ | |
| QPW (Quattro Pro) | ❌ | ✅ | |
| Numbers (Apple) | ❌ | ✅ | Requires numbers option |
| Format | modern-xlsx | SheetJS | Notes |
|---|---|---|---|
| XLSX | ⭐ | ✅ | modern-xlsx: 8x smaller output |
| XLSM | ❌ | ✅ | |
| XLSB | ❌ | ✅ | |
| XLS (BIFF8/5) | ❌ | ✅ | |
| XLS (BIFF4/3/2) | ❌ | ✅ | |
| XLML | ❌ | ✅ | |
| ODS / FODS | ❌ | ✅ | |
| CSV | ❌ | ✅ | modern-xlsx: string only via sheetToCsv
|
| HTML | ❌ | ✅ | modern-xlsx: string only via sheetToHtml
|
| Others (SYLK, DIF, RTF, etc.) | ❌ | ✅ | 10+ additional legacy formats |
| Feature | modern-xlsx | SheetJS | Notes |
|---|---|---|---|
| Read from buffer | ✅ | ✅ | |
| Read from file | ✅ | ✅ | |
| Read sync | ❌ | ✅ | modern-xlsx: async-only (WASM) |
| Write to buffer | ✅ | ✅ | |
| Write to file | ✅ | ✅ | |
| Write sync | ❌ | ✅ | |
| Write to Blob (browser) | ⭐ | ✅ | Native WASM Blob |
| Parse CFB / ZIP | ❌ | ✅ | |
| Custom FS / codepage | ❌ | ✅ | |
| WASM init | ⭐ | ❌ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| Create / get / add / remove sheets | ✅ | ✅ (no remove) |
| Sheet visibility | ❌ | ✅ |
| Date system | ✅ | ✅ |
| Workbook views | ⭐ | 🚧 |
| Document properties | ⭐ | 🚧 |
| Serialize to JSON | ✅ | ❌ |
| Validate workbook | ⭐ | ❌ |
| Repair workbook | ⭐ | ❌ |
| Feature | modern-xlsx | SheetJS | Notes |
|---|---|---|---|
| Strings, numbers, booleans | ✅ | ✅ | |
| Error values | ✅ | ✅ | |
| Date values (native type) | ❌ | ✅ | SheetJS type "d" |
| Stub/empty cells | ❌ | ✅ | SheetJS type "z" |
| Inline strings | ✅ | ❌ | |
| Formula strings (type) | ✅ | ❌ | |
| Style index | ⭐ | 🔒 | modern-xlsx free |
| Number format override | 🚧 | ✅ | SheetJS: per-cell .z |
| Feature | modern-xlsx | SheetJS | Notes |
|---|---|---|---|
| Style builder (fluent API) | ⭐ | ❌ | |
| Font (name, size, bold, italic, color, underline, strike) | ⭐ | 🔒 | Free vs paid |
| Fill (solid, 18 patterns, gradient) | ⭐ | 🔒 | |
| Border (4 sides + diagonal, 13 styles, colors) | ⭐ | 🔒 | |
| Alignment (H/V, wrap, rotation, indent, shrink) | ⭐ | 🔒 | |
| Cell protection (locked/hidden) | ⭐ | 🔒 | |
| Number format (custom/built-in) | ⭐ | ✅ | Community has per-cell .z |
| DXF / Cell styles / CellXf / Theme colors | ⭐ | ❌ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| All validation types (list, whole, decimal, date, time, textLength, custom) | ⭐ | 🔒 |
| Input prompts and error alerts | ⭐ | 🔒 |
| Color scales / data bars / icon sets | ⭐ | 🔒 |
| DXF style references / CFVO | ⭐ | 🔒 |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| Add/remove hyperlinks with tooltip | ✅ | ✅ (no tooltip, no remove) |
| Add/remove comments | ✅ | ✅ (no remove) |
| Full CRUD named ranges | ✅ | 🚧 (read-only) |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| Orientation, paper size, fit-to, scale | ✅ | ❌ |
| Page margins | ✅ | ✅ |
| Sheet protection (14 granular fields) | ⭐ | 🚧 |
| Frozen panes | ✅ | ✅ |
| Auto filter + filter columns | ⭐ | ✅ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| Column ↔ letter, cell encode/decode, range encode/decode | ✅ | ✅ |
| Encode/decode row, split cell ref | ❌ | ✅ |
| Date ↔ serial, Temporal-like input | ⭐ | ❌ |
| Parse date code | ❌ | ✅ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| AoA/JSON → sheet, sheet → JSON/CSV/HTML | ✅ | ✅ |
| Add AoA/JSON to existing sheet | ✅ | ✅ |
| Sheet → TXT / formulae / row objects | ❌ | ✅ |
| DOM table → sheet/book | ❌ | ✅ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| Stream to JSON/CSV/HTML/XLML | ❌ | ✅ |
| WASM streaming reader (SAX) | ⭐ | ❌ |
| Parallel sheet parsing (rayon) | ⭐ | ❌ |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| RichTextBuilder (bold, italic, colored, styled) | ⭐ | ❌ |
| Image embedding (PNG/JPEG/GIF) | ⭐ | 🔒 |
| Charts (create) | ❌ | 🔒 |
| Feature | modern-xlsx | SheetJS |
|---|---|---|
| 9 barcode types + PNG renderer + XLSX embed | ⭐ | ❌ |
| Table layout engine (drawTable/drawTableFromData) | ⭐ | ❌ |
| Workbook validation & repair | ⭐ | ❌ |
| Web Worker support | ⭐ | ❌ |
| Benchmark | modern-xlsx | SheetJS | Ratio |
|---|---|---|---|
| Read 10K rows | faster | baseline | ~4.6x |
| Write 10K rows | faster | baseline | ~1.3x |
| Output file size | smaller | baseline | ~8x |
| aoaToSheet 50K rows | faster | baseline | ~2x |
| sheetToJson 10K rows | faster | baseline | ~2x |
| sheetToCsv 10K rows | faster | baseline | ~2.4x |
| Bundle size | ~300KB (WASM) | ~200KB (JS) | 1.5x larger |
| Zero runtime deps | ✅ | ❌ | |
| TypeScript types | 109+ types | basic | |
| Multi-threading | rayon flag | ❌ |
See the full comparison with 250 features in docs/FEATURE-COMPARISON.md
modern-xlsx v1.0.0
Getting Started
Guides
- Charts & Visualizations
- Formula Engine
- Table Layout Engine
- Tables & Print Layout
- Encryption
- Feature Comparison
Reference
Migration
Project