線上書籍

Home

實戰雲端自動化(GAS研習)

一、常用

  1. 取得試算表 //必須由試算表建立指令碼編輯器 var ss = SpreadsheetApp.getActiveSpreadsheet();

     

  2. 取得試算表id //設定試算表 id SCRIPT_PROP.setProperty("id", ss.getId());

     

  3. PropertiesService 物件 //1. Run > setup var SCRIPT_PROP = PropertiesService.getScriptProperties(); // new property service //將試算表id 寫入屬性 function setup() { //必須由試算表建立指令碼編輯器 var ss = SpreadsheetApp.getActiveSpreadsheet(); //設定試算表 id SCRIPT_PROP.setProperty("id", ss.getId()); //管理員email SCRIPT_PROP.setProperty("adminEmail", Session.getActiveUser().getEmail()); //取得全域變數(試算表有異動,請執行 setup()) var ws = ss.getSheetByName("全域變數"); //取得「全域變數」陣列 var global = ws.getSheetValues(2,1,ws.getLastRow()-1,ws.getLastColumn()); var colName = global.map(function(r){ return r[1] });//欄位名稱 var colValue = global.map(function(r){ return r[3] });//值 for(i in colName){ SCRIPT_PROP.setProperty(colName[i], colValue[i]); } }

     

  4. Logger.log()
    JS=> console.log();
     Logger.log("Hello world"); =>存檔 
    「查看/記錄」

二、getRange()

  1. getRange(row, column):單一儲存格
  2. getRange(row, column, numRows):欄的範圍
  3. getRange(row, column, numRows, numColumns):一整個範圍的儲存格
  4. getRange(a1Notation):getRange('A2:C4');

 

三、取得資料

  1. getValue():只能取得一個儲存格的資料,如果這筆數值是陣列,則只會讀取陣列的第一個資料
  2. getValues():可讀取指定範圍的儲存格資料並轉成陣列型態,陣列的外層是Row,內層是Column
  3. getSheetValues(startRow, startColumn, numRows, numColumns):

  4. getLastColumn():取得最後有資料的欄座標

  5. getLastRow():取得最後有資料的列座標

四、設定資料

  1. setValue():設定一個儲存格的資料
  2. setValues():設定一個範圍的資料

五、取得訪客的gmail

  1. Session.getActiveUser().getEmail():目前狀況只能抓到自已的gmail,或同網域的gmail

六、寫入資料

/* 在最後一列寫入(1) */ /* 109021 A123456809 林暗十一 60 85 90 60 59 */ var rowIndex = ws.getLastRow() + 1; var row = ["109021", "A123456809", "林暗十一", 60, 85, 90, 60, 59]; var values = [row]; /* 寫入一列的某範圍,欄數與values的數量要批配 */ ws.getRange(rowIndex, 1, 1, ws.getLastColumn()).setValues(values); /* 在最後一列寫入(2) */ /* 109021 A123456809 林暗十一 60 85 90 60 59 */ //var row = ["109021", "A123456809", "林暗十一", 60, 85, 90, 60, 59]; //ws.appendRow(row); /* 寫入某一儲存格 */ //ws.getRange("A22").setValue("'" + "109021");

七、