GCP/Apps Script
Apps Script로 Google Sheets의 a1notaion을 getRange에서 사용되는 row, column, numRows, numColumns 범위로 변경
whistory
2023. 6. 22. 14:54
반응형
Apps Script로 Google Sheets의 데이터들을 가져올 때 getRange()를 사용한다.
a1Notation을 그냥 사용해도 되지만,
a1Notation을 입력 받고, 이를 getRange(row, column, numRows, numColumns) 으로 변경해야 할 경우가 있을 수도 있기 때문에 변환하는기능을 구현해본다.
function getSheetValues() {
const sheet = SpreadsheetApp.getActive().getSheetByName("상품리스트_지사용");
const range = convertA1NotationToRange("A2:C4");
console.log('영역변환 "A2:C4');
console.log(range);
console.log(`${range.row}, ${range.column}, ${range.numRows}, ${range.numColumns}`);
// A1Notaion으로 조회
const A1Values = sheet.getRange("A2:C4").getValues();
console.log(`sheet.getRange("A2:C4").getValues()`);
console.log(A1Values);
// 영역을 수동으로 지정하여 조회
const ManualValues = sheet.getRange(2, 1, 3, 3).getValues();
console.log(`sheet.getRange(2, 1, 3, 3).getValues();`);
console.log(ManualValues);
// A1Notaion을 영역으로 변환하여 조회
const values = sheet.getRange(range.row, range.column, range.numRows, range.numColumns).getValues();
console.log(`sheet.getRange(range.row, range.column, range.numRows, range.numColumns).getValues();`);
console.log(values);
}
/**
* ### Description
* 입력받은 A1Notaion을 getRange의 범위로 변경
* @param {String} a1NotationString.
* @return {Object} Range Info.
*/
function convertA1NotationToRange(a1NotationString) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange(a1NotationString);
var row = range.getRow();
var column = range.getColumn();
var numRows = range.getNumRows();
var numColumns = range.getNumColumns();
// 선택영역 반환
return {
row: row,
column: column,
numRows: numRows,
numColumns: numColumns
};
}
반응형