The Spreadsheet provides support for the clipboard operations (cut, copy, and paste). Clipboard operations can be enabled or disabled by setting the enableClipboard
property in Spreadsheet.
By default, the
enableClipboard
property is true.
It is used to cut the data from selected range of cells, rows or columns in a spreadsheet and make it available in the clipboard.
User Interface:
Cut can be done in one of the following ways.
Ctrl + X
| Command + X
keyboard shortcut.cut
method.It is used to copy the data from selected range of cells, rows or columns in a spreadsheet and make it available in the clipboard.
User Interface:
Copy can be done in one of the following ways.
Ctrl + C
| Command + C
keyboard shortcut.copy
method.It is used to paste the clipboard data to the selected range, rows or columns. You have the following options in Paste,
Paste Special
- You can paste the values with formatting.Paste
- You can paste only the values without formatting.It also performs for external clipboard operation. If you perform cut and paste, clipboard data will be cleared, whereas in copy and paste the clipboard contents will be maintained. If you perform paste inside the copied range, the clipboard data will be cleared.
User Interface:
Paste can be done in one of the following ways.
Ctrl + V
| Command + V
keyboard shortcut.paste
method.If you use the Keyboard shortcut key for cut (
Ctrl + X
) | copy (Ctrl + C
) from other sources, you should useCtrl + V
shortcut while pasting into the spreadsheet.
//Initialize action items.
let items = [
{
text: "Copy"
},
{
text: "Cut"
},
{
text: "Paste"
}
];
// Initialize the DropDownButton component.
let drpDownBtn = new ej.splitbuttons.DropDownButton({
items: items,
cssClass: "e-round-corner",
select: (args) => {
if (args.item.text === 'Copy')
spreadsheet.copy();
if (args.item.text === 'Cut')
spreadsheet.cut();
if (args.item.text === 'Paste')
spreadsheet.paste();
}
});
// Render initialized DropDownButton.
drpDownBtn.appendTo("#element");
// Initialize the Spreadsheet component.
var columns = [
{
width: 130
},
{
width: 92
},
{
width: 96
}
];
var spreadsheet = new ej.spreadsheet.Spreadsheet({
sheets: [{ ranges: [{ dataSource: defaultData }], columns: columns }],
enableClipboard: true
});
// Render initialized Spreadsheet.
spreadsheet.appendTo('#spreadsheet');
<!DOCTYPE html><html lang="en"><head>
<title>EJ2 SpreadSheet</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Typescript UI Controls">
<meta name="author" content="Syncfusion">
<link rel="shortcut icon" href="resources/favicon.ico">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-buttons/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-splitbuttons/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-lists/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-navigations/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-popups/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-dropdowns/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-grids/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-spreadsheet/styles/material.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>
<script src="system.config.js"></script>
<script src="es5-datasource.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/21.2.3/dist/ej2.min.js" type="text/javascript"></script>
<script src="es5-datasource.js" type="text/javascript"></script>
</head>
<body>
<!--Element which is going to render-->
<button id="element">Clipboard</button>
<div id="container">
<div id="spreadsheet"></div>
</div>
<script>
var ele = document.getElementById('container');
if(ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
</body></html>
The following example shows, how to prevent the paste action in spreadsheet. In actionBegin
event, you can set cancel
argument as false in paste request type.
//Initialize action items.
let items = [
{
text: "Copy"
},
{
text: "Cut"
},
{
text: "Paste"
}
];
// Initialize the DropDownButton component.
let drpDownBtn = new ej.splitbuttons.DropDownButton({
items: items,
cssClass: "e-round-corner",
select: (args) => {
if (args.item.text === 'Copy')
spreadsheet.copy();
if (args.item.text === 'Cut')
spreadsheet.cut();
if (args.item.text === 'Paste')
spreadsheet.paste();
}
});
// Render initialized DropDownButton.
drpDownBtn.appendTo("#element");
// Initialize the Spreadsheet component.
var columns = [
{
width: 130
},
{
width: 92
},
{
width: 96
}
];
var spreadsheet = new ej.spreadsheet.Spreadsheet({
sheets: [{ ranges: [{ dataSource: defaultData }], columns: columns }],
enableClipboard: true
});
// Render initialized Spreadsheet.
spreadsheet.appendTo('#spreadsheet');
<!DOCTYPE html><html lang="en"><head>
<title>EJ2 SpreadSheet</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Typescript UI Controls">
<meta name="author" content="Syncfusion">
<link rel="shortcut icon" href="resources/favicon.ico">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-buttons/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-splitbuttons/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-lists/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-navigations/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-popups/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-dropdowns/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-grids/styles/material.css" rel="stylesheet">
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-spreadsheet/styles/material.css" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>
<script src="system.config.js"></script>
<script src="es5-datasource.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/21.2.3/dist/ej2.min.js" type="text/javascript"></script>
<script src="es5-datasource.js" type="text/javascript"></script>
</head>
<body>
<!--Element which is going to render-->
<button id="element">Clipboard</button>
<div id="container">
<div id="spreadsheet"></div>
</div>
<script>
var ele = document.getElementById('container');
if(ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
</body></html>