Search results

Spreadsheet

Represents the Spreadsheet component.

<div id='spreadsheet'></div>
<script>
 let spreadsheetObj = new Spreadsheet();
 spreadsheetObj.appendTo('#spreadsheet');
</script>

Properties

activeSheetIndex

number

Specifies the active sheet index in the workbook.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    // Set 'Car Stock Report' sheet as active sheet.
    activeSheetIndex: 1,
    sheets: [
        {
            name: 'Car Sales Report'
        },
        {
            name: 'Car Stock Report'
        }
    ]
});

spreadsheet.appendTo('#spreadsheet');

Defaults to 0

allowAutoFill

boolean

It allows to enable/disable AutoFill functionalities.

Defaults to true

allowCellFormatting

boolean

It allows you to apply styles (font size, font weight, font family, fill color, and more) to the spreadsheet cells.

Defaults to true

allowChart

boolean

It allows you to insert the chart in a spreadsheet.

Defaults to true

allowConditionalFormat

boolean

It allows you to apply conditional formatting to the sheet.

Defaults to true

allowDataValidation

boolean

It allows you to apply data validation to the spreadsheet cells.

Defaults to true

allowDelete

boolean

It allows you to delete rows, columns, and sheets from a spreadsheet.

Defaults to true

allowEditing

boolean

It allows you to add new data or update existing cell data. If it is false, it will act as read only mode.

Defaults to true

allowFiltering

boolean

It allows to enable/disable filter and its functionalities.

Defaults to true

allowFindAndReplace

boolean

It allows to enable/disable find and replace with its functionalities.

Defaults to true

allowFreezePane

boolean

It allows to enable/disable freeze pane functionality in spreadsheet.

Defaults to true

It allows to enable/disable Hyperlink and its functionalities.

Defaults to true

allowImage

boolean

It allows you to insert the image in a spreadsheet.

Defaults to true

allowInsert

boolean

It allows you to insert rows, columns, and sheets into the spreadsheet.

Defaults to true

allowMerge

boolean

It allows you to merge the range of cells.

Defaults to true

allowNumberFormatting

boolean

It allows formatting a raw number into different types of formats (number, currency, accounting, percentage, short date, long date, time, fraction, scientific, and text) with built-in format codes.

Defaults to true

allowOpen

boolean

It allows you to open an Excel file (.xlsx, .xls, and .csv) in Spreadsheet.

Defaults to true

allowPrint

boolean

Enables or disables the printing functionality in the spreadsheet.

Defaults to true

allowResizing

boolean

If allowResizing is set to true, spreadsheet columns and rows can be resized.

Defaults to true

allowSave

boolean

It allows you to save Spreadsheet with all data as Excel file (.xlsx, .xls, and .csv).

Defaults to true

allowScrolling

boolean

It specifies whether the Spreadsheet should be rendered with scrolling or not. To customize the Spreadsheet scrolling behavior, use the scrollSettings property.

Defaults to true

allowSorting

boolean

It allows to enable/disable sort and its functionalities.

Defaults to true

allowUndoRedo

boolean

It allows to enable/disable undo and redo functionalities.

Defaults to true

allowWrap

boolean

It allows to enable/disable wrap text feature. By using this feature the wrapping applied cell text can wrap to the next line, if the text width exceeds the column width.

Defaults to true

autoFillSettings

AutoFillSettingsModel

Configures the auto fill settings. The autoFillSettings fillType property has FOUR types and it is described below:

  • CopyCells: To update the copied cells for the selected range.
  • FillSeries: To update the filled series for the selected range.
  • FillFormattingOnly: To fill the formats only for the selected range.
  • FillWithoutFormatting: To fill without the format for the selected range.
    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    // Enable the autofill option.
    allowAutoFill: true,
    // Configure the autofill settings.
    autoFillSettings: {
        fillType: 'CopyCells',
        showFillOptions: true
    }
});

spreadsheet.appendTo('#spreadsheet');

The allowAutoFill property should be true.

Defaults to { fillType: ‘FillSeries’, showFillOptions: true }

cellStyle

CellStyleModel

Specifies the cell style options.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  cellStyle: {
    fontWeight: 'bold',
    fontSize: "12pt",
    fontStyle: 'italic',
    textIndent: '2pt',
    backgroundColor: '#4b5366',
    color: '#ffffff'
  }
});

spreadsheet.appendTo('#spreadsheet');

Defaults to {}

cssClass

string

To specify a CSS class or multiple CSS class separated by a space, add it in the Spreadsheet root element. This allows you to customize the appearance of component.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  // Specifies the custom CSS class.
  cssClass: 'e-custom1 e-custom2'
});

spreadsheet.appendTo('#spreadsheet');

Defaults to

definedNames

DefineNameModel[]

Specifies the name of a range and uses it in a formula for calculation.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  // Set the specified cell range's name to 'Group1'.
  definedNames: [{ name: 'Group1', refersTo: 'Sheet1!A1:B5' }]
});

spreadsheet.appendTo('#spreadsheet');

Defaults to []

enableClipboard

boolean

It enables or disables the clipboard operations (cut, copy, and paste) of the Spreadsheet.

Defaults to true

enableContextMenu

boolean

It enables or disables the context menu option of spreadsheet. By default, context menu will opens for row header, column header, sheet tabs, and cell.

Defaults to true

enableKeyboardNavigation

boolean

It allows you to interact with cell, sheet tabs, formula bar, and ribbon through the keyboard device.

Defaults to true

enableKeyboardShortcut

boolean

It enables shortcut keys to perform Spreadsheet operations like open, save, copy, paste, and more.

Defaults to true

enableNotes

boolean

Enables or disables the ability to add or show notes in the Spreadsheet. If the property is set to false, the Spreadsheet will not add notes in the cells and the notes in the existing cells will not be visible.

Defaults to true

enablePersistence

boolean

Enable or disable persisting component’s state between page reloads.

Defaults to false

enableRtl

boolean

Enable or disable rendering component in right to left direction.

Defaults to false

height

string | number

Defines the height of the Spreadsheet. It accepts height as pixels, number, and percentage.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  height: '550px'
});

spreadsheet.appendTo('#spreadsheet');

Defaults to ‘100%’

isProtected

boolean

Specifies to protect the workbook.

Defaults to false

listSeparator

string

Specifies the list separator which is used as the formula argument separator.

Defaults to ’,’

locale

string

Overrides the global culture and localization value for this component. Default global culture is ‘en-US’.

Defaults to

openUrl

string

Specifies the service URL to open excel file in spreadsheet.

Defaults to

password

string

Specifies the password.

Defaults to

saveUrl

string

Specifies the service URL to save spreadsheet as Excel file.

Defaults to

scrollSettings

ScrollSettingsModel

Configures the scroll settings.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  // Enable the scrolling option.
  allowScrolling: true,
  // Configure the scroll settings.
  scrollSettings: {
    isFinite: true,
    enableVirtualization: false
  }
});

spreadsheet.appendTo('#spreadsheet');

The allowScrolling property should be true.

Defaults to { isFinite: false, enableVirtualization: true }

selectionSettings

SelectionSettingsModel

Configures the selection settings. The selectionSettings mode property has three values and is described below:

  • None: Disables UI selection.
  • Single: Allows single selection of cell, row, or column and disables multiple selection.
  • Multiple: Allows multiple selection of cell, row, or column and disables single selection.
    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  // Configure the selection settings.
  selectionSettings: {
    mode: 'None'
  }
});

spreadsheet.appendTo('#spreadsheet');

Defaults to { mode: ‘Multiple’ }

sheets

SheetModel[]

Configures sheets and its options.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    // Specifies the sheets and its options.
    sheets: [
        {
            name: 'First Sheet',
            range: [{ dataSource: dataSource }],
            rows: [
                {
                    index: 5,
                    cells: [
                        { index: 4, value: 'Total Amount:' },
                        { formula: '=SUM(F2:F30)', style: { fontWeight: 'bold' } },
                    ]
                }
            ]
        },
        {
            name: 'Second Sheet',
            columns: [{ width: 180 }, { index: 4, width: 130 }],
        }
    ]
});

spreadsheet.appendTo('#spreadsheet');

Defaults to []

showAggregate

boolean

If showAggregate is set to true, spreadsheet will show the AVERAGE, SUM, COUNT, MIN and MAX values based on the selected cells.

Defaults to true

showFormulaBar

boolean

It shows or hides the formula bar and its features.

Defaults to true

showRibbon

boolean

It shows or hides the ribbon in spreadsheet.

Defaults to true

showSheetTabs

boolean

It shows or hides the sheets tabs, this is used to navigate among the sheets and create or delete sheets by UI interaction.

Defaults to true

width

string | number

Defines the width of the Spreadsheet. It accepts width as pixels, number, and percentage.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  // Specifies the width.
  width: '550px'
});

