๋ฐ์ํ
๐ก Apps Script๋ก Google Sheets์ ํ์ฑ(์ ํ)์์ญ์ ์ง์ ํ๋ค.
์น ํ๋ก๊ทธ๋จ์์ setFocus()์ ๋น์ทํ ํจ๊ณผ๋ฅผ ์ค ์ ์๋ค.
๊ฐ๋จํ ์ฌ์ฉ๋ฒ๊ณผ ์์ฉ ์์ ๋ฅผ ์์๋ณธ๋ค.
SpreadsheetApp ์์ ์ ๊ณตํ๋
setActiveRange() ๋ฅผ ์ด์ฉํด ์๋์ ๊ฐ์ด Google Sheets์ ํ์ฑ(์ ํ)์์ญ์ ์ง์ ํด ์ค ์ ์๋ค.
์๋์ ๊ฐ์ด setActiveRange() ์์ range ๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ค.
// ๋ฐฉ์ #1
const range = sheet.getRange("A1");
sheet.setActiveRange(range);
// ๋ฐฉ์ #2
sheet.setActiveRange(sheet.getRange("A1"));
๋จ์ผ ์์ญ ์ง์
function setCellPositon() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("์ํธ22");
const range = sheet.getRange("A1");
sheet.setActiveRange(range);
}
๋ค์ค ์์ญ ์ง์
function setCellPositon() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("์ํธ22");
const range = sheet.getRange("A1:F"+sheet.getLastRow());
sheet.setActiveRange(range);
}
์์ฉํด๋ณด๊ธฐ
Apps Script๋ก Google Sheets์ ์ ์ฅ ์์ญ ํ์ ๊ฐ ์ฒดํฌํ๊ธฐ
ํ์ ๊ฐ์ ์ฒดํฌํ๊ณ , ํ์ ์ ๋ ฅ์์ ๊ฑธ๋ฆฐ ์ ๋ก ํฌ์ธํธ๋ฅผ ์ด๋ํด๋ณธ๋ค.
์ฑ๋ณ(C5)๋ ํ์์ ๋ ฅ ๊ฐ์ ๋๋ค.
๋ผ๋ ๋ฉ์์ง์์ ์ ๊ฐ์ธ ‘C5’๋ง ์ถ์ถํ๋ค.
์ ๊ท์์ ์ด์ฉํด ๊ดํธ ์์ ๊ฐ์ ์ถ์ถํ๋ค.
const regExp = /\\(([^)]+)\\)/;
const matches = regExp.exec(validationCheck);
console.log(matches[1]);
console.log(validationCheck + "๋ ํ์์
๋ ฅ ๊ฐ์
๋๋ค.")
์ด์ ํ์ ๊ฐ์ ์ฒดํฌํ๋ ๋ถ๋ถ์ ์๋ ๋ก์ง์ ์ถ๊ฐํ๋ค.
const regExp = /\\(([^)]+)\\)/;
const matches = regExp.exec(validationCheck);
const range = sheet.getRange(matches[1]);
sheet.setActiveRange(range);
function insertSheetData() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Sheet3");
const table_id = "insert_test";
const reqIdx = [
{name:'์ด๋ฆ(A' , index:1}
, {name:'๋์ด(B' , index:2}
, {name:'์ฑ๋ณ(C' , index:3}
];
const validationCheck = dataNullCheck(sheet, 2, reqIdx);
if ( validationCheck != "done" ) {
const regExp = /\\(([^)]+)\\)/;
const matches = regExp.exec(validationCheck);
const range = sheet.getRange(matches[1]);
sheet.setActiveRange(range);
console.log(validationCheck + "๋ ํ์์
๋ ฅ ๊ฐ์
๋๋ค.")
return;
}
const colInfo = {startRow:2, startColumn:1};
const saveTime = getDateTime("BQ");
const addValues = {
status : "Y"
, saveTime : saveTime
};
const resultFlag = loadSpreadsheet(sheet, global_datasetId, table_id, colInfo, addValues);
console.log(`Result Flag : ${resultFlag}`);
}
/**
* ๋ฐ์ดํฐ null ์ฒดํฌ. like validation check
* @param {object} spreadSheet = ํด๋น function์ ํธ์ถํ spreadsheet
* @param {string} startRow = ์์ ํ๋ฒํธ
* @param {object} keyIdx = ํค๊ฐ ์ ๋ณด
*/
function dataNullCheck (spreadSheet, startRow, keyIdx) {
for ( q in keyIdx ) {
var endRow = spreadSheet.getLastRow()-startRow+1;
var data = spreadSheet.getSheetValues(startRow, keyIdx[q].index, endRow, 1);
for ( i in data ) {
var value = data[i];
if ( isNull(value) ) {
return keyIdx[q].name + (parseInt(i)+parseInt(startRow)) + ")";
}
}
}
return "done";
}
๋ฐ์ํ
'GCP > Apps Script' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Apps Script๋ก LanguageApp์Translate API๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฒ์ญํ๊ธฐ (0) | 2023.03.14 |
---|---|
Apps Script๋ก Google Sheets์ Toast ๋ฉ์์ง ๋์ฐ๊ธฐ (0) | 2023.03.10 |
Apps Script๋ก Google Sheets์ ์ ๋ ฌ(sort) ์ ์ฉํ๊ธฐ (1) | 2023.03.07 |
Apps Script๋ก Google Sheets์ Filter ์ค์ ํ๊ธฐ (0) | 2023.03.02 |
Apps Script๋ก Google Sheets์ ์์ญ(์นดํ ๊ณ ๋ฆฌ) ๋ณ ์์ ์ฒ๋ฆฌ (0) | 2023.02.17 |