๐ก Apps Script๋ก Google Sheets ์ฐ์ธก ํ๋จ์ ์ฌํํ ํ ์คํธ ๋ฉ์ธ์ง๋ฅผ ๋์ ์ค ์ ์๋ค.
๊ฐ๋จํ ์์ ์ ์์ฉ ์์ ๋ํด์ ์์๋ณธ๋ค.
Apps Script๋ก Google Sheets ์์ ์ ๊ณตํ๋
Alert ๋ฟ๋ง ์๋๋ผ Toast ์๋ฆผ๋ ์คํ์์ผ ์ค ์ ์๋ค.
๋ฉ์ธ์ง๋ง ๋์ฐ๊ธฐ
function toastMessage() {
SpreadsheetApp.getActiveSpreadsheet().toast('ํ ์คํธ ํ
์คํธ');
}
์ ๋ชฉ๊ณผ ๋ฉ์ธ์ง ๋์ฐ๊ธฐ
function toastMessage() {
SpreadsheetApp.getActiveSpreadsheet().toast('ํ ์คํธ ํ
์คํธ', '์๋ฆผ');
}
์์ฉ
DB์์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ ธ์ ๋ฟ๋ ค์ค ๋ connection pool ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋๋ผ
๊ฐ์ ธ์ฌ ๋๋ง๋ค db์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ์น ํ๋ก๊ทธ๋จ๋ณด๋ค ๋๋ ์ด๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ ์กฐํ ์ค๊ณผ ์กฐํ๊ฐ ์ข ๋ฃ๋์์ ๋์ ๋ฉ์ธ์ง๋ฅผ ํ ์คํธ ๋ฉ์ธ์ง๋ก ๋ฟ๋ ค์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
/**
* ์กฐํ์์ ํ ์คํธ
* ๋ง์ง๋ง ํ๋ผ๋ฏธํฐ๊ฐ ์์์ผ ๊ฒฝ์ฐ ํ์ด๋จธ์ค์ ์์
*/
function executeStart() {
SpreadsheetApp.getActiveSpreadsheet().toast('๋ฐ์ดํฐ๋ฅผ ์กฐํ์ค์
๋๋ค.', '์กฐํ์ค', -1);
}
/**
* ์กฐํ์ข
๋ฃ ํ ์คํธ
* ๋ง์ง๋ง ํ๋ผ๋ฏธํฐ๊ฐ ์์์ผ ๊ฒฝ์ฐ ํ์ด๋จธ ์ค์ (์ด)
*/
function executeEnd() {
SpreadsheetApp.getActiveSpreadsheet().toast('๋ฐ์ดํฐ ์กฐํ๋ฅผ ์๋ฃํ์์ต๋๋ค.', '์กฐํ ์๋ฃ', 2);
}
/**
* ๋ง์คํฐ ๊ฐ์ ธ์ค๊ธฐ
* @param {string} sheetUrl = ํด๋น function์ ํธ์ถํ sheet์ URL
*/
function getMasterData(sheetUrl) {
try {
// ์กฐํ ์์ ๋ฉ์ธ์ง
executeStart();
const sheetName = masterSheetName;
const datasetId = GLOBAL_SAP_DATASET_ID;
const tableId = "TABLE_ID";
const columnName = "id, name, value, date";
const whereState = 'AND bukrs in ("1100", "1200") ';
const orderbyName = "id";
const queryString = 'SELECT ' + columnName + ' FROM `'
+ GLOBAL_PROJECT_ID + "." + datasetId + "." + tableId + '` '
+ ' WHERE 1=1 ' + whereState
+ ' GROUP BY ' + columnName + ' ORDER BY ' + orderbyName + ' ASC ; ';
const dataRange = common.queryAndBinding(sheetUrl, sheetName, queryString, 2, 1, "N", null, "N");
const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheetName);
if ( !common.isNull(dataRange) ) {
common.setTableBorderBySheet(sheet, dataRange, true);
} else {
common.deleteAllRow(sheet, 2);
}
// ์กฐํ ์ข
๋ฃ ๋ฉ์ธ์ง
executeEnd();
} catch (error) {
var msg01 = error.message;
common.alertMessage("โ Error", "Error Message : " + msg01);
Logger.log(msg01);
}
}
์ด๋ ๊ฒ ๋๋ฉด ์กฐํ๋ฅผ ์์ํ ๋
'์กฐํ์ค' ๋ฉ์ธ์ง๊ฐ ๋จ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ฃผ๊ณ border ์ฒ๋ฆฌ๋ฅผ ํ ๋ ๊น์ง ๋ฉ์ธ์ง๊ฐ ๊บผ์ง์ง ์๊ณ ๋จ์์๋ค.
๊ทธ๋ฆฌ๊ณ ์กฐํ ํ border ์ฒ๋ฆฌ๊ฐ ๋ง๋ฌด๋ฆฌ๋๋ฉด ๊ธฐ์กด์ '์กฐํ์ค' ๋ฉ์ธ์ง๋ ๋ซํ๊ณ , '์กฐํ์๋ฃ' ๋ฉ์ธ์ง๋ฅผ ๋์์ค๋ค.