spreadsheet.appendTo('#spreadsheet');

Defaults to ‘100%’

Methods

Unfreeze

This method is used to unfreeze the frozen rows and columns from the active sheet.

Parameter Type Description
sheet (optional) number | string Specifies the sheet name or index in which the unfreeze operation will perform. By default,
active sheet will be considered.

Returns void

addContextMenuItems

To add context menu items.

    <div id="spreadsheet"></div>
import { Spreadsheet, BeforeOpenCloseMenuEventArgs } from '@syncfusion/ej2-spreadsheet';
import { closest } from '@syncfusion/ej2-base';

let spreadsheet: Spreadsheet = new Spreadsheet({
    contextMenuBeforeOpen: (args: BeforeOpenCloseMenuEventArgs): void => {
        // Add context menu items to the sheet content context menu.
        if (closest(args.event.target, '.e-sheet-content')) {
            spreadsheet.addContextMenuItems([{ text: 'Custom Item' }], 'Paste Special', false);
        }
        // Add context menu items to the column header context menu.
        else if (closest(args.event.target, '.e-colhdr-table')) {
            spreadsheet.addContextMenuItems([{ text: 'Custom Column' }], 'Insert Column', false);
        }
        // Add context menu items to the row header context menu.
        else if (closest(args.event.target, '.e-rowhdr-table')) {
            spreadsheet.addContextMenuItems([{ text: 'Custom Row' }], 'Insert Row', false);
        }
        // Add context menu items to the sheet tab context menu.
        else if (closest(args.event.target, '.e-toolbar-item')) {
            spreadsheet.addContextMenuItems([{ text: 'Custom Tab' }], 'Insert', false);
        }
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items MenuItemModel[] Items that needs to be added.
text string Item before / after that the element to be inserted.
insertAfter boolean Set false if the items need to be inserted before the text.
By default, items are added after the text.
isUniqueId (optional) boolean Set true if the given text is a unique id.

Returns void

addCustomFunction

To add custom library function.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Add custom library function to compute the square root of a number.
        spreadsheet.addCustomFunction('SQRTHandler', 'SQRT');
    },
});

spreadsheet.appendTo('#spreadsheet');

(window as any).SQRTHandler = (num) => Math.sqrt(num);
Parameter Type Description
functionHandler string | Function Custom function handler name
functionName (optional) string Custom function name
formulaDescription (optional) string Specifies formula description.

Returns void

addDataValidation

This method is used to add data validation.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Add data validation with the specified validation rules to the range.
        spreadsheet.addDataValidation({ type: 'TextLength', operator: 'LessThanOrEqualTo', value1: '4' }, 'A2:A5');
        spreadsheet.addDataValidation({ type: 'WholeNumber', operator: 'NotEqualTo', value1: '1' }, 'B2:B5');
        spreadsheet.addDataValidation({ type: 'Date', operator: 'NotEqualTo', value1: '04/11/2019' }, 'F2:F5');
        spreadsheet.addDataValidation({ type: 'Time', operator: 'Between', value1: '10:00:00 AM', value2: '11:00:00 AM' }, 'G2:G5');
        spreadsheet.addDataValidation({ type: 'Decimal', operator: 'LessThan', value1: '100000.00' }, 'H2:H5');
        // Add a cell range as a data source to the list validation dropdown.
        spreadsheet.addDataValidation({ type: 'List', inCellDropDown: true, value1: '=Sheet1!A2:A3' }, 'J2:J5');
        spreadsheet.addDataValidation({ type: 'List', inCellDropDown: true, value1: '10, 20, 30' }, 'I2:I5');
    },
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
rules ValidationModel specifies the validation rules like type, operator, value1, value2, ignoreBlank, inCellDropDown, isHighlighted arguments.
range (optional) string range that needs to be add validation.

Returns void

addDefinedName

Adds the defined name to the Spreadsheet.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Set the specified cell range's name to 'Group1'.
        spreadsheet.addDefinedName({ name: 'Group1', refersTo: '=Sheet1!B2' });
    },
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
definedName DefineNameModel Specifies the name, scope, comment, refersTo.

Returns boolean

addEventListener

Adds the handler to the given event listener.

Parameter Type Description
eventName string A String that specifies the name of the event
handler Function Specifies the call to run when the event occurs.

Returns void

addFileMenuItems

To add custom file menu items.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Place the 'Print' option before the 'Save As' option in the File menu.
        spreadsheet.addFileMenuItems([{ text: 'Print' }], 'Save As', false);
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items MenuItemModel[] Specifies the ribbon file menu items to be inserted.
text string Specifies the existing file menu item text before / after which the new file menu items to be inserted.
insertAfter boolean Set false if the items need to be inserted before the text.
By default, items are added after the text.
isUniqueId (optional) boolean Set true if the given file menu items text is a unique id.

Returns void

To add the hyperlink in the cell

    <div id="spreadsheet"></div>
    <button id="apply-button">Add hyperlink</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Insert a hyperlink into the 'A5' cell.
    spreadsheet.addHyperlink("https://www.google.com/", "A5");
};
Parameter Type Description
hyperlink string | HyperlinkModel to specify the hyperlink
address string to specify the address
displayText (optional) string to specify the text to be displayed, by default value of the cell will be displayed.

Returns void

addInvalidHighlight

This method is used to highlight the invalid data.

    <div id="spreadsheet"></div>
    <button id="apply-button">Higlight Invalid Data</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }],
        },
    ],
    created: (): void => {
        // Add data validation to the specified range.
        spreadsheet.addDataValidation(
            { type: 'Decimal', operator: 'LessThan', value1: '1000' },
            'F2:F5'
        );
    },
});
spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    // Highlight the invalid data on the specified range.
    spreadsheet.addInvalidHighlight('F2:F5');
};
Parameter Type Description
range (optional) string range that needs to be highlight the invalid data.

Returns void

addRibbonTabs

To add custom ribbon tabs.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Place the 'Custom' ribbon tab before the existing 'Data' tab.
        spreadsheet.addRibbonTabs([{ header: { text: 'Custom' }, content: [{ text: 'Custom', tooltipText: 'Custom Button' }] }], 'Data');
    },
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items RibbonItemModel[] Specifies the ribbon tab items to be inserted.
insertBefore (optional) string Specifies the existing ribbon header text before which the new tabs will be inserted.
If not specified, the new tabs will be inserted at the end.

Returns void

addToolbarItems

To add the custom items in Spreadsheet ribbon toolbar.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
  created: (): void => {
    // Place the custom toolbar items to the 'Home' tab ribbon toolbar.
    spreadsheet.addToolbarItems('Home', [{ type: 'Separator' }, { text: 'Custom', tooltipText: 'Custom Btn' }], 15); 
  },
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
tab string Specifies the ribbon tab header text under which the specified items will be inserted.
items ItemModel[] Specifies the ribbon toolbar items that needs to be inserted.
index (optional) number Specifies the index text before which the new items will be inserted.
If not specified, the new items will be inserted at the end of the toolbar.

Returns void

appendTo

Appends the control within the given HTML Div element.

Parameter Type Description
selector string | HTMLElement Target element where control needs to be appended.

Returns void

applyFilter

Applies the filter UI in the range of cells in the sheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Apply Filter</button>
import {
    Spreadsheet,
    getCellIndexes,
    getColumnHeaderText,
    getCell,
    SheetModel
} from '@syncfusion/ej2-spreadsheet';
import { PredicateModel } from '@syncfusion/ej2-grids';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }]
        }
    ]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    // The filter UI is applied to the range of cells in the sheet.
    let sheet: SheetModel = spreadsheet.getActiveSheet();
    let cell: number[] = getCellIndexes(sheet.activeCell);
    let predicates: PredicateModel[] = [
        {
            field: getColumnHeaderText(cell[1] + 1),
            operator: 'equal',
            value: getCell(cell[0], cell[1], sheet).value,
            matchCase: false
        }
    ];
    // Specifies the predicates and cell range.
    spreadsheet.applyFilter(predicates, 'A1:F1');
};
Parameter Type Description
predicates (optional) PredicateModel[] Specifies the predicates.
range (optional) string Specify the range.

Returns Promise

attachUnloadEvent

Adding unload event to persist data when enable persistence true

Returns void

autoFill

Used to perform autofill action based on the specified range in spreadsheet.

Parameter Type Description
fillRange string Specifies the fill range.
dataRange (optional) string Specifies the data range.
direction (optional) AutoFillDirection Specifies the direction(“Down”,“Right”,“Up”,“Left”) to be filled.
fillType (optional) AutoFillType Specifies the fill type(“FillSeries”,“CopyCells”,“FillFormattingOnly”,“FillWithoutFormatting”) for autofill action.

Returns void

autoFit

