달나라 노트

Google Apps Script : SpreadsheetApp.openById (File ID로 spreadsheet 객체 얻기) 본문

Google Apps Script

Google Apps Script : SpreadsheetApp.openById (File ID로 spreadsheet 객체 얻기)

CosmosProject 2022. 11. 21. 21:48
728x90
반응형

 

 

 

Google Apps Script에서 어떠한 App에 대한 조작을 하고 싶을 때에는 기본적으로 해당 App 또는 어떤 파일에 대한 객체를 얻어와야 합니다.

 

예를 들어봅시다.

어떤 spreadsheet에 어떠한 값을 입력할거라면 값을 입력하기 전에 값을 입력하길 원하는 spreadsheet의 객체를 얻어와야 한다는 것이죠.

 

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  ... do something ...
}

 

이때 대표적으로 사용하는 method가 위처럼 getActiveSpreadsheet() method입니다.

보통 저희는 뭔가 조작을 가할 spreadsheet를 켜두고 작업하고, 어떤 spreadsheet에 들어가서 Google Script를 적어 어떤 기능을 만들기 때문이죠.

따라서 getActiveSpreadsheet() method는 현재 active 상태인(= 현재 켜져있는 = 현재 코드가 적혀있는) spreadsheet의 객체를 얻어와줍니다.

 

그리고 이렇게 얻어온 spreadsheet 객체를 이용해 여러 작업을 하게 되겠죠.

 

 

 

근데 단순히 getActiveSpreadsheet() method만이 spreadsheet 객체를 얻어올 수 있는 것은 아닙니다.

사실 현재 active 상태인 spreadsheet의 정보를 얻어오라는 것은 좀 애매하죠.

 

즉, Google Drive에서 모든 파일이나 폴더에 부여하는 고유한 ID를 이용해서 spreadsheet 정보를 얻어올 수 있습니다.

 

이를 위해선 먼저 원하는 spreadsheet 파일의 고유 ID를 알아야겠죠.

파일의 고유 ID를 알아내는 방법은 아래 링크를 참고하면 됩니다.

File ID 알아내기 = https://cosmosproject.tistory.com/702

 

저는 my_test라는 spreadsheet를 만들어두고

이 spreadsheet 파일의 ID를 abcde12345라고 가정하겠습니다.

 

 

Syntax

SpreadsheetApp.openById(id)

 

사용법은 아주 간단합니다.

SpreadsheetApp의 openByID() method를 이용하면 주어진 id를 가진 spreadsheet 객체를 return해줍니다.

 

 

 

 

 

 

 

function myFunction() {
  var spreadsheet = SpreadsheetApp.openById('abcde12345');

  Logger.log(spreadsheet.getName());
  Logger.log(spreadsheet.getId());
}


-- Result
my_test
abcde12345

위 코드는 abcde12345라는 ID를 가진 spreadsheet 파일을 열어 spreadsheet 객체를 얻어오는 코드입니다.

여기서 spreadsheet 파일을 연다는 것은 실제로 인터넷 브라우저로 spreadsheet를 열어준다는 의미가 아니라 코드 내에서 spreadsheet의 정보를 얻어온다는 의미로 받아들이면 됩니다.

 

- var spreadsheet = SpreadsheetApp.openById('abcde12345');

이걸 보시면 abcde12345라는 ID가진 spreadsheet 객체를 얻어오는 부분입니다.

 

위 코드의 결과를 보면 my_test라는 spreadsheet 파일의 객체를 잘 얻어온 것을 볼 수 있죠.

 

 

 

 

 

 

728x90
반응형
Comments