Google Sheets 확장

Google Apps Script를 사용하면 Google Sheets로 새롭고 멋진 작업을 할 수 있습니다. Apps Script를 사용하여 맞춤 메뉴, 대화상자, 사이드바를 Google Sheets에 추가할 수 있습니다. 또한 Sheets의 커스텀 함수를 작성하고 Calendar, Drive, Gmail과 같은 다른 Google 서비스와 Sheets를 통합할 수 있습니다.

Google Sheets용으로 설계된 대부분의 스크립트는 배열을 조작하여 스프레드시트의 셀, 행, 열과 상호작용합니다. 자바스크립트에서 배열에 익숙하지 않은 경우 Codecademy에서는 배열을 위한 유용한 학습 모듈을 제공합니다. (이 과정은 Google이 개발하지 않았으며 Google과 관련이 없습니다.)

Google Sheets에서 Apps Script를 사용하는 방법에 대한 빠른 소개는 매크로, 메뉴, 맞춤 함수에 대한 5분 빠른 시작 가이드를 참조하세요.

시작하기

Apps Script에는 프로그래매틱 방식으로 Google Sheets를 만들고, 읽고, 수정할 수 있는 특수 API가 포함되어 있습니다. Apps Script는 Google Sheets와 상호작용할 수 있는 두 가지 방법으로 작동합니다. 즉, 스크립트의 사용자에게 스프레드시트에 대한 적절한 권한이 있는 경우 스크립트를 만들거나 수정할 수 있습니다. 또한 스크립트를 바인딩하여 사용자 인터페이스를 변경하거나 스프레드시트를 열 때 응답할 수 있는 특별한 기능을 제공합니다. 바인딩된 스크립트를 만들려면 Google Sheets에서 확장 프로그램 > Apps Script를 선택합니다.

스프레드시트 서비스는 Google Sheets를 그리드로 취급하며 2차원 배열로 작동합니다. 스프레드시트에서 데이터를 검색하려면 데이터가 저장된 스프레드시트에 액세스하고 데이터를 보관하는 스프레드시트에서 범위를 가져온 다음 셀 값을 가져와야 합니다. Apps Script를 사용하면 스프레드시트에서 구조화된 데이터를 읽고 자바스크립트 객체를 만들어 데이터에 쉽게 액세스할 수 있습니다.

데이터 읽기

아래 이미지와 같이 스프레드시트에 저장하는 제품 이름과 제품 번호 목록이 있다고 가정해 보겠습니다.

아래 예시는 제품 이름과 제품 번호를 검색하고 로깅하는 방법을 보여줍니다.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

로그 보기

로깅된 데이터를 보려면 스크립트 편집기 상단에서 실행 로그를 클릭합니다.

데이터 쓰기

새 제품 이름 및 번호와 같은 데이터를 스프레드시트에 저장하려면 스크립트 끝에 다음 코드를 추가합니다.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

위 코드는 스프레드시트 하단에 지정된 값과 함께 새 행을 추가합니다. 이 함수를 실행하면 스프레드시트에 추가된 새 행이 표시됩니다.

맞춤 메뉴 및 사용자 인터페이스

맞춤 메뉴, 대화상자, 사이드바를 추가하여 Google Sheets를 맞춤설정할 수 있습니다. 메뉴 만들기의 기본 사항을 알아보려면 메뉴 가이드를 참고하세요. 대화상자의 콘텐츠를 맞춤설정하는 방법에 관한 자세한 내용은 HTML 서비스 가이드를 참고하세요.

스프레드시트 내 이미지나 그림에 스크립트 함수를 연결할 수도 있습니다. 이 함수는 사용자가 이미지를 클릭하거나 그림을 그릴 때 실행됩니다. 자세한 내용은 Google Sheets의 이미지 및 그림을 참고하세요.

부가기능의 일부로 커스텀 인터페이스를 게시할 계획이라면 스타일 가이드에 따라 Google Sheets 편집기의 스타일과 레이아웃과의 일관성을 유지하세요.

Google Forms에 연결하기