This method is used to autofit the range of rows or columns

    <div id="spreadsheet"></div>
    <button id="apply-button">AutoFit Content</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

    let spreadsheet: Spreadsheet = new Spreadsheet();

    spreadsheet.appendTo('#spreadsheet');

document.getElementById("applybutton").onclick = () => {
        // To auto fit the columns content.
        spreadsheet.autoFit("D:F");
        // To auto fit the rows content.
        spreadsheet.autoFit("5:10"); 
};
Parameter Type Description
range string range of rows or columns that needs to be autofit.

Returns void

cellFormat

Applies the style (font family, font weight, background color, etc…) to the specified range of cells.

    <div id="spreadsheet"></div>
    <button id="apply-button">Apply Cell Format</button>
import { Spreadsheet, CellStyleModel } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Apply the styles to the cells in the specified range.
    spreadsheet.cellFormat({ fontWeight: 'bold', fontSize: '12pt', backgroundColor: '#279377', color: '#ffffff' }, 'A2:E2');
    spreadsheet.cellFormat({ verticalAlign: 'middle', fontFamily: 'Axettac Demo' }, 'A2:E12');
    spreadsheet.cellFormat({ textAlign: 'center' }, 'A2:A12');
    // Apply text-indent to 2nd & 4th columns.
    let style: CellStyleModel = { textAlign: 'left', textIndent: '8pt' };
    spreadsheet.cellFormat(style, 'B2:B12');
    spreadsheet.cellFormat(style, 'D2:D12');
    spreadsheet.cellFormat({ fontStyle: 'italic', textAlign: 'right' }, 'C3:C12');
    spreadsheet.cellFormat({ textAlign: 'center' }, 'E2:E12');
};
Parameter Type Description
style CellStyleModel Specifies the cell style.
range (optional) string Specifies the address for the range of cells.

Returns void

clear

This method is used to Clear contents, formats and hyperlinks in spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Clear</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Clear the content within the specified range.
    spreadsheet.clear({ type: 'Clear Contents', range: 'A1:A10' });
    // Clear the formats used in the given range.
    spreadsheet.clear({ type: 'Clear Formats', range: 'A1:A10' });
    // Remove all hyperlinks from the provided range.
    spreadsheet.clear({ type: 'Clear Hyperlinks', range: 'A1:A10' });
    // Clear the content, formats and hyperlinks applied in the given range.
    spreadsheet.clear({ type: 'Clear All', range: 'B1:B10' });
};
Parameter Type Description
options ClearOptions Options for clearing the content, formats and hyperlinks in spreadsheet.

Returns void

clearConditionalFormat

This method is used for remove conditional formatting.

    <div id="spreadsheet"></div>
    <button id="apply-button">Clear Conditional Format</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }],
        }
    ],
    created: (): void => {
        // Highlight the cells with a value greater than the specified value.
        spreadsheet.conditionalFormat({
            type: 'GreaterThan',
            cFColor: 'RedFT',
            value: '10/8/2014',
            range: 'E2:E30',
        });
        // Highlight the cells that have a value within the specified range.
        spreadsheet.conditionalFormat({
            type: 'Between',
            cFColor: 'GreenFT',
            value: '11/24/2014,06/26/2023',
            range: 'F2:F30',
        });
    }
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    // Clear the conditional format within the range specified.
    spreadsheet.clearConditionalFormat('E2:E30');
    // The range can also be specified using the sheet name.
    spreadsheet.clearConditionalFormat('Sheet1!F2:F30');
};
Parameter Type Description
range (optional) string range that needs to be remove conditional formatting.

Returns void

clearFilter

Clears the filter changes of the sheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Clear Filter</button>
import {
    Spreadsheet,
    PredicateModel,
    getCellIndexes,
    getColumnHeaderText,
    getCell,
    SheetModel,
    CellModel,
} from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }]
        }
    ],
    created: (): void => {
        // The filter UI is applied to the range of cells in the sheet.
        let sheet: SheetModel = spreadsheet.getActiveSheet();
        let cell: number[] = getCellIndexes(sheet.activeCell);
        let predicates: PredicateModel[] = [
            {
                field: getColumnHeaderText(cell[1] + 1),
                operator: 'equal',
                value: getCell(cell[0], cell[1], sheet).value,
                matchCase: false
            }
        ];
        // Specifies the predicates and cell range.
        spreadsheet.applyFilter(predicates, 'A1:F1');
    }
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    spreadsheet.clearFilter();
};
Parameter Type Description
field (optional) string Specify the field.

Returns void

closeEdit

Cancels the edited state, this will not update any value in the cell.

    <div id="spreadsheet"></div>
    <button id="apply-button">Cancel Edit</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    spreadsheet.closeEdit();
};

Returns void

computeExpression

Used to compute the specified expression/formula.

    <div id="spreadsheet"></div>
    <button class="e-btn" id="apply-button">To Compute Expression</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Calculate the result of an arithmetic expression or formula.
    spreadsheet.computeExpression('522+1');
    spreadsheet.computeExpression('=SUM(F2:F3)');
};
Parameter Type Description
formula string Specifies the formula(=SUM(A1:A3)) or expression(2+3).

Returns string | number

conditionalFormat

This method is used to add conditional formatting.

    <div id="spreadsheet"></div>
    <button id="apply-button">Add Conditional Format</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Apply blue data bar to the specified range.
    spreadsheet.conditionalFormat({ type: 'BlueDataBar', range: 'D3:D18' });
    // Apply three stars to the specified range.
    spreadsheet.conditionalFormat({ type: 'ThreeStars', range: 'F3:F18' });
    // Highlight the cells that contain a value greater than specified value.
    spreadsheet.conditionalFormat({ type: 'GreaterThan', cFColor: 'RedFT', value: '10/15/2023', range: 'E2:E30' });
    // Highlight the cells that contain a value between specified range.
    spreadsheet.conditionalFormat({ type: 'Between', cFColor: 'GreenFT', value: '03/04/2023,06/26/2023', range: 'E2:E30' });
    // Highlight the cells that contain a value greater than average of specified range.
    spreadsheet.conditionalFormat({ type: 'AboveAverage', cFColor: 'RedFT', range: 'F2:F30' });
    // Apply the RGY(Red-Green-Yellow) color scale to the specified range.
    spreadsheet.conditionalFormat({ type: 'RYGColorScale', range: 'F2:F30' });
};
Parameter Type Description
conditionalFormat ConditionalFormatModel Specify the conditionalFormat.

Returns void

copy

To copy the specified cell or cells properties such as value, format, style etc…

    <div id="spreadsheet"></div>
    <button id="apply-button">Copy Cell</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report'
        }]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To copy the selected cell.
    spreadsheet.copy();
    // To copy the specified cell.
    spreadsheet.copy('A2');
    // You can specify the address with sheet name.
    spreadsheet.copy('Car Sales Report!B2')
};
Parameter Type Description
address (optional) string Specifies the range address.

Returns Promise

cut

To cut the specified cell or cells properties such as value, format, style etc…

    <div id="spreadsheet"></div>
    <button class="e-btn" id="apply-button">To Cut</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report'
        }]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To cut the selected cell.
    spreadsheet.cut();
    // To cut the specified cell.
    spreadsheet.cut('A2');
    // You can specify the address with sheet name.
    spreadsheet.cut('Car Sales Report!B2');
};
Parameter Type Description
address (optional) string Specifies the range address to cut.

Returns Promise

dataBind

When invoked, applies the pending property changes immediately to the component.

Returns void

delete

Used to delete rows, columns and sheets from the spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Delete Row & Column</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To delete rows, columns, and sheets with the specified index.
    spreadsheet.delete(1, 1, "Row", "Sheet1");
    spreadsheet.delete(2, 2, "Column", "Sheet1");
};
Parameter Type Description
startIndex (optional) number Specifies the start sheet / row / column index.
endIndex (optional) number Specifies the end sheet / row / column index.
model (optional) ModelType Specifies the delete model type. By default, the model is considered as Sheet. The possible values are,
- Row: To delete rows.
- Column: To delete columns.
- Sheet: To delete sheets.
sheet (optional) number | string Specifies the sheet name or index in which the delete operation will perform. By default,
active sheet will be considered. It is applicable only for model type Row and Column.

Returns void

deleteChart

Used to delete the chart from spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Delete Chart</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Insert a chart into a spreadsheet using the chart options specified.
        spreadsheet.insertChart([{ type: "Line", theme: "Material", isSeriesInRows: false, range: "A1:B5", id: "Chart" }]);
    }
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Delete the chart with the specified chart element ID from the spreadsheet.
    spreadsheet.deleteChart("Chart");
};
Parameter Type Description
id (optional) string Specifies the chart element id.

Returns void

deleteImage

