Excel files in the browser, looking like Excel files.

EatSheet
Fonts, colours, borders, merged cells, conditional formatting and recalculated formulas, in a 27 KB library that does its parsing in a Web Worker.
npm install eatsheet50,000-row workbook
EatSheet
SheetJS
Open in Node
128 ms
546 ms
First view in the browser
131 ms
1,142 ms
Longest page freeze
none
1,141 ms
Memory
16 MB
85 MB
Gzipped size
27 KB
328 KB
Plain-text workbook, compared with SheetJS 0.20.3 on one modern computer. Figures are medians of 7 benchmark runs.
import { openWorkbook } from 'eatsheet/worker';
import 'eatsheet/eatsheet.css';
const book = await openWorkbook(file);
container.innerHTML = (await book.render(0)).html;
Good fit: previewing files people upload, in a data room, a document portal or an internal tool.
Use SheetJS instead if you need to write files, or read .xls, .xlsb or .ods.