Run your excel sheet in the browser!
npm install svelte-sheetsUltra fast excel sheets in the browser. Hugely inspired by JExcel, built on XLSX shoulders.
=> Find a live example Here
Making excel sheets a reality in the browser can be incredibly difficult, keeping good performance while drawing and editing large amount of data in the DOM is the ultimate challenge for a web developper.
The best implementation I could find was the awesome vanillajs jexcel by Paul Hodel.
However, opening really big spreadsheet would still block the JS thread for a minute or two.
Following Rich Harris talk about reactivity, I decided to take the idea behind Jexcel and adapt it to Svelte, making use of a Virtual List to keep the DOM small and light at all times.
You will need to have typescript svelte-preprocess enabled in your webpack/rollup configuration
npm i -S svelte-sheets
``html
`
Alternatively you can use the toolbar to open any kind of excel files
`html
`
You can configure the table such as height and many other things with the options props:
`js``
let options = {
tableHeight: "90vh",
defaultColWidth: "50px",
};
Many of this options will be implemented later, so expect most of them to be unresponsible.
- Make a svelte REPL demonstrating the library (awaiting repl typescript support)
- ✅ Undo/Redo (mapping keyboard shortcuts)
- ✅ shift+click should extend the selection
- ✅ Resizing rows/columns
- Filtering
- ✅ Copy/Paste
- Comments on cells
- Support more that number, string or boolean in cells. let's say charts, datepickers etc...
- ✅ Implement a tooltip when right clicking a cell with a list of actions
- All other excel features you can think of