Used to delete the image in spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Delete Image</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Insert a image into a spreadsheet using the image options specified.
        spreadsheet.insertImage([{ src: "https://www.w3schools.com/images/w3schools_green.jpg", height: 400, width: 400 }], "A3");
    }
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Delete the image with the specified image element ID from the spreadsheet.
    spreadsheet.deleteImage("spreadsheet_overlay_picture_1", "A3");
};
Parameter Type Description
id string Specifies the id of the image element to be deleted.
range (optional) string Specifies the range in spreadsheet.

Returns void

deselectChart

Allows you to remove a selection from the active chart.

Returns void

deselectImage

Allows you to remove a selection from the active image.

Returns void

destroy

Destroys the component (detaches/removes all event handlers, attributes, classes, and empties the component element).

    <div id="spreadsheet"></div>
    <button id="apply-button">Destroy Spreadsheet</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    spreadsheet.destroy();
};

Returns void

detachUnloadEvent

Removing unload event to persist data when enable persistence true

Returns void

duplicateSheet

Used to make a duplicate/copy of the sheet in the spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Make Duplicate Sheet</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Make a duplicate/copy of the active sheet in the spreadsheet.
    spreadsheet.duplicateSheet();
    // Make a duplicate/copy of the specified sheet index in the spreadsheet.
    spreadsheet.duplicateSheet(0);
};
Parameter Type Description
sheetIndex (optional) number Specifies the index of the sheet to be duplicated. By default, the active sheet will be duplicated.

Returns void

enableContextMenuItems

To enable / disable context menu items.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    contextMenuBeforeOpen: (): void => {
        // Disable the 'Hyperlink' context menu option.
        spreadsheet.enableContextMenuItems(['Hyperlink'], false, false);
        // You can disable the option by specifying the context menu option id.
        spreadsheet.enableContextMenuItems(
            ['spreadsheet_cmenu_copy'],
            false,
            true
        );
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items string[] Items that needs to be enabled / disabled.
enable boolean Set true / false to enable / disable the menu items.
isUniqueId (optional) boolean Set true if the given text is a unique id.

Returns void

enableFileMenuItems

To enable / disable file menu items.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    fileMenuBeforeOpen: (): void => {
        // Disable the 'New' option in the File menu.
        spreadsheet.enableFileMenuItems(['New'], false, false);
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items string[] Items that needs to be enabled / disabled.
enable boolean Set true / false to enable / disable the menu items.
isUniqueId (optional) boolean Set true if the given file menu items text is a unique id.

Returns void

enableRibbonTabs

To enable / disable the existing ribbon tabs.

    <div id="spreadsheet"></div>
    <button id="apply-button">Disable Home Ribbon Tab</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Disable the 'Home' option in the Ribbon.
    spreadsheet.enableRibbonTabs(['Home'], false);
};
Parameter Type Description
tabs string[] Specifies the tab header text which needs to be enabled / disabled.
enable boolean Set true / false to enable / disable the ribbon tabs.

Returns void

enableToolbarItems

Enables or disables the specified ribbon toolbar items or all ribbon items.

    <div id="spreadsheet"></div>
    <button class="e-btn" id="apply-button">To Enable/Disable Toolbar Items</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Disable the list of toolbar items in the 'Home' ribbon tab.
    spreadsheet.enableToolbarItems(
        'Home',
        ['spreadsheet_line-through'],
        false
    );
    spreadsheet.enableToolbarItems('Home', [3, 4], false);
};
Parameter Type Description
tab string Specifies the ribbon tab header text under which the toolbar items need to be enabled / disabled.
items (optional) number[] | string[] Specifies the toolbar item indexes / unique id’s which needs to be enabled / disabled.
If it is not specified the entire toolbar items will be enabled / disabled.
enable (optional) boolean Boolean value that determines whether the toolbar items should be enabled or disabled.

Returns void

endEdit

If Spreadsheet is in editable state, you can save the cell by invoking endEdit.

    <div id="spreadsheet"></div>
    <button id="apply-button">End Edit</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

    let spreadsheet: Spreadsheet = new Spreadsheet();

    spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // If the spreadsheet is editable, you can use this method to save the cell.
    spreadsheet.endEdit();
};

Returns void

find

To find the specified cell value.

    <div id="spreadsheet"></div>
    <button id="apply-button">To Find</button>
import { Spreadsheet, FindOptions } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To find the cell value specified.
    let findOption: FindOptions = {
        value: "Jenna Schoolfield", sheetIndex: 0, findOpt: "next", mode: "Sheet", isCSen: false,
        isEMatch: false, searchBy: "By Row"
    };
    spreadsheet.find(findOption);
};
Parameter Type Description
args FindOptions Specifies the replace value with find args to replace specified cell value.

Returns void | string

findAll

To Find All the Match values Address within Sheet or Workbook.

    <div id="spreadsheet"></div>
    <button id="apply-button">To Find All</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To find all values that match within a sheet or workbook.
    spreadsheet.findAll('shoes', 'Sheet', false, false, spreadsheet.getActiveSheet().id - 1);
};
Parameter Type Description
value string Specifies the value to find.
mode (optional) string Specifies the value to be find within Sheet/Workbook.
isCSen (optional) boolean Specifies the find match with case sensitive or not.
isEMatch (optional) boolean Specifies the find match with entire match or not.
sheetIndex (optional) number Specifies the sheetIndex. If not specified, it will consider the active sheet.

Returns string[]

freezePanes

This method is used to freeze rows and columns after the specified cell in the Spreadsheet.

Parameter Type Description
row number Specifies the freezed row count.
column number Specifies the freezed column count.
sheet (optional) number | string Specifies the sheet name or index in which the freeze operation will perform. By default,
active sheet will be considered.

Returns void

getData

Gets the range of data as JSON from the specified address.

    <div id="spreadsheet"></div>
    <button id="apply-button">Get Data</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Return the specified cell address data as JSON.
    spreadsheet.getData("Sheet1!A1:B2").then(data => console.log(data));
    spreadsheet.getData("A1:B2").then(data => console.log(data));
};
Parameter Type Description
address string Specifies the address for range of cells.

Returns Promise

getDisplayText

Gets the formatted text of the cell.

    <div id="spreadsheet"></div>
    <button id="apply-button">Get Display text</button>
import { Spreadsheet, CellModel, getCell } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Get the cell model for the given row, column, and sheet indexes.
    let cell: CellModel = getCell(0, 0, spreadsheet.getActiveSheet());
    // To get the formatted cell value, specify the cell model.
    spreadsheet.getDisplayText(cell);
};
Parameter Type Description
cell CellModel Specifies the cell.

Returns string

getLocalData

Returns the persistence data for component

Returns any

getRootElement

Returns the route element of the component

Returns HTMLElement

getRowData

Used to get a row data from the data source with updated cell value.

Parameter Type Description
index (optional) number Specifies the row index.
sheetIndex (optional) number Specifies the sheet index. By default, it consider the active sheet index.

Returns Object[]

getSelectAllContent

Get the select all div of spreadsheet

Returns HTMLElement

goTo

Used to navigate to cell address within workbook.

    <div id="spreadsheet"></div>
    <button id="apply-button">Goto</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To navigate to a cell address within a workbook.
    spreadsheet.goTo('B1');
    // You can navigate to a specific cell address by specifying the sheet name as well as the cell address.
    spreadsheet.goTo('Sheet2!B1');
};
Parameter Type Description
address string Specifies the cell address you need to navigate.
You can specify the address in two formats,
{sheet name}!{cell address} - Switch to specified sheet and navigate to specified cell address.
{cell address} - Navigate to specified cell address with in the active sheet.

Returns void

handleUnload

Handling unload event to persist data when enable persistence true

Returns void

hideColumn

Used to hide/show the columns in spreadsheet.

Parameter Type Description
startIndex number Specifies the start column index.
endIndex number Specifies the end column index.
hide boolean Set true / false to hide / show the columns.

Returns void

hideFileMenuItems

To show/hide the file menu items in Spreadsheet ribbon.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    fileMenuBeforeOpen: (): void => {
        //To show/hide the file menu item.
        spreadsheet.hideFileMenuItems(['PDF Document'], true);
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items string[] Specifies the file menu items text which is to be show/hide.
hide boolean Set true / false to hide / show the file menu items.
isUniqueId (optional) boolean Set true if the given file menu items text is a unique id.

Returns void

hideRibbonTabs

To show/hide the existing ribbon tabs.

    <div id="spreadsheet"></div>
    <button id="apply-button">Hide Ribbon Tabs</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Hide the existing 'Formulas' and 'Insert' ribbon tabs.
    spreadsheet.hideRibbonTabs(['Formulas', 'Insert'], true);
};
Parameter Type Description
tabs string[] Specifies the tab header text which needs to be shown/hidden.
hide boolean Set true / false to hide / show the ribbon tabs.

Returns void

hideRow

Used to hide/show the rows in spreadsheet.

Parameter Type Description
startIndex number Specifies the start row index.
endIndex number Specifies the end row index.
hide boolean To hide/show the rows in specified range.

