Skip to main content

Components

SheetXL's UI is built from a set of composable React Components. These can be used as standalone components or assembled together to support a complete spreadsheet experience.

An overview of the StandaloneWorkbook component is shown below:

<StandaloneWork/><Workbook/><RangeEditor/><FormulaBar/><SheetCellEditor/><StatusBar/><SheetZoomScale/><WorkbookToolbars/><Sheet/><SheetCellEditor/><SheetCellRenderer/><WorkbookStrip/>

Spreadsheet Components

ComponentDescription
StandaloneWorkbookFully functional application that can be easily embedded and/or extended using Material-UI and React.
WorkbookAccepts a WorkbookModel and displays an ISheetModel and other editing artifacts.
WorkbookToolbarsCollection of WorkbookToolbars that contain CommandButtons
FormulaBarA Wrapper around a SheetCellEditor.
RangeEditorDisplays current range and allows for selecting and creating NamedRanges.
SheetShows a collection of SheetCellRenders and SheetCellEditors as well as Headers.
SheetCellRendererA read only rendering of a value an ICellModel.
SheetCellEditorAn editor that allows for updating an ICellModel.
WorkbookStripContains a set of WorkbookTabs to allow navigation between Sheets.
StatusbarA Collection of StatusbarItems.
SheetZoomScaleAn editor for selecting a zoom scale.

Spreadsheet Dialogs

Additionally SheetXL has a number of dialog specific for working with spreadsheets.

DialogDescription
FindReplaceWindowFind/Replace items in the Workbook.
NumberFormatDialogAllow for editing of the number format.
SortDialogAdvanced and multi-level sorting.

Advanced Components

ComponentDescription
AdjustedColorPanelColor-chooser that is theme aware.
PresetStylesSelectorFor Previewing, selecting, and modifying predefined styles.
ThemeSelectPanelFor previewing and selecting current theme from a list of predefined themes.
ShortcutKeysPanelDisplay the shortcut keys associated with a CommandMap.

Common Dialogs

DialogDescription
OptionsDialogConfigurable options dialog, used for 'Goto', 'Rename', confirmation prompts, and other simple inputs.

Configuring Components

Like all React components SheetXL components are configured using properties; see API Reference for the specific properties available for each component. Most components also support the ref property; when they do they always expose the underlying component and additional imperative API calls as defined in the Typescript interface following the convention <Component>Attributes.

App Themes

SheetXL has two types of themes.

  1. App Themes are used to render the application and are configured via CSS or MUIThemeProvider.
  2. Doc Themes are used for render the spreadsheet and are configured via the models and styles and saved within the document.

App Themes are configured using Material UI's MUIThemeProvider component.

SheetXL with MUIThemeProvider
/**
* Wrapping a SheetXL component inside of a MUIThemeProvider.
*/
<ThemeProvider theme={currentTheme}>
<StandaloneWorkbook />
</ThemeProvider>

A working example is available at CodeSandbox/custom-app-theme.

App theme extensions

SheetXL has a thin layer of customized MUI components known as 'Exhibit Components'. These extend MUI components to provide functionality and styling needed for SheetXL. The Exhibit Components are MIT open-sourced and can be found at github.

Doc Themes

While Doc Themes are used for rendering they managed are associated with the data so they are managed via models themes.