GCP/Apps Script

Apps Script로 Google Sheets의 범위 이름 설정을 이용해 셀 관리하기

whistory 2023. 4. 12. 10:55
반응형

 

💡 Google Sheets의 범위 이름을 사용하는 방법을 알아본다.

 

 

 

Apps script로 Google Sheets의 영역을 R1C1 형식으로만 데이터를 관리하기보다는,

영역의 이름을 지정해 관리하는 방식이 script의 가독성이나 유지 보수 측면에서 유용할 것이다.

 

 

 

 

 

 

범위 이름 지정하기

function setSheetRange() {
  const ss     = SpreadsheetApp.getActive();
  const sheet  = ss.getSheetByName("시트29");

  const rangeName  = sheet.getRange(`A2:A${sheet.getLastRow()}`);
  const rangeCode  = sheet.getRange(`B2:B${sheet.getLastRow()}`);

  ss.setNamedRange("rangeName", rangeName);
  ss.setNamedRange("rangeCode", rangeCode);
}

 

 

 

Google Sheets의 범위 이름 조회

function getSheetRange() {
  const ss     = SpreadsheetApp.getActive();
  const ranges = ss.getNamedRanges();
  for (var i = 0; i < ranges.length; i++) {
    Logger.log(`sheet range ${i} => ${ranges[i].getName()}`);
  }
}

 

 

event 발생 시 범위 이름 재 지정

function getSetSheetRange() {
  const ss     = SpreadsheetApp.getActive();
  const sheet  = ss.getSheetByName("시트29");

  const rangeName  = sheet.getRange(`A2:A${sheet.getLastRow()}`);
  const rangeCode  = sheet.getRange(`B2:B${sheet.getLastRow()}`);
  
  ss.removeNamedRange("rangeName");
  ss.removeNamedRange("rangeCode");
  ss.setNamedRange("rangeName", rangeName);
  ss.setNamedRange("rangeCode", rangeCode);
  
  console.log(ss.getRangeByName("rangeName").getValues());
  console.log(ss.getRangeByName("rangeCode").getValues());
}

 

getRangeByName 을 이용해 범위 이름을 불러오는 방법은,

범위 이름만 잘 생성하면, 뛰어난 가독성으로 운영에 큰 효과를 줄것으로 생각된다.

 

 

 

 

반응형