[]
        
(Showing Draft Content)

클립보드 동작

사용자는 위젯에서 데이터를 잘라내기(Cut), 복사(Copy), 붙여넣기(Paste) 할 수 있습니다.

다음은 잘라내기, 복사, 붙여넣기를 사용할 때 적용되는 조건입니다:

  • 붙여넣기를 할 때 활성 셀은 대상 범위의 첫 번째 셀이 됩니다.

  • 복사 및 붙여넣기를 할 경우 대상 범위의 크기는 원본 범위의 크기에 맞춰 조정될 수 있습니다.

  • 원본 범위의 행 또는 열 수가 대상 범위보다 많고 대상 범위가 시트의 경계에 가까운 경우, 행 또는 열이 자동으로 추가될 수 있습니다. 이 기능을 사용하려면 Workbook 옵션에서 allowExtendPasteRange 속성을 true로 설정해야 합니다.

  • 여러 범위를 복사할 경우, 행 수나 열 수가 동일하다면 하나의 셀 블록으로 붙여넣을 수 있습니다.

  • 필터링된 행은 단일 셀 범위 또는 행을 복사할 경우 제외되며, 잘라내기 시에는 포함됩니다. 이때 전체 범위가 클립보드에 복사됩니다.

셀 값을 복사하거나 잘라낸 후 표시를 위한 인디케이터를 표시할 수 있습니다. options.cutCopyIndicatorVisible 속성으로 인디케이터 표시 여부를, options.cutCopyIndicatorBorderColor 속성으로 테두리 색상을 지정할 수 있습니다. 아래 이미지는 셀 블록을 선택하고 Ctrl + C 키를 눌렀을 때 표시되는 인디케이터를 보여줍니다.



헤더 행 또는 열을 복사/붙여넣을지 여부는 Workbookoptions.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;
    });
});