Returns void

hideSpinner

To hide showed spinner manually.

    <div id="spreadsheet"></div>
    <button id="apply-button">Hide Spinner</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    //To manually hide the displayed spinner.
    spreadsheet.hideSpinner();
};

Returns void

hideToolbarItems

To show/hide the existing Spreadsheet ribbon toolbar items.

    <div id="spreadsheet"></div>
    <button id="apply-button">Hide Toolbar Items</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To show or hide the ribbon toolbar items with the specified tab name and index.
    spreadsheet.hideToolbarItems('Home', [0, 1, 2, 4, 14, 15, 22, 23, 24]);
    spreadsheet.hideToolbarItems('View', [1, 2]);
};
Parameter Type Description
tab string Specifies the ribbon tab header text under which the specified items needs to be hidden / shown.
indexes number[] Specifies the toolbar indexes which needs to be shown/hidden from UI.
hide boolean Set true / false to hide / show the toolbar items.

Returns void

insertChart

Used to set the chart in spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Insert Chart</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Insert a chart into a spreadsheet using the chart options specified.
    spreadsheet.insertChart([{ type: "Line", theme: "Material", isSeriesInRows: false, range: "A1", id: "Chart" }]);
};
Parameter Type Description
chart (optional) ChartModel[] Specifies the options to insert chart in spreadsheet

Returns void

insertColumn

Used to insert columns in to the spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Insert Column</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Insert the column at the starting column index specified.
    spreadsheet.insertColumn([{ index: 1, width: 95 }], 1);
};
Parameter Type Description
startColumn (optional) number | ColumnModel[] Specifies the start column index / column model which needs to be inserted.
endColumn (optional) number Specifies the end column index.
sheet (optional) number | string Specifies the sheet name or index in which the insert operation will perform. By default,
active sheet will be considered.

Returns void

insertImage

Used to set the image in spreadsheet.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Insert a image into a spreadsheet using the image options specified.
        spreadsheet.insertImage([{ src: "https://www.w3schools.com/images/w3schools_green.jpg", height: 400, width: 400 }], "A1");
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
images ImageModel[] Specifies the options to insert image in spreadsheet.
range (optional) string Specifies the range in spreadsheet.

Returns void

insertRow

Used to insert rows in to the spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Insert Row</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Insert the row at the starting row index specified.
    spreadsheet.insertRow(4, 4);
};
Parameter Type Description
startRow (optional) number | RowModel[] Specifies the start row index / row model which needs to be inserted.
endRow (optional) number Specifies the end row index.
sheet (optional) number | string Specifies the sheet name or index in which the insert operation will perform. By default,
active sheet will be considered.

Returns void

insertSheet

Used to insert sheets in to the spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Insert Sheet</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Insert the sheet at the starting sheet index specified.
    spreadsheet.insertSheet(0, 2);
};
Parameter Type Description
startSheet (optional) number | SheetModel[] Specifies the start sheet index / sheet model which needs to be inserted.
endSheet (optional) number Specifies the end sheet index.

Returns void

isValidCell

To determine whether the cell value in a data validation applied cell is valid or not.

Parameter Type Description
cellAddress (optional) string Address of the cell.

Returns boolean

lockCells

Applies cell lock to the specified range of cells.

    <div id="spreadsheet"></div>
    <button id="apply-button">Lock Cells</button>
import { Spreadsheet, ProtectSettingsModel } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    //To protect the worksheet.
    let protectSetting: ProtectSettingsModel = {
        selectCells: true,
        formatCells: false,
        formatRows: false,
        formatColumns: false,
        insertLink: false
    };
    spreadsheet.protectSheet('Sheet1', protectSetting);
    // To unlock the A2:AZ100 cell range.
    spreadsheet.lockCells('A2:AZ100', false);
    // To lock the A1:Z1 cell range.
    spreadsheet.lockCells('A1:Z1', true);
};
Parameter Type Description
range (optional) string Specifies the address for the range of cells.
isLocked (optional) boolean -Specifies the cell is locked or not.

Returns void

merge

Used to merge the range of cells.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // To merge the cells in the specified range.
        spreadsheet.merge('B1:E2');
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
range (optional) string Specifies the range of cells as address.
type (optional) MergeType Specifies the merge type. The possible values are,
- All: Merge all the cells between provided range.
- Horizontally: Merge the cells row-wise.
- Vertically: Merge the cells column-wise.

Returns void

moveSheet

Used to move the sheets to the specified position in the list of sheets.

    <div id="spreadsheet"></div>
    <button id="apply-button">Move Sheets</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [{}, {}, {}]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Moves the active sheet to the specified position.
    spreadsheet.moveSheet(1);
    // Moves the list of specified sheets to the specified position.
    spreadsheet.moveSheet(0, [1, 2]);
};
Parameter Type Description
position number Specifies the position to move a sheet in the list of sheets.
sheetIndexes (optional) number[] Specifies the indexes of the sheet to be moved. By default, the active sheet will be moved.

Returns void

numberFormat

Applies the number format (number, currency, percentage, short date, etc…) to the specified range of cells.

    <div id="spreadsheet"></div>
import { Spreadsheet, getFormatFromType } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }]
        },
    ],
    created: (): void => {
        // Apply the number format to the specified range of cells.
        spreadsheet.numberFormat('$#,##0.00', 'E1:E3');
        // Apply the accounting format to the specified range of cells.
        spreadsheet.numberFormat(getFormatFromType('Accounting'), 'C3:E10');
        // Apply the percentage format to the specified range of cells.
        spreadsheet.numberFormat('0%', 'F3:F10');
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
format string Specifies the number format code.
range (optional) string Specifies the address for the range of cells.

Returns void

open

Opens the Excel file.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    openUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/open',
    saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save',
    created: (): void => {
        fetch("https://js.syncfusion.com/demos/ejservices/data/Spreadsheet/LargeData.xlsx")
            .then((response) => {
                response.blob().then((fileBlob) => {
                    let file: File = new File([fileBlob], "Sample.xlsx");
                    spreadsheet.open({ file: file });
                })
            });
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
options OpenOptions Options for opening the excel file.

Returns void

openFromJson

Opens the specified JSON object.

    <div id="spreadsheet"></div>
    <button id="save">Save JSON</button>
    <button id="load">Load JSON</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let response: string;
let spreadsheet: Spreadsheet = new Spreadsheet({
    openUrl: 'hhttps://services.syncfusion.com/js/production/api/spreadsheet/open',
    saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save'
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("save").onclick = () => {
    // Save the spreadsheet data as JSON.
    spreadsheet.saveAsJson().then(Json => (response = Json));
};

document.getElementById("load").onclick = () => {
    // Load the JSON data to the spreadsheet.
    spreadsheet.openFromJson({ file: response.jsonObject });
};

The available arguments in options are:

  • file: Specifies the spreadsheet model as object or string. And the object contains the jsonObject, which is saved from spreadsheet using saveAsJson method.
  • triggerEvent: Specifies whether to trigger the openComplete event or not.
Parameter Type Description
options Object Options for opening the JSON object.
jsonConfig (optional) SerializationOptions Specify the serialization options to customize the loading of the JSON data.

Returns void

paste

This method is used to paste the cut or copied cells in to specified address.

    <div id="spreadsheet"></div>
    <button id="paste">Paste Values</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("paste").onclick = () => {
    // Paste the selected cell.
    spreadsheet.paste();
    // Paste all the content to the specified range.
    spreadsheet.paste("B2", "All");
    // Paste only the values to the specified range.
    spreadsheet.paste("B3", "Values");
    // Paste only the formats to the specified range.
    spreadsheet.paste("B4", "Formats");
    // Paste only the formulas to the specified range.
    spreadsheet.paste("B5", "Formulas");
};
Parameter Type Description
address (optional) string Specifies the cell or range address.
type (optional) PasteSpecialType Specifies the type of paste.

Returns void

print

This method is used to print the active sheet or the entire workbook.

Parameter Type Description
printOptions PrintOptions Represents the settings to customize the print type, row and column headers and gridlines in the printing operation.

Returns void

protectSheet

To protect the particular sheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Protect Sheet</button>
import { Spreadsheet, ProtectSettingsModel } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [{ name: 'Car Sales Report' }]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    //  Protect the particular sheet with specified protect settings.
    let protectSetting: ProtectSettingsModel = {
        selectCells: true,
        formatCells: false,
        formatRows: false,
        formatColumns: false,
        insertLink: false
    }
    spreadsheet.protectSheet('Car Sales Report', protectSetting);
};
Parameter Type Description
sheet (optional) number | string Specifies the sheet to protect.
protectSettings (optional) ProtectSettingsModel Specifies the protect sheet options.
password (optional) string Specifies the password to protect.

Returns void

redo

To perform the redo operation in spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Redo Action</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To perform the redo operation.
    spreadsheet.redo();
};

Returns void

refresh

Used to refresh the spreadsheet in UI level.

    <div id="spreadsheet"></div>
    <button id="apply-button">Refresh Spreadsheet</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To refresh the spreadsheet.
    spreadsheet.refresh(false);
};
Parameter Type Description
isNew (optional) boolean Specifies true / false to create new workbook in spreadsheet.

Returns void

removeContextMenuItems

To remove existing context menu items.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({

    contextMenuBeforeOpen: (): void => {
        // Remove existing context menu items by specifying item text.
        spreadsheet.removeContextMenuItems(["Cut"]);
    }
});

spreadsheet.appendTo('#spreadsheet');
Parameter Type Description
items string[] Items that needs to be removed.
isUniqueId (optional) boolean Set true if the given text is a unique id.

Returns void

removeDataValidation

This method is used for remove validation.

    <div id="spreadsheet"></div>
    <button id="apply-button">Remove Data Validation</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: (dataSource as any).salesData }]

        }],
    created: (): void => {
        spreadsheet.addDataValidation({ type: 'Decimal', operator: 'LessThan', value1: '100000' }, 'F2:F5');
    }
});
spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Remove the applied data validation on the specified range.
    spreadsheet.removeDataValidation("F2:F5");
};
Parameter Type Description
range (optional) string range that needs to be remove validation.

