Core Features
Univer Sheets core features include a spreadsheet editor, formula engine, rendering engine, number formatting engine, design system, and UI component library. Together, they form a powerful platform for handling spreadsheets, supporting various formats and complex operations.
Features
Univer Sheets core features include:
- Spreadsheet Rendering: Supports rendering of Univer Sheets, including cursor and selection drawing.
- Cell Styling: Allows styling of cells in the spreadsheet, including font, color, borders, and alignment.
- Formula Calculation: Supports adding and calculating formulas in the spreadsheet, covering nearly all Excel functions, including mathematical, statistical, text, and date functions.
- Number Formatting: Enables formatting of numbers in the spreadsheet, including currency, percentage, date formats, etc.
- Gridlines and Frozen Panes: Supports displaying gridlines and frozen panes, making it easier for users to view and edit large datasets.
- Default Styles: Allows setting default styles for the spreadsheet, including default font, size, color, etc.
- Plugin System: Supports a plugin system that allows for custom plugins, such as formula plugins, image plugins, chart plugins, etc. This is also one of the core architectural capabilities of Univer.
Plugin Mode
Installation
pnpm add @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/ui @univerjs/docs @univerjs/docs-ui @univerjs/sheets @univerjs/sheets-ui @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-uinpm install @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/ui @univerjs/docs @univerjs/docs-ui @univerjs/sheets @univerjs/sheets-ui @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-uiyarn add @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/ui @univerjs/docs @univerjs/docs-ui @univerjs/sheets @univerjs/sheets-ui @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-uibun add @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/ui @univerjs/docs @univerjs/docs-ui @univerjs/sheets @univerjs/sheets-ui @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-uiUsage
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import DesignEnUS from '@univerjs/design/locale/en-US'import { UniverDocsPlugin } from '@univerjs/docs'import { UniverDocsUIPlugin } from '@univerjs/docs-ui'import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'import { UniverRenderEnginePlugin } from '@univerjs/engine-render'import { UniverSheetsPlugin } from '@univerjs/sheets'import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'import SheetsEnUS from '@univerjs/sheets/locale/en-US'import { UniverUIPlugin } from '@univerjs/ui'import UIEnUS from '@univerjs/ui/locale/en-US'import '@univerjs/design/lib/index.css'import '@univerjs/ui/lib/index.css'import '@univerjs/docs-ui/lib/index.css'import '@univerjs/sheets-ui/lib/index.css'import '@univerjs/sheets-formula-ui/lib/index.css'import '@univerjs/sheets-numfmt-ui/lib/index.css'import '@univerjs/engine-formula/facade'import '@univerjs/ui/facade'import '@univerjs/docs-ui/facade'import '@univerjs/sheets/facade'import '@univerjs/sheets-ui/facade'import '@univerjs/sheets-formula/facade'import '@univerjs/sheets-numfmt/facade'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( DesignEnUS, UIEnUS, DocsUIEnUS, SheetsEnUS, SheetsUIEnUS, SheetsFormulaUIEnUS, SheetsNumfmtUIEnUS, ), },})univer.registerPlugin(UniverRenderEnginePlugin)univer.registerPlugin(UniverFormulaEnginePlugin)univer.registerPlugin(UniverUIPlugin, { container: 'app',})univer.registerPlugin(UniverDocsPlugin)univer.registerPlugin(UniverDocsUIPlugin)univer.registerPlugin(UniverSheetsPlugin)univer.registerPlugin(UniverSheetsUIPlugin)univer.registerPlugin(UniverSheetsFormulaPlugin)univer.registerPlugin(UniverSheetsFormulaUIPlugin)univer.registerPlugin(UniverSheetsNumfmtPlugin)univer.registerPlugin(UniverSheetsNumfmtUIPlugin)Plugins and Configuration
@univerjs/core
This plugin is the core library of Univer, providing basic functionalities such as creating Univer instances, themes, and languages.
interface UniverParameter { // Univer instance theme, default is `defaultTheme` theme: IStyleSheet // Whether to use dark mode, default is false darkMode?: boolean // The locale of the Univer instance locale: LocaleType // The locale objects to use, with keys as locale types and values as corresponding locale objects locales: ILocales // The log level of the Univer instance logLevel?: LogLevel}Reference: Univer
@univerjs/engine-render
This plugin is the rendering engine of Univer, responsible for rendering, scrollbars, cursor, and selection rendering. It provides the UniverRenderEnginePlugin.
Reference: @univerjs/engine-render
@univerjs/engine-formula
This plugin is the formula engine of Univer, responsible for calculating and processing formulas. It provides the UniverFormulaEnginePlugin.
Reference: @univerjs/engine-formula
@univerjs/design
This plugin is the design system of Univer, providing all basic components and styles.
See: UI Chapter
@univerjs/ui
This plugin is the UI foundation of Univer. It provides the UniverUIPlugin.
The UniverUIPlugin provides some configuration options that can be used for basic layout configuration.
interface IUniverUIConfig { // Container element, can be a string or a DOM element container?: string | HTMLElement // Whether to show the header header?: boolean // Whether to show the header toolbar toolbar?: boolean // The type of the header toolbar. 'classic': default classic mode; 'grid': two-row grid mode; 'collapsed': compact mode; 'simple': ungrouped mode ribbonType?: RibbonType // Whether to show the context menu contextMenu?: boolean // Whether to disable auto focus disableAutoFocus?: true // Dependency injection override configuration override?: DependencyOverride // Menu configuration menu?: MenuConfig}The menu configuration option can be used to simply set the display or hidden state of certain specific menu items:
univer.registerPlugin(UniverSheetsUIPlugin, { menu: { 'sheet.command.set-range-bold': { hidden: true, }, 'sheet.command.set-range-italic': { hidden: true, disabled: true, }, },})Here, 'sheet.command.set-range-bold' and 'sheet.command.set-range-italic' are menu item IDs. You can refer to the Menu Item ID List below.
Reference: @univerjs/ui
@univerjs/docs
This plugin is the core plugin of Univer Docs. It provides the UniverDocsPlugin.
Reference: @univerjs/docs
@univerjs/docs-ui
This plugin is the UI plugin of Univer Docs, which includes UI components and interactions for the document editor. It provides the UniverDocsUIPlugin.
Reference: @univerjs/docs-ui
@univerjs/sheets
This plugin is the core plugin of Univer Sheets, providing the core functionalities of the spreadsheet editor. It provides the UniverSheetsPlugin.
The UniverSheetsPlugin provides some configuration options that can be used for the spreadsheet editor configuration.
interface IUniverSheetsConfig { // If both row style and column style are set, whether row style precedes column style isRowStylePrecedeColumnStyle?: boolean // Whether auto height applies to merged cells autoHeightForMergedCells?: boolean /** * Whether synchronize the frozen state to other users in real-time collaboration. * @default true */ freezeSync?: boolean}Reference: @univerjs/sheets
@univerjs/sheets-ui
This plugin is the UI plugin of Univer Sheets, which includes UI components and interactions for the spreadsheet editor. It provides the UniverSheetsUIPlugin.
The UniverSheetsUIPlugin provides some configuration options that can be used for the spreadsheet editor UI configuration.
interface IUniverSheetsUIConfig { // Whether to show the footer. footer?: | false | { // The sheet bar is the sub-sheet manager, including adding/switching/deleting sub-sheets. sheetBar?: boolean // The statistic bar includes statistics of the current selection, such as count, sum, average, etc. statisticBar?: boolean // The bottom menu includes options like highlight, gridlines, etc. menus?: boolean // The zoom slider at the bottom. zoomSlider?: boolean /** * The config of the add sheet button in the sheet bar. */ addSheetButtonConfig?: { /** * Whether to show the add sheet button in the sheet bar. * When `footer` or `footer.sheetBar` is false, this config will not work because the sheet bar will not be rendered. * @default true */ show?: boolean /** * The default row count of the new sheet created by the add sheet button. * @default 1000 */ defaultRowCount?: number /** * The default column count of the new sheet created by the add sheet button. * @default 20 */ defaultColumnCount?: number } } // Whether to show the formula bar formulaBar?: boolean clipboardConfig?: { // Whether to show the paste options button after paste operation hidePasteOptions?: boolean } // The configuration for the scroll bar scrollConfig?: IScrollBarProps /** * Strategy for showing the protected range shadow. * - true or 'always': Show shadow for all protected ranges (default behavior) * - 'non-editable': Only show shadow for ranges that cannot be edited (Edit permission is false) * - 'non-viewable': Only show shadow for ranges that cannot be viewed (View permission is false) * - false or 'none': Never show shadow for protected ranges * @default true */ protectedRangeShadow?: boolean | 'always' | 'non-editable' | 'non-viewable' | 'none' // Whether to disable the force string alert. disableForceStringAlert?: boolean // Whether to disable the force string mark. disableForceStringMark?: boolean}Reference: @univerjs/sheets-ui
Mobile support
First configure the mobile editor. In this page’s plugin-mode setup, replace the desktop registrations below with their mobile exports from the same packages, before opening a document. Keep the model plugins, styles, locales and Facade imports; do not register both variants.
| Package | Desktop registration | Mobile registration |
|---|---|---|
@univerjs/sheets-formula-ui | UniverSheetsFormulaUIPlugin | UniverSheetsFormulaMobileUIPlugin |
@univerjs/sheets-numfmt-ui | UniverSheetsNumfmtUIPlugin | UniverSheetsNumfmtMobileUIPlugin |
Preset Mode
Installation
pnpm add @univerjs/presets @univerjs/preset-sheets-corenpm install @univerjs/presets @univerjs/preset-sheets-coreyarn add @univerjs/presets @univerjs/preset-sheets-corebun add @univerjs/presets @univerjs/preset-sheets-coreUsage
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS), }, presets: [UniverSheetsCorePreset()],})univerAPI.createWorkbook({})Presets and Configuration
@univerjs/presets
This preset provides the createUniver method to create a Univer application, and exposes all methods and objects from @univerjs/core and @univerjs/design.
The createUniver method accepts a configuration object that includes options for theme, language, presets, etc. It returns a Univer instance univer and an FUniver instance univerAPI for calling the Facade API.
interface CreateUniverParameter { // Univer instance theme, default is `defaultTheme` theme: IStyleSheet // Whether to use dark mode, default is false darkMode?: boolean // The locale of the Univer instance locale: LocaleType region?: LocaleType // The locale objects to use, with keys as locale types and values as corresponding locale objects locales: ILocales // The log level of the Univer instance logLevel?: LogLevel // The list of presets to use. presets: IPresets[] // The list of plugins to use. plugins: IPlugins[]}Reference: createUniver
@univerjs/preset-sheets-core
This preset is the core preset of Univer Sheets, which includes the necessary core features for document editing, formula engine, rendering engine, etc.
interface IUniverSheetsCorePresetConfig { // Container element, can be a string or a DOM element container?: string | HTMLElement // Whether to show the header header?: boolean // Whether to show the header toolbar toolbar?: boolean // The type of the header toolbar. 'classic': default classic mode; 'grid': two-row grid mode; 'collapsed': compact mode; 'simple': ungrouped mode ribbonType?: RibbonType // Whether to show the footer footer?: | false | { // Sheet bar is the sub-sheet manager, including adding/switching/deleting sub-sheets. sheetBar?: boolean // Statistic bar includes statistics of the current selection, such as count, sum, average, etc. statisticBar?: boolean // The bottom menu includes options like highlight, gridlines, etc. menus?: boolean // The zoom slider at the bottom. zoomSlider?: boolean /** * The config of the add sheet button in the sheet bar. */ addSheetButtonConfig?: { /** * Whether to show the add sheet button in the sheet bar. * When `footer` or `footer.sheetBar` is false, this config will not work because the sheet bar will not be rendered. * @default true */ show?: boolean /** * The default row count of the new sheet created by the add sheet button. * @default 1000 */ defaultRowCount?: number /** * The default column count of the new sheet created by the add sheet button. * @default 20 */ defaultColumnCount?: number } } // Whether to show the context menu contextMenu?: boolean // Whether to disable auto focus disableAutoFocus?: true // Menu configuration menu?: MenuConfig sheets?: { // If both row style and column style are set, whether row style precedes column style isRowStylePrecedeColumnStyle?: boolean // Whether auto height applies to merged cells autoHeightForMergedCells?: boolean /** * Whether synchronize the frozen state to other users in real-time collaboration. * @default true */ freezeSync?: boolean clipboardConfig?: { // Whether to show the paste options button after paste operation hidePasteOptions?: boolean } // The configuration for the scroll bar scrollConfig?: IScrollBarProps /** * Strategy for showing the protected range shadow. * - true or 'always': Show shadow for all protected ranges (default behavior) * - 'non-editable': Only show shadow for ranges that cannot be edited (Edit permission is false) * - 'non-viewable': Only show shadow for ranges that cannot be viewed (View permission is false) * - false or 'none': Never show shadow for protected ranges * @default true */ protectedRangeShadow?: boolean | 'always' | 'non-editable' | 'non-viewable' | 'none' // Whether to disable the force string alert. disableForceStringAlert?: boolean // Whether to disable the force string mark. disableForceStringMark?: boolean } // ... More configuration options}The menu configuration option can be used to simply set the display or hidden state of certain specific menu items:
UniverSheetsCorePreset({ menu: { 'sheet.command.set-range-bold': { hidden: true, }, 'sheet.command.set-range-italic': { hidden: true, disabled: true, }, },})Here, 'sheet.command.set-range-bold' and 'sheet.command.set-range-italic' are menu item IDs. You can refer to the Menu Item ID List below.
Reference: @univerjs/preset-sheets-core
Toolbar Layout and RibbonType
By configuring the ribbonType property in IUniverSheetsCorePresetConfig or IUniverUIConfig, you can set the layout of the toolbar.
ribbonType supports the following four modes:
classic: Default classic mode, with groups on top and the toolbar laid out below, suitable for users accustomed to traditional layouts.grid: Grid mode, retaining tabs at the top and arranging each group's tools below in a two-row grid, suitable for desktop layouts that need more tools visible at once.collapsed: Compact mode, where groups and the toolbar are laid out in the same row, suitable for scenarios with limited vertical screen space.simple: Ungrouped mode, where all tools are placed in a flat list, suitable for users familiar with toolbar functions.
When a grid Ribbon no longer fits the container, complete groups move into More, where their controls use a compact layout. Enlarging the container restores the groups. This happens automatically with the available width; keep the existing gridLayout configuration for the main Ribbon. The overflow menu retains the same commands, disabled states, and permission checks.
Menu order and grid layout
Use the same menu configuration at initialization and with univerAPI.updateMenuConfig() at runtime. Keys are Ribbon tab keys (such as ribbon.insert), group keys (such as ribbon.start.format), or menu item IDs.
order sorts siblings in ascending order: tabs within the Ribbon, groups within a tab, and items within a group or submenu. It does not move a menu into another group. You can use RibbonPosition and the group enums exported by @univerjs/ui instead of string keys.
Initialization
Choose your integration mode and merge these options into the existing initialization. Keep your other plugins, locale, theme, and container settings; do not register the same plugin twice.
import type { MenuConfig } from '@univerjs/ui'const menu: MenuConfig = { 'ribbon.insert': { order: -1 }, 'ribbon.start.format': { order: -1 }, 'sheet.command.set-range-font-family': { order: 0, gridLayout: { row: 1, column: 1, width: 160 }, },}import { UniverUIPlugin } from '@univerjs/ui'univer.registerPlugin(UniverUIPlugin, { ribbonType: 'grid', menu,})import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import { createUniver } from '@univerjs/presets'const { univerAPI } = createUniver({ presets: [ UniverSheetsCorePreset({ ribbonType: 'grid', menu, }), ],})Runtime updates
The public Facade merges the changes and refreshes the UI immediately. Unspecified properties retain their previous values or schema defaults, and overrides also apply to menus registered later. In plugin mode, import @univerjs/ui/facade first.
import '@univerjs/ui/facade'univerAPI.updateMenuConfig({ 'sheet.command.set-range-bold': { order: 0, gridLayout: { row: 2, column: 2 }, }, 'sheet.command.set-range-italic': { gridLayout: { row: 2, column: 1 }, },})gridLayout only applies to ribbonType: 'grid'. Each group has two rows; row and column start at 1. Explicit coordinates control placement, so changing only order does not move an explicitly positioned button. Update both buttons when swapping positions to avoid overlap. Optional fields include rowSpan, columnSpan, showLabel, width, and iconSize; sizes are in pixels. See IRibbonGridLayout for constraints and defaults.
Custom menu placement
createMenu() and createSubmenu() also accept order and gridLayout. For a submenu, these fields position its Ribbon trigger, not the popup contents. For example, add a button in the third column of the History group:
univerAPI .createMenu({ id: 'custom-action', title: 'Custom action', action: () => console.log('Custom action clicked'), order: 4, gridLayout: { row: 1, column: 3, showLabel: true, width: 96 }, }) .appendTo('ribbon.start.history')Menu Item ID List
The tables below group desktop menu items by location. The same item can appear in multiple places, and row and column headers share some cell context menu items. Feature menus require the corresponding plugins; visibility also depends on permissions and the current selection. IDs used only on mobile are listed separately at the end.
data-u-command attribute on a menu item’s DOM element to get its ID. Use this menu item ID in menu configuration; it can differ from the command ID that the item executes.Toolbar Menu Items
| Menu Item ID | Menu Item Name |
|---|---|
| univer.command.undo | Undo |
| univer.command.redo | Redo |
| ui.operation.activate-format-painter | Paint format |
| sheet.command.set-range-bold | Bold |
| sheet.command.set-range-italic | Italic |
| sheet.command.set-range-underline | Underline |
| sheet.command.set-range-stroke | Strikethrough |
| sheet.command.set-range-font-family | Font |
| sheet.command.set-range-fontsize | Font size |
| sheet.command.set-range-text-color | Text color |
| sheet.command.set-background-color | Fill color |
| sheet.command.set-border-basic | Border |
| sheet.command.set-horizontal-text-align | Horizontal align |
| sheet.command.set-vertical-text-align | Vertical align |
| sheet.command.set-text-wrap | Text wrap |
| sheet.command.set-text-rotation | Text rotate |
| sheet.command.add-worksheet-merge | Merge cells |
| sheet.command.add-worksheet-merge-all | Merge cells - Merge all |
| sheet.command.add-worksheet-merge-vertical | Merge cells - Vertical merge |
| sheet.command.add-worksheet-merge-horizontal | Merge cells - Horizontal merge |
| sheet.command.remove-worksheet-merge | Merge cells - Cancel merge |
| sheet.operation.open.conditional.formatting.panel | Conditional Formatting |
| formula-ui.operation.insert-function.common | Common Functions |
| formula-ui.operation.more-functions | Functions - More Functions |
| sheet.menu.sheets-sort | Sort |
| sheet.command.sort-range-asc | Sort - Ascending |
| sheet.command.sort-range-asc-ext | Sort - Expand Ascending |
| sheet.command.sort-range-desc | Sort - Descending |
| sheet.command.sort-range-desc-ext | Sort - Expand Descending |
| sheet.command.sort-range-custom | Sort - Custom Sort |
| sheet.menu.image | Image |
| sheet.command.insert-float-image | Image - Float Image |
| sheet.command.insert-cell-image | Image - Cell Image |
| sheet.command.numfmt.set.currency | Currency |
| sheet.command.numfmt.add.decimal.command | Increase decimal places |
| sheet.command.numfmt.subtract.decimal.command | Decreasing decimal places |
| sheet.command.numfmt.set.percent | Percentage |
| sheet.operation.open.numfmt.panel | Number format |
| sheet.menu.data-validation | Data validation |
| data-validation.operation.open-validation-panel | Data validation - Data validation management |
| data-validation.command.addRuleAndOpen | Data validation - Add Rule |
| sheet.command.smart-toggle-filter | Toggle Filter |
| sheet.command.clear-filter-criteria | Toggle Filter - Clear Filter Conditions |
| sheet.command.re-calc-filter | Toggle Filter - Re-calc Filter Conditions |
| sheet.operation.open-pivot-table-range-selector-panel | Pivot Table |
| sheet.menu.print | |
| sheet.operation.print-open | Print - Print |
| sheet.operation.open-print-grid-sidebar | Print - Print Layout |
| sheet.command.menu-insert-chart | Insert chart |
| sheet.command.add-range-protection-from-toolbar | Protection |
| univer.operation.toggle-edit-history | Edit History |
| sheet.operation.open-sparkline-selector | Sparkline |
| sheet.operation.toggle-comment-panel | Comment Management |
| sheet.operation.insert-hyper-link-toolbar | Insert Link |
| ui.operation.open-find-dialog | Find & Replace |
| base-ui.operation.toggle-shortcut-panel | Toggle Shortcut Panel |
| sheet.command.add-data-bar-conditional-rule | Data Bar |
| sheet.command.add-icon-set-conditional-rule | Icon Set |
| sheet.operation.toggle-crosshair-highlight | Crosshair Highlight |
| data-validation.command.insert-quick-rule | Checkbox |
| sheet.menu.quick-dropdown | Dropdown |
| sheet.menu.quick-date | Date |
| sheet.menu.worksheet-background-image | Background Image |
| sheet.command.add-worksheet-background-image | Add Background Image |
| sheet.command.delete-worksheet-background-image | Delete Background Image |
| formula-ui.operation.insert-function.financial | Financial |
| formula-ui.operation.insert-function.logical | Logical |
| formula-ui.operation.insert-function.text | Text |
| formula-ui.operation.insert-function.date | Date & Time |
| formula-ui.operation.insert-function.lookup | Lookup & Reference |
| formula-ui.operation.insert-function.math | Math & Trig |
| formula-ui.operation.insert-function.statistical | Statistical |
| formula-ui.operation.insert-function.engineering | Engineering |
| formula-ui.operation.insert-function.information | Information |
| formula-ui.operation.insert-function.database | Database |
| sheets-formula-ui.operation.calculation-options | Calculation Options |
| sheet.operation.open-table-selector | Table |
| sheet.menu.paste | Paste |
| sheet.command.set-range-font-increase | Increase font size |
| sheet.command.set-range-font-decrease | Decrease font size |
| sheet.command.reset-range-text-color | Text color - Reset |
| sheet.command.reset-background-color | Fill color - Reset |
| sheet.command.set-shrink-to-fit | Shrink to fit |
| sheet.toolbar.sheet-frozen | Freeze |
| sheet.menu.zoom-ratio | Zoom |
| sheet.command.toggle-gridlines | Toggle Gridlines |
| base-ui.operation.toggle-fullscreen | Fullscreen |
| ui.command.clear-formatting | Clear formatting |
| ui.operation.open-feature-search | Search features |
| sheet.toolbar.dimension-outline.group | Group |
| sheet.command.menu-insert-pivot-chart | Pivot Chart |
| sheet.pivot-chart.insert | Pivot Chart |
| sheet.command.menu-insert-shape | Insert Shape |
| sheet.operation.open-shape-object-list-panel | Layers |
| sheet.operation.open-slicer-insert-dialog | Insert slicer |
| sheet.menu.insert-timeline | Insert timeline |
Context Menu Items
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.command.copy | Copy |
| sheet.command.cut | Cut |
| sheet.command.paste | Paste |
| sheet.menu.copy-special | Copy Special |
| sheet.command.copy-formula-only | Copy Special - Copy Formula Only |
| sheet.menu.paste-special | Paste Special |
| sheet.command.paste-value | Paste Special - Paste Value |
| sheet.command.paste-format | Paste Special - Paste Format |
| sheet.command.paste-col-width | Paste Special - Paste Column Width |
| sheet.command.paste-besides-border | Paste Special - Paste Besides Border Styles |
| sheet.command.paste-formula | Paste Special - Paste Formula |
| sheet.menu.clear-selection | Clear |
| sheet.command.clear-selection-content | Clear - Clear Contents |
| sheet.command.clear-selection-format | Clear - Clear Formats |
| sheet.command.clear-selection-all | Clear - Clear All |
| sheet.contextMenu.text-to-number | Text to Number |
| sheet.menu.cell-insert | Insert |
| sheet.command.insert-row-before | Insert - Insert Row Before |
| sheet.command.insert-col-before | Insert - Insert Column Before |
| sheet.command.insert-range-move-right-confirm | Insert - Move Right |
| sheet.command.insert-range-move-down-confirm | Insert - Move Down |
| sheet.menu.delete | Delete |
| sheet.command.remove-row-confirm | Delete Selected Row |
| sheet.command.remove-col-confirm | Delete Selected Column |
| sheet.command.delete-range-move-left-confirm | Delete - Move Left |
| sheet.command.delete-range-move-up-confirm | Delete - Move Up |
| sheet.menu.sheet-frozen | Freeze |
| sheet.command.set-selection-frozen | Freeze - Freeze |
| sheet.command.set-row-frozen | Freeze - Freeze to this row |
| sheet.command.set-col-frozen | Freeze - Freeze to this column |
| sheet.command.cancel-frozen | Freeze - Cancel freeze |
| sheet.contextMenu.permission | Protect Rows And Columns |
| sheet.command.add-range-protection-from-context-menu | Protect Rows And Columns - Add Protection Range |
| sheet.command.set-range-protection-from-context-menu | Protect Rows And Columns - Set Protection Range |
| sheet.command.delete-range-protection-from-context-menu | Protect Rows And Columns - Remove Protection Range |
| sheet.command.view-sheet-permission-from-context-menu | Protect Rows And Columns - View All Protection Ranges |
| sheet.menu.sheets-sort-ctx | Sort |
| sheet.command.sort-range-asc-ctx | Sort - Ascending |
| sheet.command.sort-range-asc-ext-ctx | Sort - Expand Ascending |
| sheet.command.sort-range-desc-ctx | Sort - Descending |
| sheet.command.sort-range-desc-ext-ctx | Sort - Expand Descending |
| sheet.command.sort-range-custom-ctx | Sort - Custom Sort |
| sheet.operation.show-comment-modal | Add Comment |
| sheet.operation.insert-hyper-link | Insert Link |
| sheet.operation.screenshot | Copy as picture |
| sheet.command.save-cell-images | Save Cell Images |
| sheet.operation.add-note-popup | Add Note |
| sheet.command.delete-note | Delete Note |
| sheet.command.toggle-note-popup | Show/Hide Note |
| sheet.table.context-insert_menu-id | Insert Table |
| sheet.command.table-insert-row | Insert Table Row |
| sheet.command.table-insert-col | Insert Table Column |
| sheet.table.context-remove_menu-id | Remove Table |
| sheet.command.table-remove-row | Remove Table Row |
| sheet.command.table-remove-col | Remove Table Column |
| sheet.command.set-first-row-frozen | Freeze first row |
| sheet.command.set-first-column-frozen | Freeze first column |
| sheet.sparkline.context-menu-id | Sparkline |
| sheet.operation.open-sparkline-panel | Edit Sparkline |
| sheet.command.remove-sparkline | Remove Sparkline |
Context Menu Items - Row Header
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.command.insert-multi-rows-above | Insert Row Before |
| sheet.command.insert-multi-rows-after | Insert Row After |
| sheet.command.hide-row-confirm | Hide Selected Row |
| sheet.command.set-selected-rows-visible | Show Hide Row |
| sheet.command.set-row-height | Row Height |
| sheet.command.set-row-is-auto-height | Fit for data |
| sheet.row-header-menu.sheet-frozen | Freeze |
| sheet.contextMenu.dimension-outline | Group |
Context Menu Items - Column Header
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.command.insert-multi-cols-before | Insert Column Before |
| sheet.command.insert-multi-cols-right | Insert Column After |
| sheet.command.hide-col-confirm | Hide Selected Column |
| sheet.command.set-selected-cols-visible | Show Hide Column |
| sheet.command.set-worksheet-col-width | Column Width |
| sheet.command.set-col-auto-width | Fit for data |
| sheet.column-header-menu.sheet-frozen | Freeze |
| sheet.contextMenu.dimension-outline | Group |
Context Menu Items - Sheet Tabs
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.command.remove-sheet-confirm | Delete |
| sheet.command.copy-sheet | Copy |
| sheet.operation.rename-sheet | Rename |
| sheet.command.set-tab-color | Change color |
| sheet.command.set-worksheet-hidden | Hide |
| ui-sheet.command.show-menu-list | Unhide |
| sheet.command.add-range-protection-from-sheet-bar | Protect Worksheet |
| sheet.command.delete-worksheet-protection-from-sheet-bar | Unprotect Worksheet |
| sheet.command.change-sheet-protection-from-sheet-bar | Change Worksheet Permissions |
| sheet.command.view-sheet-permission-from-sheet-bar | View All Protection Ranges |
Pivot Table and PivotChart Context Menu Items
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.pivot-chart.expand-collapse | Expand/Collapse |
| sheet.pivot.context-menu.date-group | Date Group |
| sheet.pivot.context-menu.excel-date-group | Group Dates |
| sheet.pivot.context-menu.number-group | Group Numbers |
| sheet.pivot.context-menu.manual-group | Group Items |
| sheet.pivot.context-menu.manual-rename | Rename Group |
| sheet.pivot.context-menu.manual-ungroup | Ungroup |
| sheet.pivot.context-menu.show-data-as | Show Values As |
| sheet.pivot.context-menu.value-filter | Value Filters |
| sheet.pivot.context-menu.date-group.year | Date Group - Year |
| sheet.pivot.context-menu.date-group.year-quarter | Date Group - Year-Quarter |
| sheet.pivot.context-menu.date-group.quarter | Date Group - Quarter |
| sheet.pivot.context-menu.date-group.year-month | Date Group - Year-Month |
| sheet.pivot.context-menu.date-group.month | Date Group - Month |
| sheet.pivot.context-menu.date-group.month-date | Date Group - Month-Date |
| sheet.pivot.context-menu.date-group.year-month-date | Date Group - Year-Month-Date |
| sheet.pivot.context-menu.date-group.date | Date Group - Date |
| sheet.pivot.context-menu.date-group.hour | Date Group - Hour |
| sheet.pivot.context-menu.date-group.minute | Date Group - Minute |
| sheet.pivot.context-menu.date-group.hour-minute | Date Group - Hour-Minute |
| sheet.pivot.context-menu.show-data-as.1 | Show Values As - No Calculation |
| sheet.pivot.context-menu.show-data-as.4 | Show Values As - % of Grand Total |
| sheet.pivot.context-menu.show-data-as.3 | Show Values As - % of Row Total |
| sheet.pivot.context-menu.show-data-as.2 | Show Values As - % of Column Total |
| sheet.pivot.context-menu.show-data-as.6 | Show Values As - % of Parent Row Total |
| sheet.pivot.context-menu.show-data-as.5 | Show Values As - % of Parent Column Total |
| sheet.pivot.context-menu.show-data-as.8 | Show Values As - Index |
| sheet.pivot.context-menu.show-data-as.14 | Show Values As - % of Parent Total |
| sheet.pivot.context-menu.show-data-as.13 | Show Values As - % Of |
| sheet.pivot.context-menu.show-data-as.9 | Show Values As - Difference From |
| sheet.pivot.context-menu.show-data-as.10 | Show Values As - % Difference From |
| sheet.pivot.context-menu.show-data-as.11 | Show Values As - Running Total In |
| sheet.pivot.context-menu.show-data-as.12 | Show Values As - % Running Total In |
| sheet.pivot.context-menu.show-data-as.15 | Show Values As - Rank Smallest to Largest |
| sheet.pivot.context-menu.show-data-as.16 | Show Values As - Rank Largest to Smallest |
Drawing and Chart Menu Items
| Menu Item ID | Menu Item Name |
|---|---|
| contextMenu.drawing-group | Group |
| drawing.operation.set-drawing-group | Group |
| drawing.operation.cancel-drawing-group | Ungroup |
| contextMenu.drawing-arrange | Arrange |
| drawing.operation.set-drawing-arrange-front | Bring to Front |
| drawing.operation.set-drawing-arrange-forward | Bring Forward |
| drawing.operation.set-drawing-arrange-back | Send to Back |
| drawing.operation.set-drawing-arrange-backward | Send Backward |
| contextMenu.drawing-align | Align |
| sheet.operation.set-drawing-align-left | Align Left |
| sheet.operation.set-drawing-align-center | Align Center |
| sheet.operation.set-drawing-align-right | Align Right |
| sheet.operation.set-drawing-align-top | Align Top |
| sheet.operation.set-drawing-align-middle | Align Middle |
| sheet.operation.set-drawing-align-bottom | Align Bottom |
| sheet.operation.set-drawing-align-horizon | Distribute Horizontally |
| sheet.operation.set-drawing-align-vertical | Distribute Vertically |
| sheet.operation.add-drawing-comment | Add Comment |
| sheet.command.chart.open-focused-panel | Edit chart |
| sheet.command.chart.copy-focused-chart | Copy |
| sheet.command.chart.export-focused-image | Export as image |
| sheet.command.chart.delete-focused-chart | Delete chart |
Contextual Ribbon Menu Items
These controls appear when the corresponding shape, slicer, or timeline is selected.
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.operation.apply-shape-quick-style | Quick styles |
| sheet.operation.update-shape-type | Change Shape |
| sheets-shape-ui.ribbon.shape-format.style-control | Shape style controls |
| sheets-shape-ui.ribbon.shape-format.text-control | Shape text controls |
| sheet.menu.shape.flip-horizontal | Flip Horizontal |
| sheet.menu.shape.flip-vertical | Flip Vertical |
| sheets-shape-ui.ribbon.shape-format.arrange-forward | Bring Forward |
| sheets-shape-ui.ribbon.shape-format.arrange-backward | Send Backward |
| sheets-shape-ui.ribbon.shape-format.arrange-front | Bring to Front |
| sheets-shape-ui.ribbon.shape-format.arrange-back | Send to Back |
| sheets-shape-ui.ribbon.shape-format.formula-control | Formula shape controls |
| sheet.operation.open-sheet-shape-format-panel | Format Shape |
| shape-editor-ui.operation.toggle-floating-toolbar | Floating toolbar |
| sheet.menu.slicer-quick-style | Quick styles |
| sheet.menu.slicer-settings | Slicer settings |
| sheet.menu.timeline-settings | Timeline settings |
| sheet.menu.slicer-connections | Report connections |
Mobile-only Menu Items
| Menu Item ID | Menu Item Name |
|---|---|
| sheet.menu.mobile.crosshair-highlight | Crosshair Highlight |
| sheet.menu.mobile.numfmt | Number format |
| sheet.command.set-once-format-painter | Paint format |
How is this guide?