excel-bridge Manifest v1.6.0

Ships at 12.9 KB.

Read and write styled .xlsx in the browser and Node.js. The excel-bridge writer adds 12.9 KB to your bundle, where SheetJS adds 95.8 KB and ExcelJS 272.1 KB.

min+gzip · esbuild 0.28.2 · measured 2026-10-08 · method

Install npm i excel-bridge
excel-bridge Via npm
Only what you importtree-shaken
Fromthe npm registry
Toyour front-end bundle
ContentsExcelWriter · styled .xlsx export
Pieces1 import
Weight · min+gzip 12.9KB
Same job, other carriers
Bundle weight to write an .xlsx, min+gzip
excel-bridge12.9 KB
SheetJS95.8 KB
ExcelJS272.1 KB
Version1.6.0
LicenseMIT
Deps2

Pack a workbook

Edit any cell, then print the label. The page builds a real .xlsx with the live library and hands you the file: open it in your spreadsheet app to check the styling, formulas, color scale, filter dropdowns and link.

Outboundstep 1 of 2
sales-report.xlsx · Sales Live
Label printer

4×6 thermal · prints one label per file you pack

excel-bridgePacked live
Filenot packed yet
Printed--:--
Weight on disk --.-KB

Edit the sheet, then print. The label carries the real file's name, weight and contents.

Receive a parcel

Drop any .xlsx on the dock and excel-bridge unpacks it in your browser: values, cell types, formulas, styles, filters and links. Nothing is uploaded to a server.

Drop an .xlsx on the dock

or browse your files · step 2 of 2

Print a label above first, then read the same file straight back, all client-side.

Unpacked cells will appear here.

Pay only for what you import

Bundlers keep the exports you import and drop the rest. Each entry point is weighed on its own.

Itemized manifestmin+gzip · esbuild 0.28.2
ImportWeightRelative weight
createExcelWorkbookStream12.3 KB
ExcelWriter12.9 KB
ExcelReader28.7 KB
Workbookreader + writer41.0 KB
ExcelBridgeconvenience object41.1 KB
Everything43.7 KB
SheetJS utils + writexlsx 0.18.5 on npm95.8 KB
ExcelJS 4.4.0default browser build272.1 KB

Measured 2026-10-08 on excel-bridge 1.6.0: each row bundles a one-line export { … } entry with esbuild 0.28.2 (--bundle --minify --platform=browser --format=esm) and gzips it with Node's zlib; 1 KB = 1,000 bytes. Reproduce with pnpm run size.

Declaration of contentsMIT · no commercial value
What the package contains
No.Description of contentsQtyNet weight
1Read & writeStyling, fonts, per-side borders, formulas, dates, merged cells, freeze panes, row heights, conditional formatting, data validation, autofilters and hyperlinks, parsed back by the reader.1212.9 KB write
28.7 KB read
2Runtime dependenciesfflate and fast-xml-parser. No ExcelJS or SheetJS inside.2—
3RuntimesFile/Blob in the browser, Uint8Array in Node.js, one API.2—
4Streaming writerMillion-row exports from a sync or async iterable, never held whole in memory.1M rows12.3 KB
5Workbook APILoad a workbook this library wrote, edit cells, styles, merges, freeze panes, filters and links, then save it back. Content it does not model is dropped.1 class41.0 KB
6TypeScript typesIntelliSense for every export, in both ESM and CJS builds.all exports0 KB at runtime
7Signed releasesEvery version is published to npm with build provenance.every release—

Net weight is the min+gzip cost of the matching import from the itemized manifest; types are erased at build time.

How it compares

The same common case, styled multi-sheet reports read and written from typed data, while staying small enough for a front-end bundle.

Rate sheet3 carriers · same job
Capability excel-bridge ExcelJS SheetJS (community)

¹ Min+gzip of what a browser bundle needs to write an .xlsx: ExcelWriter, ExcelJS's default browser build (not tree-shakeable), and SheetJS utils + write from npm xlsx@0.18.5. Bundled with esbuild 0.28.2 and gzipped on 2026-10-08; reproduce with pnpm run size. Reading adds the XML parser: ExcelReader is 28.7 KB and the whole library 43.7 KB. Bundlephobia measures whole packages with its own toolchain: excel-bridge · exceljs · xlsx.

Transit times

LibraryWrite timeRelative write timeOutputvs excel-bridge
excel-bridge560 ms2.41 MiB1×
exceljs1490 ms2.82 MiB2.7×
xlsx / SheetJS510 ms18.23 MiB0.9×

Writing 50,000 rows × 10 columns, median of 5 runs (Node 24.19, Apple M4). Numbers vary by machine; reproduce them with pnpm run bench. SheetJS is fast to write but its default output is far larger.

Packing instructions

Typed from the first import. These are the calls behind the demo above.