Title1

Title2

Title3

4. 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"); 

七、