Ships to the client
File inputs, fetch responses, and Blob downloads. No separate browser bundle.
fxzero-dependency XLSX · v2.4.5
A modern XLSX reader and writer for TypeScript. Promise-based, tree-shakeable, and ready for the browser, Node, and the edge. Read, write, convert, and style workbooks without carrying a spreadsheet framework.
import { arrayToSheet, createWorkbook, styleRange, write } from "xlsx-format" const sheet = arrayToSheet(reportRows)styleRange(sheet, "A2:D2", headerStyle) const bytes = await write(book, { type: "array", cellStyles: true })If the job is XLSX, CSV, and polished report exports, xlsx-format keeps the useful parts in a focused bundle without requiring a spreadsheet framework.
Branded workbook downloads with fonts, fills, borders, number formats, merged titles, column widths, row heights, totals, and frozen panes.
Cell objects keep the familiar shape. Add await, switch to named imports, move from sheet_to_json to sheetToJson. Done.
CSV formula-like fields are escaped by default. HTML export sanitizes unsafe link targets unless you explicitly opt out.
Move between worksheets, JSON, arrays of arrays, CSV, TSV, and HTML tables with typed utilities built for modern runtimes.
xlsx-format reads and writes in-memory sources: Uint8Array, ArrayBuffer, Node Buffer, base64, binary strings, CSV text, and HTML tables. Pair it with whatever I/O you already have.
File inputs, fetch responses, and Blob downloads. No separate browser bundle.
Async read and write around Node's fs, S3, or any byte source you already use.
No node:fs import and no dependency chain, so Workers and Deno Deploy just work.
Keep the workbook framework out of your bundle. Your users download less, your build stays fast.
npm install xlsx-format