JavaScript Data Grid MergeCells

Description

Plugin, which allows merging cells in the table (using the initial configuration, API or context menu).

Example

const hot = new Handsontable(document.getElementById('example'), {
 data: getData(),
 mergeCells: [
   {row: 0, col: 3, rowspan: 3, colspan: 3},
   {row: 2, col: 6, rowspan: 2, colspan: 2},
   {row: 4, col: 8, rowspan: 3, colspan: 3}
 ],

Options

mergeCells

Source code (opens new window)

mergeCells.mergeCells : boolean | Array<object>

The mergeCells option configures the MergeCells plugin.

You can set the mergeCells option to one of the following:

Setting Description
true Enable the MergeCells plugin
false Disable the MergeCells plugin
An array of objects - Enable the MergeCells plugin
- Merge specific cells at initialization

To merge specific cells at Handsontable's initialization, set the mergeCells option to an array of objects, with the following properties:

Property Description
row The row index of the merged section's beginning
col The column index of the merged section's beginning
rowspan The width (as a number of rows) of the merged section
colspan The height (as a number of columns ) of the merged section

Read more:

Default: false
Example

// enable the `MergeCells` plugin
mergeCells: true,

// enable the `MergeCells` plugin
// and merge specific cells at initialization
mergeCells: [
  // merge cells from cell (1,1) to cell (3,3)
  {row: 1, col: 1, rowspan: 3, colspan: 3},
  // merge cells from cell (3,4) to cell (2,2)
  {row: 3, col: 4, rowspan: 2, colspan: 2},
  // merge cells from cell (5,6) to cell (3,3)
  {row: 5, col: 6, rowspan: 3, colspan: 3}
],

Methods

clearCollections

Source code (opens new window)

mergeCells.clearCollections()

Clears the merged cells from the merged cell container.

disablePlugin

Source code (opens new window)

mergeCells.disablePlugin()

Disables the plugin functionality for this Handsontable instance.

enablePlugin

Source code (opens new window)

mergeCells.enablePlugin()

Enables the plugin functionality for this Handsontable instance.

isEnabled

Source code (opens new window)

mergeCells.isEnabled() ⇒ boolean

Checks if the plugin is enabled in the handsontable settings. This method is executed in Hooks#beforeInit hook and if it returns true then the MergeCells#enablePlugin method is called.

merge

Source code (opens new window)

mergeCells.merge(startRow, startColumn, endRow, endColumn)

Merges the specified range.

Emits: Hooks#event:beforeMergeCells, Hooks#event:afterMergeCells

Param Type Description
startRow number Start row of the merged cell.
startColumn number Start column of the merged cell.
endRow number End row of the merged cell.
endColumn number End column of the merged cell.

mergeSelection

Source code (opens new window)

mergeCells.mergeSelection([cellRange])

Merges the selection provided as a cell range.

Param Type Description
[cellRange] CellRange optional Selection cell range.

unmerge

Source code (opens new window)

mergeCells.unmerge(startRow, startColumn, endRow, endColumn)

Unmerges the merged cell in the provided range.

Emits: Hooks#event:beforeUnmergeCells, Hooks#event:afterUnmergeCells

Param Type Description
startRow number Start row of the merged cell.
startColumn number Start column of the merged cell.
endRow number End row of the merged cell.
endColumn number End column of the merged cell.

unmergeSelection

Source code (opens new window)

mergeCells.unmergeSelection([cellRange])

Unmerges the selection provided as a cell range.

Param Type Description
[cellRange] CellRange optional Selection cell range.

updatePlugin

Source code (opens new window)

mergeCells.updatePlugin()

Updates the plugin's state.

This method is executed when updateSettings() is invoked with any of the following configuration options:

Last update: Nov 20, 2024