Apps Script를 사용하면 FormsSheets 서비스를 통해 Google Forms를 Google Sheets와 연결할 수 있습니다. 이 기능은 스프레드시트의 데이터를 기반으로 Google 양식을 자동으로 만들 수 있습니다. Apps Script를 사용하면 사용자가 양식에 응답한 후 onFormSubmit와 같은 트리거를 사용하여 특정 작업을 수행할 수도 있습니다. Google Sheets를 Google Forms에 연결하는 방법을 자세히 알아보려면 5분 빠른 시작에서 Google Forms 응답 관리를 사용해 보세요.

형식 지정

Range 클래스에는 셀 형식 또는 셀 범위에 액세스하고 수정하는 setBackground(color)와 같은 메서드가 있습니다. 다음 예에서는 범위의 글꼴 스타일을 설정하는 방법을 보여줍니다.

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

데이터 검증

Apps Script를 사용하면 Google Sheets에서 기존 데이터 검증 규칙에 액세스하거나 새 규칙을 만들 수 있습니다. 예를 들어 다음 샘플은 셀에서 1에서 100 사이의 숫자만 허용하는 데이터 검증 규칙을 설정하는 방법을 보여줍니다.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

데이터 검증 규칙 작업에 대한 자세한 내용은 SpreadsheetApp.newDataValidation(), DataValidationBuilder, Range.setDataValidation(rule)을 참고하세요.

차트

Apps Script를 사용하면 특정 범위의 데이터를 나타내는 차트를 스프레드시트에 삽입할 수 있습니다. 다음 예에서는 A1:B15 셀에 차트화 가능한 데이터가 있다고 가정하고 삽입된 막대 그래프를 생성합니다.

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

차트를 스프레드시트에 삽입하는 방법에 대한 자세한 내용은 EmbeddedChart 및 특정 차트 작성 도구(예: EmbeddedPieChartBuilder)를 참조하세요.

Google Sheets의 맞춤 함수

커스텀 함수는 Apps Script를 사용하여 함수 동작을 정의한다는 점을 제외하면 =SUM(A1:A5)와 같은 기본 제공 스프레드시트 함수와 유사합니다. 예를 들어 값을 인치에서 밀리미터로 변환하는 맞춤 함수 in2mm()를 만든 다음 셀에 =in2mm(A1) 또는 =in2mm(10)를 입력하여 스프레드시트에서 수식을 사용할 수 있습니다.

커스텀 함수에 대해 자세히 알아보려면 5분 빠른 시작의 메뉴 및 커스텀 함수를 사용해 보거나 커스텀 함수 심층 가이드를 살펴보세요.

매크로

매크로는 Google Sheets UI에서 Apps Script 코드를 실행하는 또 다른 방법입니다. 맞춤 함수와 달리 단축키를 사용하거나 Google Sheets 메뉴를 통해 활성화할 수 있습니다. 자세한 내용은 Google Sheets 매크로를 참고하세요.

Google Sheets의 부가기능

부가기능은 Google Sheets 내에서 실행되고 Google Sheets 부가기능 스토어에서 설치할 수 있는 특수하게 패키징된 Apps Script 프로젝트입니다. Google Sheets용으로 개발한 스크립트를 전 세계 사용자와 공유하려면 Apps Script에서 스크립트를 부가기능으로 게시하여 다른 사용자가 부가기능 스토어에서 설치할 수 있도록 합니다.

트리거

Google Sheets 파일에 결합된 스크립트는 onOpen()onEdit() 함수와 같은 간단한 트리거를 사용하여 스프레드시트에 대한 수정 액세스 권한이 있는 사용자가 스프레드시트를 열거나 수정할 때 자동으로 응답할 수 있습니다.

간단한 트리거와 마찬가지로 설치 가능한 트리거를 사용하면 특정 이벤트가 발생할 때 Google Sheets에서 자동으로 함수를 실행할 수 있습니다. 하지만 설치 가능한 트리거는 단순 트리거보다 유연성이 뛰어나며 열기, 수정, 변경, 양식 제출, 시간 기반 (클록) 이벤트를 지원합니다.