GCP/Apps Script

Apps Script๋กœ Google Sheets์˜ Toast ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

whistory 2023. 3. 10. 10:38
๋ฐ˜์‘ํ˜•

 

 

๐Ÿ’ก 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 ์ฒ˜๋ฆฌ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜๋ฉด ๊ธฐ์กด์˜ '์กฐํšŒ์ค‘' ๋ฉ”์„ธ์ง€๋Š” ๋‹ซํžˆ๊ณ , '์กฐํšŒ์™„๋ฃŒ' ๋ฉ”์„ธ์ง€๋ฅผ ๋„์›Œ์ค€๋‹ค.

๋ฐ˜์‘ํ˜•