Returns void

removeDefinedName

Removes the defined name from the Spreadsheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Remove Defined Name</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Set the specified cell range's name to 'Group1'.
        spreadsheet.addDefinedName({ name: 'Group1', refersTo: '=Sheet1!B2' });
    }
});

spreadsheet.appendTo('#spreadsheet');
document.getElementById('apply-button').onclick = () => {
    // Remove the defined names from workbook.
    spreadsheet.removeDefinedName('Group1', 'Workbook');
};
Parameter Type Description
definedName string Specifies the name.
scope string Specifies the scope of the defined name.

Returns boolean

removeEventListener

Removes the handler from the given event listener.

Parameter Type Description
eventName string A String that specifies the name of the event to remove
handler Function Specifies the function to remove

Returns void

To remove the hyperlink in the cell

    <div id="spreadsheet"></div>
    <button class="e-btn" id="apply-button">To Remove Hyperlink</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        // Insert a hyperlink into the 'A5' cell.
        spreadsheet.addHyperlink("https://www.google.com/", "A5");
    }
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    // Remove the hyperlink from the given range.
    spreadsheet.removeHyperlink("A5");
    // You can pass the range along with the sheet name.
    spreadsheet.removeHyperlink("Sheet1!A5");
};
Parameter Type Description
range string To specify the range

Returns void

removeInvalidHighlight

This method is used for remove highlight from invalid data.

    <div id="spreadsheet"></div>
    <button id="appy-button">Remove Invalid Highlight</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';
let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }],
        }
    ],
    created: (): void => {
        // Add data validation to the specified range.
        spreadsheet.addDataValidation(
            { type: 'Decimal', operator: 'LessThan', value1: '10000' },
            'F2:F5'
        );
        // Highlight the invalid data on the specified range.
        spreadsheet.addInvalidHighlight('F2:F5');
    }
});

spreadsheet.appendTo('#spreadsheet');
document.getElementById('appy-button').onclick = () => {
    // Remove the invalid data highlight from the given range.
    spreadsheet.removeInvalidHighlight('F2:F5');
};
Parameter Type Description
range (optional) string range that needs to be remove invalid highlight.

Returns void

replace

To replace the specified cell value.

    <div id="spreadsheet"></div>
    <button id="apply-button">Replace Value</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }]
        }
    ]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Replace the cell value with the replace value specified.
    spreadsheet.replace({
        replaceValue: 'Issy Humm',
        sheetIndex: 0,
        replaceBy: 'replace',
        value: 'Jenna Schoolfield',
        findOpt: 'next',
        mode: 'Sheet',
        isCSen: false,
        isEMatch: false,
        searchBy: 'By Row'
    });
};
Parameter Type Description
args FindOptions Specifies the replace value with find args to replace specified cell value.

Returns void

resize

Used to resize the Spreadsheet.

    <div id="spreadsheet"></div>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

window.addEventListener('resize', onResize);

function onResize(): void {
    document.body.style.height = `${document.documentElement.clientHeight}px`;
    spreadsheet.resize();
}

Returns void

save

Saves the Spreadsheet data to Excel file.

    <div id="spreadsheet"></div>
    <button id="apply-button">To Save</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    openUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/open',
    saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save'
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Save the spreadsheet data to an Excel file with the filename and extension you specify.
    spreadsheet.save({ url: 'https://services.syncfusion.com/js/production/api/spreadsheet/save', fileName: 'Worksheet', saveType: 'Xlsx' });
};

The available arguments in saveOptions are:

  • url: Specifies the save URL.
  • fileName: Specifies the file name.
  • saveType: Specifies the file type need to be saved.
Parameter Type Description
saveOptions SaveOptions Options for saving the excel file.
jsonConfig (optional) SerializationOptions Specify the serialization options to customize the JSON output.

Returns void

saveAsJson

Saves the Spreadsheet data as JSON object.

    <div id="spreadsheet"></div>
    <button id="save">Save JSON</button>
    <button id="load">Load JSON</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let response: String;
let spreadsheet: Spreadsheet = new Spreadsheet({
    openUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/open',
    saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save'
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("save").onclick = () => {
    // Save the spreadsheet data as JSON.
    spreadsheet.saveAsJson().then(Json => (response = Json));
};

document.getElementById("load").onclick = () => {
    // Load the JSON data to the spreadsheet.
    spreadsheet.openFromJson({ file: response.jsonObject });
};
Parameter Type Description
jsonConfig (optional) SerializationOptions Specify the serialization options to customize the JSON output.

Returns Promise

selectChart

Allows you to select a chart from the active sheet. To select a specific chart from the active sheet, pass the chart id. If you pass an empty argument, the chart present in the active cell will be selected. If the active cell does not have a chart, the initially rendered chart will be selected from the active sheet.

Parameter Type Description
id (optional) string Specifies the chart id to be selected.

Returns void

selectImage

Allows you to select an image from the active sheet. To select a specific image from the active sheet, pass the image id. If you pass an empty argument, the image present in the active cell will be selected. If the active cell does not have an image, the initially rendered image will be selected from the active sheet.

Parameter Type Description
id (optional) string Specifies the image id to be selected.

Returns void

selectRange

Selects the cell / range of cells with specified address.

    <div id="spreadsheet"></div>
    <button id="apply-button">Select Range</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Selects the cell / range of cells with the specified address.
    spreadsheet.selectRange("B7:B8");
};
Parameter Type Description
address string Specifies the range address.

Returns void

setBorder

Sets the border to specified range of cells.

    <div id="spreadsheet"></div>
    <button id="apply-button">Set Border</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Sets the border to the specified cell range.
    spreadsheet.setBorder({ border: '1px solid #000000' }, 'C6:G8', 'Outer');
    spreadsheet.setBorder({ border: '1px solid #000000' });
};
Parameter Type Description
style CellStyleModel Specifies the style property which contains border value.
range (optional) string Specifies the range of cell reference. If not specified, it will considered the active cell reference.
type (optional) BorderType Specifies the range of cell reference. If not specified, it will considered the active cell reference.
isUndoRedo (optional) boolean Specifies is undo redo or not.

Returns void

setColWidth

Set the width of column.

    <div id="spreadsheet"></div>
    <button id="apply-button">Set Column Width</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To specify the width of a column of the given size and index.
    spreadsheet.setColWidth(140, 2, 0);
};
Parameter Type Description
width number | string To specify the width
colIndex number To specify the colIndex
sheetIndex (optional) number To specify the sheetIndex

Returns void

setColumnsWidth

Allows you to set the width to the single or multiple columns.

Parameter Type Description
width number Specifies the width for column.
ranges (optional) string[] Specifies the column range to set the width. If the sheet name is not specified then width will apply to
the column in the active sheet. Possible values are
* Single column range: [‘F’] or [‘F:F’]
* Multiple columns range: [‘A:F’]
* Multiple columns with discontinuous range - [‘A:C’, ‘G:I’, ‘K:M’]
* Multiple columns with different sheets - [‘Sheet1!A:H’, ‘Sheet2!A:H’, ‘Sheet3!A:H’].

Returns void

setRangeReadOnly

Sets or releases the read-only status for a specified range in the given sheet.

Parameter Type Description
readOnly boolean A boolean indicating whether the range should be set as read-only (true) or editable (false).
range string The range to be set as read-only. It can be a single cell, a range of cells (e.g., “A1:B5”), a column (e.g., “C”), or a row (e.g., “10”).
sheetIndex number The index of the sheet where the range is located. If not provided, it defaults to the active sheet index.

