Extend UI Svelte

Docs / Editors / XLSX Editor

XLSX Editor

Svelte 5 port of the Extend UI xlsx-editor. Double-click a cell to edit it, type =SUM(C2:C6) for a local formula, style the selection, then export back to .xlsx.

Fixture workbook

sample.xlsx

No workbook to edit

Pass a workbook URL with src or bytes with data.

Last edit: none yet

Last export: none yet

Dark mode

sample.xlsx

No workbook to edit

Pass a workbook URL with src or bytes with data.

Empty state

workbook.xlsx

No workbook to edit

Pass a workbook URL with src or bytes with data.

Differences from upstream

Also exported as XlsxEditorPreview, the upstream name.

  • Formulas are kept from the file and shown in the formula bar; each shows the file's saved value until it or one of its inputs is edited. Then SUM, AVERAGE, MIN, MAX, COUNT, PRODUCT, TRUE/FALSE, and arithmetic over same-sheet references recalculate locally with Excel's argument rules; other formulas (cross-sheet references, other functions, comparisons) keep the saved value and do not recalculate.
  • Styling is limited to bold, horizontal alignment, and fill, and is not written on export (the community SheetJS writer drops styles). Values, formulas, and cell addresses are kept.
  • Added props: data, showToolbar, rowHeight, height, overscan, onCellChange, onExport, plus an Export .xlsx button.
  • The dark-mode control is a toolbar switch instead of a workbook actions menu item. It only calls onIsDarkChange.
  • Not ported: italic, underline, strikethrough, font family and size, text color, borders, number formats, merge cells, wrap text, vertical alignment, undo/redo, add/remove sheet, cell formatting from the file, frozen panes, column resize, zoom, the upload menu, and read-only mode for files over 5 MB.
  • Exports: XlsxEditorSurface (a react-xlsx context surface) is not ported; XlsxEditor is self-contained. Sheet tabs reuse the viewer's WorkbookSheetTabs, as upstream does.
  • Keyboard follows upstream: the grid is one Tab stop; the arrows, Ctrl/Cmd+arrows, Home/End, PageUp/PageDown, Tab/Shift+Tab, and Enter/Shift+Enter move the active cell; typing or F2 edits; Delete or Backspace clears. In the cell editor Enter commits and stays, Escape cancels, and the arrows commit and move. Not ported: range selection (Shift+arrows move instead of extending), undo/redo, copy/paste, and the column sort menu (upstream WorkbookTableHeaderMenu).

Back to all components