This page covers a next version of Handsontable, and is not published yet.

This page covers a non-latest version of Handsontable.

# CopyPaste

# Description

This plugin enables the copy/paste functionality in the Handsontable. The functionality works for API, Context Menu, using keyboard shortcuts and menu bar from the browser. Possible values:

  • true (to enable default options),
  • false (to disable completely).

or an object with values:

See the copy/paste demo for examples.

Example

// Enables the plugin with default values
copyPaste: true,
// Enables the plugin with custom values
copyPaste: {
  columnsLimit: 25,
  rowsLimit: 50,
  pasteMode: 'shift_down',
  uiContainer: document.body,
},

# Options

# copyPaste

Source code (opens new window)

copyPaste.copyPaste : object | boolean

The copyPaste option configures the CopyPaste plugin.

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

Setting Description
true (default) Enable the CopyPaste plugin with the default configuration
false Disable the CopyPaste plugin
An object - Enable the CopyPaste plugin
- Modify the CopyPaste plugin options

If you set the copyPaste option to an object, you can set the following CopyPaste plugin options:

Option Possible settings Description
columnsLimit A number (default: Infinity) A maximum number of columns that can be copied
rowsLimit A number (default: Infinity) A maximum number of columns that can be copied
pasteMode 'overwrite' | 'shift_down' | 'shift_right' When pasting:
'overwrite': overwrite currently-selected cells
'shift_down': move currently-selected cells down
'shift_right': move currently-selected cells to the right
uiContainer An HTML element A UI container for the secondary focusable element

Read more:

Default: true Example

// disable the `CopyPaste` plugin
copyPaste: false,

// enable the `CopyPaste` plugin
// and modify the `CopyPaste` plugin options
copyPaste: {
  // set the maximum number of columns that can be copied
  columnsLimit: 25,
  // set the maximum number of rows that can be copied
  rowsLimit: 50,
  // set the paste behavior
  pasteMode: 'shift_down',
  // set the UI container
  uiContainer: document.body,
},

# Members

# columnsLimit

Source code (opens new window)

copyPaste.columnsLimit : number

Maximum number of columns than can be copied to clipboard using Ctrl/Cmd + C.

Default: Infinity

# pasteMode

Source code (opens new window)

copyPaste.pasteMode : string

Defines paste (Ctrl/Cmd + V) behavior.

  • Default value "overwrite" will paste clipboard value over current selection.
  • When set to "shift_down", clipboard data will be pasted in place of current selection, while all selected cells are moved down.
  • When set to "shift_right", clipboard data will be pasted in place of current selection, while all selected cells are moved right.

Default: "overwrite"

# rowsLimit

Source code (opens new window)

copyPaste.rowsLimit : number

Maximum number of rows than can be copied to clipboard using Ctrl/Cmd + C.

Default: Infinity

# uiContainer

Source code (opens new window)

copyPaste.uiContainer : HTMLElement

UI container for the secondary focusable element.

# Methods

# copy

Source code (opens new window)

copyPaste.copy()

Copies the selected cell into the clipboard.

# cut

Source code (opens new window)

copyPaste.cut()

Cuts the selected cell into the clipboard.

# destroy

Source code (opens new window)

copyPaste.destroy()

Destroys the plugin instance.

# disablePlugin

Source code (opens new window)

copyPaste.disablePlugin()

Disables the plugin functionality for this Handsontable instance.

# enablePlugin

Source code (opens new window)

copyPaste.enablePlugin()

Enables the plugin functionality for this Handsontable instance.

# getRangedCopyableData

Source code (opens new window)

copyPaste.getRangedCopyableData(ranges) ⇒ string

Creates copyable text releated to range objects.

Param Type Description
ranges Array<object> Array of objects with properties startRow, endRow, startCol and endCol.

Returns: string - Returns string which will be copied into clipboard.

# getRangedData

Source code (opens new window)

copyPaste.getRangedData(ranges) ⇒ Array<Array>

Creates copyable text releated to range objects.

Param Type Description
ranges Array<object> Array of objects with properties startRow, startCol, endRow and endCol.

Returns: Array<Array> - Returns array of arrays which will be copied into clipboard.

# isEnabled

Source code (opens new window)

copyPaste.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 than the CopyPaste#enablePlugin method is called.

# paste

Source code (opens new window)

copyPaste.paste(pastableText, [pastableHtml])

Simulates the paste action.

Param Type Default Description
pastableText string Value as raw string to paste.
[pastableHtml] string "" optional Value as HTML to paste.

# setCopyableText

Source code (opens new window)

copyPaste.setCopyableText()

Prepares copyable text from the cells selection in the invisible textarea.

# updatePlugin

Source code (opens new window)

copyPaste.updatePlugin()

Updates the plugin's state.

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

Last Updated: Apr 19, 2024