Returns void

setRowHeight

Set the height of row.

     <div id="spreadsheet"></div>
    <button id="apply-button">Set Row Height</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To specify the height of a row of a given size and index.
    spreadsheet.setRowHeight(40, 2, 0);
};
Parameter Type Description
height number | string Specifies height needs to be updated. If not specified, it will set the default height 20.
rowIndex number Specifies the row index. If not specified, it will consider the first row.
sheetIndex (optional) number Specifies the sheetIndex. If not specified, it will consider the active sheet.
edited (optional) boolean Specifies the boolean value.
skipCustomRow (optional) boolean When this parameter is enabled, the method will skip updating the row height if it has already been modified and its ‘customHeight’ property is set to true.

Returns void

setRowsHeight

Allows you to set the height to the single or multiple rows.

Parameter Type Description
height number Specifies the height for row.
ranges (optional) string[] Specifies the row range to set the height. If the sheet name is not specified then height will apply to
the rows in the active sheet. Possible values are
* Single row range: [‘2’] or [‘2:2’]
* Multiple rows range: [‘1:100’]
* Multiple rows with discontinuous range - [‘1:10’, ‘15:25’, ‘30:40’]
* Multiple rows with different sheets - [‘Sheet1!1:50’, ‘Sheet2!1:50’, ‘Sheet3!1:50’].
skipCustomRows (optional) boolean When this parameter is enabled, it will skip updating the heights of rows where the height has already been modified, and its ‘customHeight’ property is set to true.

Returns void

showSpinner

By default, Spreadsheet shows the spinner for all its actions. To manually show spinner you this method at your needed time.

     <div id="spreadsheet"></div>
    <button id="apply-button">Show Spinner</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To manually display the spinner at the desired time.
    spreadsheet.showSpinner();
};

Returns void

sort

Sorts the range of cells in the active sheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">Apply Sort</button>
import {
    Spreadsheet
} from '@syncfusion/ej2-spreadsheet';
import * as dataSource from './data.json';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report',
            ranges: [{ dataSource: dataSource.salesData }]
        }
    ]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
   // To sort multiple columns using the SortOptions and range specified.
    spreadsheet.sort({ containsHeader: true }, 'A1:H11');
};
Parameter Type Description
sortOptions (optional) SortOptions options for sorting.
range (optional) string address of the data range.

Returns Promise

startEdit

Start edit the active cell.

     <div id="spreadsheet"></div>
    <button id="apply-button">To Start Edit</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To begin editing in the currently active cell.
    spreadsheet.startEdit();
};

Returns void

unMerge

Used to split the merged cell into multiple cells.

    <div id="spreadsheet"></div>
    <button id="apply-button">UnMerge Cells</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    created: (): void => {
        spreadsheet.merge('B1:E2');
    },
});
spreadsheet.appendTo('#spreadsheet');

document.getElementById('apply-button').onclick = () => {
    //To split the merged cell into multiple cells.
    spreadsheet.unMerge('B1:E2');
};
Parameter Type Description
range (optional) string Specifies the range of cells as address.

Returns void

undo

To perform the undo operation in spreadsheet.

     <div id="spreadsheet"></div>
    <button id="apply-button">Undo Action</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To perform the undo operation.
    spreadsheet.undo();
};

Returns void

unfreezePanes

This method is used to unfreeze the frozen rows and columns from spreadsheet.

Parameter Type Description
sheet (optional) number | string Specifies the sheet name or index in which the unfreeze operation will perform. By default,
active sheet will be considered.

Returns void

unprotectSheet

To unprotect the particular sheet.

    <div id="spreadsheet"></div>
    <button id="apply-button">To Unprotect Sheet</button>
import { Spreadsheet, ProtectSettingsModel } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [{ name: 'Car Sales Report' }],
    created: (): void => {
        // To protect the particular sheet with the specified protect settings.
        let protectSetting: ProtectSettingsModel = {
            selectCells: true,
            formatCells: false,
            formatRows: false,
            formatColumns: false,
            insertLink: false
        };
        spreadsheet.protectSheet('Car Sales Report', protectSetting);
    }
});

spreadsheet.appendTo('#spreadsheet');
document.getElementById('apply-button').onclick = () => {
    // To remove the sheet protection with the specified sheet index.
    spreadsheet.unprotectSheet('1');
    // You can specify the sheet name to unprotect.
    spreadsheet.unprotectSheet('Car Sales Report');
};
Parameter Type Description
sheet (optional) number | string Specifies the sheet name or index to Unprotect.

Returns void

updateAction

To update the action which need to perform.

    <div id="spreadsheet"></div>
    <button id="apply-button">Update Action</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    sheets: [
        {
            name: 'Car Sales Report'
        }]
});

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // To update the action with the specified action name and event options.
    spreadsheet.updateAction({ action: 'cellSave', eventArgs: { value: 'Custom value', address: 'Car Sales Report!M2' } });
    spreadsheet.updateAction({ action: 'wrap', eventArgs: { address: 'Car Sales Report!M2', wrap: true } });
};
Parameter Type Description
options CollaborativeEditArgs It describes an action and event args to perform.

Returns void

updateCell

To update a cell properties.

    <div id="spreadsheet"></div>
    <button id="apply-button">Update Cell</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("apply-button").onclick = () => {
    // Update the properties of a cell to the specified cell address.
    spreadsheet.updateCell({ value: 'Custom Value' }, "A3");
    spreadsheet.updateCell({ value: 'Custom Value' }, "Sheet1!A4");
};
Parameter Type Description
cell CellModel Cell properties.
address (optional) string Address to update.

Returns void

updateRange

This method is used to update the Range property in specified sheetIndex.

Parameter Type Description
range RangeModel Specifies the range properties to update.
sheetIdx (optional) number Specifies the sheetIdx to update.

Returns void

updateUndoRedoCollection

To update the undo redo collection in spreadsheet.

     <div id="spreadsheet"></div>
     <button id="apply-button"> Add/remove Class</button>
     <style>
		.customClass.e-cell {
			background-color: red;
		}
	</style>
import { addClass, removeClass } from '@syncfusion/ej2-base';
import { Spreadsheet, getRangeIndexes, SortEventArgs, CellSaveEventArgs, SaveCompleteEventArgs } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet({
    actionComplete: (args: SortEventArgs|CellSaveEventArgs|SaveCompleteEventArgs|Object): void => {
        if (args.eventArgs.action == "customCSS") {
            let Element: HTMLElement = spreadsheet.getCell(args.eventArgs.rowIdx, args.eventArgs.colIdx);
            if (args.eventArgs.requestType == "undo") {
                // To remove the custom class in the undo action.
                removeClass([Element], 'customClass');
            }
            else {
                // To add the custom class in the redo action.
                addClass([Element], 'customClass');
            }
        }
    }
});

spreadsheet.appendTo('#spreadsheet');
document.getElementById("apply-button").addEventListener('click', updateCollection);

function updateCollection() {
    let cell: string = spreadsheet.getActiveSheet().activeCell;
    let cellIdx: number[] = getRangeIndexes(cell);
    let Element: HTMLElement = spreadsheet.getCell(cellIdx[0], cellIdx[1]);
    if (!Element.classList.contains("customClass")) {
        // To add the custom class in the active cell element.
        addClass([Element], 'customClass');
        // To update the undo and redo collection.
        spreadsheet.updateUndoRedoCollection({ eventArgs: { class: 'customClass', rowIdx: cellIdx[0], colIdx: cellIdx[1], action: 'customCSS' } });
    }
}
Parameter Type Description
args { : } | options for undo redo.

Returns void

wrap

This method is used to wrap/unwrap the text content of the cell.

    <div id="spreadsheet"></div>
    <button id="wrap">To Wrap</button>
import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';

let spreadsheet: Spreadsheet = new Spreadsheet();

spreadsheet.appendTo('#spreadsheet');

document.getElementById("wrap").onclick = () => {
    // To wrap/unwrap the cell's text content with the specified address.
    spreadsheet.wrap("B5", true);
};
Parameter Type Description
address string Address of the cell to be wrapped.
wrap boolean Set false if the text content of the cell to be unwrapped.

Returns void

Inject

Dynamically injects the required modules to the component.

Parameter Type Description
moduleList Function[] ?

Returns void

Events

actionBegin

EmitType<BeforeCellFormatArgs|BeforeOpenEventArgs|BeforeSaveEventArgs|BeforeSelectEventArgs|BeforeSortEventArgs|CellEditEventArgs|MenuSelectEventArgs>

Triggers when the Spreadsheet actions (such as editing, formatting, sorting etc..) are starts.

