A SheetJS alternative for showing Excel files
EatSheet is a free, open-source alternative to SheetJS for showing Excel files in the browser. It opens XLSX, CSV and TSV files in a Web Worker and renders them with their fonts, colours, borders and conditional formatting, in 27 KB gzipped. It reads files and doesn't write them.
EatSheet vs SheetJS, free edition
EatSheet 0.2
SheetJS 0.20.3
Open a 50,000-row XLSX in Node
128–140 ms
546–549 ms
First view in the browser
131–142 ms
1,000–1,142 ms
Longest page freeze
None
1,000–1,141 ms
Memory for that workbook
16–24 MB
76–85 MB
Gzipped size
27 KB
328 KB
Fonts, fills and borders in HTML
Yes
No, styling is in SheetJS Pro
Conditional formatting
Yes
No
Recalculates formulas
Common functions
No, shows saved results
Figures are medians of 7 benchmark runs. Times vary by machine, so compare the ratios rather than the milliseconds. See the full benchmarks.
Switch from SheetJS
npm install eatsheetSheetJS
EatSheet
XLSX.read(data)await read(data)wb.SheetNamesbook.sheets.map(s => s.name)wb.Sheets[name]book.sheet(name)ws['B2']?.vsheet.cell('B2')?.valuews['!merges']sheet.mergesXLSX.utils.sheet_to_html(ws)renderSheet(sheet)Frequently asked questions
Is EatSheet a SheetJS alternative?
Yes, if you only need to read and show files. EatSheet opens XLSX, CSV and TSV and renders them with their styles. It doesn't write files or read .xls, .xlsb or .ods.
Is EatSheet free?
Yes. It's open source under the Apache-2.0 license, with no paid edition, and styling is included.
Are my files uploaded anywhere?
No. EatSheet parses files on the device in a Web Worker and sends no telemetry. It only makes a network request if you give it a URL to load.
Does it work with React, Vue, Next.js, Angular or Svelte?
Can it edit spreadsheets?
No. EatSheet is a viewer. If people need to change cells, use a spreadsheet editor component instead.
More: SheetJS vs ExcelJS vs EatSheet · Show an uploaded Excel file · React · Vue · Next.js · Angular · Svelte · Electron · Troubleshooting · Security · Docs · Benchmarks