[]
사용자는 위젯에서 데이터를 잘라내기(Cut), 복사(Copy), 붙여넣기(Paste) 할 수 있습니다.
다음은 잘라내기, 복사, 붙여넣기를 사용할 때 적용되는 조건입니다:
붙여넣기를 할 때 활성 셀은 대상 범위의 첫 번째 셀이 됩니다.
복사 및 붙여넣기를 할 경우 대상 범위의 크기는 원본 범위의 크기에 맞춰 조정될 수 있습니다.
원본 범위의 행 또는 열 수가 대상 범위보다 많고 대상 범위가 시트의 경계에 가까운 경우, 행 또는 열이 자동으로 추가될 수 있습니다. 이 기능을 사용하려면 Workbook 옵션에서 allowExtendPasteRange 속성을 true로 설정해야 합니다.
여러 범위를 복사할 경우, 행 수나 열 수가 동일하다면 하나의 셀 블록으로 붙여넣을 수 있습니다.
필터링된 행은 단일 셀 범위 또는 행을 복사할 경우 제외되며, 잘라내기 시에는 포함됩니다. 이때 전체 범위가 클립보드에 복사됩니다.
셀 값을 복사하거나 잘라낸 후 표시를 위한 인디케이터를 표시할 수 있습니다. options.cutCopyIndicatorVisible 속성으로 인디케이터 표시 여부를, options.cutCopyIndicatorBorderColor 속성으로 테두리 색상을 지정할 수 있습니다. 아래 이미지는 셀 블록을 선택하고 Ctrl + C
키를 눌렀을 때 표시되는 인디케이터를 보여줍니다.
헤더 행 또는 열을 복사/붙여넣을지 여부는 Workbook
의 options.copyPasteHeaderOptions 속성으로 지정할 수 있습니다.
options.clipBoardOptions 속성은 데이터의 복사 및 붙여넣기에만 적용됩니다.
일부 스타일은 Excel과 SpreadJS 간에도 복사 및 붙여넣기가 가능합니다. 자세한 내용은 Excel 개체를 SpreadJS로 복사하기 문서에서 확인할 수 있습니다.
다음 예제는 코드로 복사 및 붙여넣기를 구현하는 방법을 보여줍니다.
window.onload = function()
{
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var sheet = spread.getActiveSheet();
sheet.setValue(0, 0, 1, GC.Spread.Sheets.SheetArea.viewport);
sheet.setValue(1, 0, 2, GC.Spread.Sheets.SheetArea.viewport);
sheet.setFormula(2, 0, "=A1+A2", GC.Spread.Sheets.SheetArea.viewport);
sheet.setValue(0, 1, 3, GC.Spread.Sheets.SheetArea.viewport);
sheet.setValue(1, 1, 4, GC.Spread.Sheets.SheetArea.viewport);
sheet.setFormula(2, 1, "=B1+B2", GC.Spread.Sheets.SheetArea.viewport);
var fromRange = [new GC.Spread.Sheets.Range(0, 0, 3, 2)];
var toRanges = [new GC.Spread.Sheets.Range(5, 0, 3, 2)];
$("#button1").click(function ()
{
// Cut Paste Action
spread.commandManager().execute({cmd: "clipboardPaste",
sheetName: "Sheet1", fromSheet: sheet, fromRanges: fromRange,
pastedRanges: toRanges, isCutting: true, clipboardText: "",
pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all});
});
$("#button2").click(function ()
{
spread.commandManager().execute({cmd: "clipboardPaste",
sheetName: "Sheet1", fromSheet: sheet, fromRanges: fromRange,
pastedRanges: toRanges, isCutting: false, clipboardText: "",
pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all});
});
이 예제는 기본 잘라내기, 복사, 붙여넣기 키를 취소하여 클립보드 동작을 비활성화합니다.
window.onload = function()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var activeSheet = spread.getActiveSheet();
spread.commandManager().setShortcutKey(undefined,
GC.Spread.Commands.Key.c, true, false, false, false);
spread.commandManager().setShortcutKey(undefined,
GC.Spread.Commands.Key.v, true, false, false, false);
spread.commandManager().setShortcutKey(undefined,
GC.Spread.Commands.Key.x, true, false, false, false);
}
이 예제에서는 붙여넣기(paste) 동작을 취소합니다.
Ask ChatGPT
$(document).ready(function ()
{
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var sheet = spread.getActiveSheet();
sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (e, args)
{
args.cancel = true;
});
});