<div id='Spreadsheet'></div>
new Spreadsheet({
      actionBegin: (args: BeforeCellFormatArgs|BeforeOpenEventArgs|BeforeSaveEventArgs|BeforeSelectEventArgs
                   |BeforeSortEventArgs|CellEditEventArgs|MenuSelectEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

actionComplete

EmitType<SortEventArgs|CellSaveEventArgs|SaveCompleteEventArgs|Object``>

Triggers when the spreadsheet actions (such as editing, formatting, sorting etc..) gets completed.

<div id='Spreadsheet'></div>
new Spreadsheet({
      actionComplete: (args: SortEventArgs|CellSaveEventArgs|SaveCompleteEventArgs|Object) => {
      }
     ...
 }, '#Spreadsheet');

afterHyperlinkClick

EmitType<AfterHyperlinkArgs>

Triggers when the Hyperlink function gets completed.

<div id='Spreadsheet'></div>
new Spreadsheet({
      afterHyperlinkClick: (args: AfterHyperlinkArgs ) => {
      }
     ...
 }, '#Spreadsheet');

afterHyperlinkCreate

EmitType<AfterHyperlinkArgs>

Triggers after the hyperlink inserted.

<div id='Spreadsheet'></div>
new Spreadsheet({
      afterHyperlinkCreate: (args: afterHyperlinkArgs ) => {
      }
     ...
 }, '#Spreadsheet');

beforeCellFormat

EmitType<BeforeCellFormatArgs>

Triggers before the cell format applied to the cell.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeCellFormat: (args: BeforeCellFormatArgs) => {
      }
     ...
 }, '#Spreadsheet');

beforeCellRender

EmitType<CellRenderEventArgs>

Triggers before the cell appended to the DOM.

<div id='Spreadsheet'></div>
new Spreadsheet({
     beforeCellRender: (args: CellRenderEventArgs) => {
     }
     ...
 }, '#Spreadsheet');

beforeCellSave

EmitType<CellEditEventArgs>

Triggers when before the cell is saved.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeCellSave: (args: CellEditEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

beforeCellUpdate

EmitType<BeforeCellUpdateArgs>

Triggers before changing any cell properties.

<div id='Spreadsheet'></div>
 new Spreadsheet({
     beforeCellUpdate: (args: BeforeCellUpdateArgs) => {
     }
     ...
 }, '#Spreadsheet');

beforeConditionalFormat

EmitType<ConditionalFormatEventArgs>

Triggers before apply or remove the conditional format from a cell in a range.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeConditionalFormat: (args: ConditionalFormatEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

beforeDataBound

EmitType<Object>

Triggers before the data is populated to the worksheet.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeDataBound: (args: Object) => {
      }
     ...
 }, '#Spreadsheet');

beforeHyperlinkClick

EmitType<BeforeHyperlinkArgs>

Triggers when the Hyperlink is clicked.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeHyperlinkClick: (args: BeforeHyperlinkArgs ) => {
      }
     ...
 }, '#Spreadsheet');

beforeHyperlinkCreate

EmitType<BeforeHyperlinkArgs>

Triggers before insert a hyperlink.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeHyperlinkCreate: (args: BeforeHyperlinkArgs ) => {
      }
     ...
 }, '#Spreadsheet');

beforeOpen

EmitType<BeforeOpenEventArgs>

Triggers before opening an Excel file.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeOpen: (args: BeforeOpenEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

beforeSave

EmitType<BeforeSaveEventArgs>

Triggers before saving the Spreadsheet as Excel file.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeSave: (args: BeforeSaveEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

beforeSelect

EmitType<BeforeSelectEventArgs>

Triggers before the cell or range of cells being selected.

<div id='Spreadsheet'></div>
new Spreadsheet({
     beforeSelect: (args: BeforeSelectEventArgs) => {
     }
     ...
 }, '#Spreadsheet');

beforeSort

EmitType<BeforeSortEventArgs>

Triggers before sorting the specified range.

<div id='Spreadsheet'></div>
new Spreadsheet({
      beforeSort: (args: BeforeSortEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

cellEdit

EmitType<CellEditEventArgs>

Triggers when the cell is being edited.

<div id='Spreadsheet'></div>
new Spreadsheet({
      cellEdit: (args: CellEditEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

cellEdited

EmitType<CellEditEventArgs>

Triggers when the cell has been edited.

<div id='Spreadsheet'></div>
new Spreadsheet({
      cellEdited: (args: CellEditEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

cellEditing

EmitType<CellEditEventArgs>

Triggers every time a request is made to access cell information. This will be triggered when editing a cell.

<div id='Spreadsheet'></div>
new Spreadsheet({
      cellEditing: (args: CellEditEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

cellSave

EmitType<CellSaveEventArgs>

Triggers when the edited cell is saved.

<div id='Spreadsheet'></div>
new Spreadsheet({
      cellSave: (args: CellSaveEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

contextMenuBeforeClose

EmitType<BeforeOpenCloseMenuEventArgs>

Triggers before closing the context menu.

<div id='Spreadsheet'></div>
new Spreadsheet({
      contextMenuBeforeClose: (args: BeforeOpenCloseMenuEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

contextMenuBeforeOpen

EmitType<BeforeOpenCloseMenuEventArgs>

Triggers before opening the context menu and it allows customizing the menu items.

<div id='Spreadsheet'></div>
new Spreadsheet({
      contextMenuBeforeOpen: (args: BeforeOpenCloseMenuEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

contextMenuItemSelect

EmitType<MenuSelectEventArgs>

Triggers when the context menu item is selected.

<div id='Spreadsheet'></div>
new Spreadsheet({
      contextMenuItemSelect: (args: MenuSelectEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

created

EmitType<Event>

Triggers when the component is created.

<div id='Spreadsheet'></div>
new Spreadsheet({
      created: () => {
      }
     ...
 }, '#Spreadsheet');

dataBound

EmitType<Object>

Triggers when the data is populated in the worksheet.

<div id='Spreadsheet'></div>
new Spreadsheet({
      dataBound: (args: Object) => {
      }
     ...
 }, '#Spreadsheet');

dataSourceChanged

EmitType<DataSourceChangedEventArgs>

Triggers during data changes when the data is provided as dataSource in the Spreadsheet.

<div id='Spreadsheet'></div>
new Spreadsheet({
      dataSourceChanged: (args: DataSourceChangedEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

dialogBeforeOpen

EmitType<DialogBeforeOpenEventArgs>

Triggers before opening the dialog box.

<div id='Spreadsheet'></div>
new Spreadsheet({
      dialogBeforeOpen: (args: DialogBeforeOpenEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

fileMenuBeforeClose

EmitType<BeforeOpenCloseMenuEventArgs>

Triggers before closing the file menu.

<div id='Spreadsheet'></div>
new Spreadsheet({
      fileMenuBeforeClose: (args: BeforeOpenCloseMenuEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

fileMenuBeforeOpen

EmitType<BeforeOpenCloseMenuEventArgs>

Triggers before opening the file menu.

<div id='Spreadsheet'></div>
new Spreadsheet({
      fileMenuBeforeOpen: (args: BeforeOpenCloseMenuEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

fileMenuItemSelect

EmitType<MenuSelectEventArgs>

Triggers when the file menu item is selected.

<div id='Spreadsheet'></div>
new Spreadsheet({
      fileMenuItemSelect: (args: MenuSelectEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

openComplete

EmitType<Object>

Triggers when the spreadsheet importing gets completed.

<div id='Spreadsheet'></div>
new Spreadsheet({
      openComplete: (args: Object) => {
      }
     ...
 }, '#Spreadsheet');

openFailure

EmitType<OpenFailureArgs>

Triggers when the opened Excel file fails to load.

<div id='Spreadsheet'></div>
new Spreadsheet({
      openFailure: (args: OpenFailureArgs) => {
      }
     ...
 }, '#Spreadsheet');

queryCellInfo

EmitType<CellInfoEventArgs>

Triggered every time a request is made to access cell information.

<div id='Spreadsheet'></div>
new Spreadsheet({
     queryCellInfo: (args: CellInfoEventArgs) => {
     }
     ...
 }, '#Spreadsheet');

saveComplete

EmitType<SaveCompleteEventArgs>

Triggers after saving the Spreadsheet as Excel file.

<div id='Spreadsheet'></div>
new Spreadsheet({
      saveComplete: (args: SaveCompleteEventArgs) => {
      }
     ...
 }, '#Spreadsheet');

select

EmitType<SelectEventArgs>

Triggers after the cell or range of cells is selected.

<div id='Spreadsheet'></div>
new Spreadsheet({
     select: (args: SelectEventArgs) => {
     }
     ...
 }, '#Spreadsheet');

sortComplete

EmitType<SortEventArgs>

Triggers after sorting action is completed.

<div id='Spreadsheet'></div>
new Spreadsheet({
      sortComplete: (args: SortEventArgs) => {
      }
     ...
 }, '#Spreadsheet');
Contents
Contents