JavaScript Data Grid 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 then the CopyPaste#enablePlugin method is called.

paste

Source code (opens new window)

copyPaste.paste(pastableText, [pastableHtml])

Simulates the paste action.

Due to security reasons, modern browsers disallow reading from the system clipboard.

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 update: Dec 2, 2022