GCP/Apps Script

Apps Script๋กœ Google Sheets์—์„œ ์ƒํ’ˆ ๊ด€๋ฆฌ sheet ๋งŒ๋“ค๊ธฐ

whistory 2023. 4. 11. 10:02
๋ฐ˜์‘ํ˜•

๐Ÿ’ก Google Sheets์—์„œ ์ƒํ’ˆ์„ ๋“ฑ๋กํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ด๋ณธ๋‹ค

 

์ž…๋ ฅํผ์—์„œ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด์— ์ž…๋ ฅํ•œ ์ƒํ’ˆ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ด๋ณธ๋‹ค.

 

 

 

์ž…๋ ฅ ํ™”๋ฉด์—์„œ ์ž…๋ ฅํ•œ ์ •๋ณด๋“ค์„ console์— ๋ฟŒ๋ ค์ค˜ ๋ณธ๋‹ค.

/**
 * ์ƒํ’ˆ ๋“ฑ๋ก
 */
function addItem() {
  const inputSheet  = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅform");
  const listSheet   = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅ๋ฆฌ์ŠคํŠธ");

  const valueRange  = inputSheet.getRange("B1:B4");
  const values      = valueRange.getValues();

  for ( i in values ) {
    console.log(values[i]);
  }
}

์ •์ƒ์ ์œผ๋กœ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.

 

 

 

 

ํ•„์ˆ˜ ์ž…๋ ฅ ๊ฐ’๋“ค์„ ์ฒดํฌํ•˜๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด๋ณธ๋‹ค.

/**
 * ์ƒํ’ˆ ๋“ฑ๋ก
 */
function addItem() {
  const inputSheet  = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅform");
  const listSheet   = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅ๋ฆฌ์ŠคํŠธ");

  const valueRange  = inputSheet.getRange("B1:B4");
  const values      = valueRange.getValues();

  const requiredValues  = [0, 1];
  for ( i in values ) {
    console.log(values[i]);
    for (j in requiredValues) {
      if ( i == j && values[i][0] == "" ) {
        console.log("ํ•„์ˆ˜๊ฐ’์—๋Š” ๋นˆ๊ฐ’์ด ๋“ค์–ด์˜ฌ์ˆ˜ ์—†์Œ " + i);
        return;
      }
    }
  }
}

 

 

 

 

์ž…๋ ฅํ•œ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ ์— ์ถ”๊ฐ€ํ•ด๋ณธ๋‹ค.

๋ฆฌ์ŠคํŠธ ์‹œํŠธ์˜ ๋งˆ์ง€๋ง‰ ํ–‰์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ํ…Œ๋‘๋ฆฌ๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.

/**
 * ์ƒํ’ˆ ๋“ฑ๋ก
 */
function addItem() {
  const inputSheet  = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅform");
  const listSheet   = SpreadsheetApp.getActive().getSheetByName("์ž…๋ ฅ๋ฆฌ์ŠคํŠธ");

  const valueRange  = inputSheet.getRange("B1:B4");
  const values      = valueRange.getValues();

  const requiredValues  = [0, 1];		// ํ•„์ˆ˜ ์ž…๋ ฅ 
  let dataRow           = new Array(1);
  dataRow[0]            = new Array(values.length);
  for ( i in values ) {
    dataRow[0][i] = values[i][0];
    for (j in requiredValues) {
      if ( i == j && values[i][0] == "" ) {
        console.log("ํ•„์ˆ˜๊ฐ’์—๋Š” ๋นˆ๊ฐ’์ด ๋“ค์–ด์˜ฌ์ˆ˜ ์—†์Œ " + i);
        alertMessage("์‹คํŒจ", "ํ•„์ˆ˜์ž…๋ ฅ๊ฐ’์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
        return;
      }
    }
  }
  console.log(dataRow);
  
  const listLastRow = listSheet.getLastRow()+1;
  const listRange   = listSheet.getRange(`A${listLastRow}:D${listLastRow}`);
  listRange.setValues(dataRow).setBorder(true, true, true, true, true, true);

  valueRange.clearContent();
  console.log("์ž…๋ ฅ์™„๋ฃŒ");
  alertMessage("์„ฑ๊ณต", "์ƒํ’ˆ์ด ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
}

 

 

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•