Title1

Title2

Title3

10-2 Google Apps Script 存取工作表

Google Workspace 所有產品之API:https://developers.google.com/workspace

一、程式架構

  1. 程式:SpreadsheetApp
  2. 試算表檔案:openById()、getActiveSpreadsheet()
  3. 試算表中的工作表:getSheetByName()
  4. 工作表中範圍:getRange()
  5. 設定儲存格的值:setValue()

二、註解

  1. ctrl+/
  2. /**

三、試算表寫入

  1. API: SpreadsheetApp
  2. 取得試算表:getActiveSpreadsheet()
  3. 取得工作表:getSheetByName()
  4. 取得儲存格:getRange()
  5. 寫值:setValue()

四、寫入單一儲存格

  1. Google Spreadsheet的列編號由1開始,欄編號也是由1開始(許多程式是由0開始)
  2. 所以A欄 即 1 、B欄 即 2........
  3. 程式第一次執行時,會根據程式所用的APP,執行授權動作,這是制式選擇,若不授權則程式無法使用
  4. 授權動作 => 選擇自己的「EMAIL 帳號」=> 「進階」=> 「前往xxx(不安全)」=> 「允許」,這個動作可以讓指定的訪客用自己的「EMAIL 帳號」,執行程式
    function myFunction() {
      // console.log('Hello workd');
      /**
       * 
       */
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let ws = ss.getSheetByName('工作表1');
      let range = ws.getRange(1,1);
      range.setValue('姓名');
      
    }

     

  5. 取得 試算表
    若GAS是由 SpreadsheetApp 產生,即可用 getActiveSpreadsheet() 取得 試算表
    取得 試算表後,可用 getId() 取得 ID
    SpreadsheetApp.openById('ID')、SpreadsheetApp.openByUrl('URL') 也可以 取得試算表
    let ss = SpreadsheetApp.getActiveSpreadsheet();
  6. 取得 工作表
     let ws = ss.ggetSheetByName('工作表名稱');

     

  7. 取得工作表範圍
    let range = ws.getRange(rowIndex, colIndex);//(列指標,欄指標)

     

  8. 寫入儲存格
    range.setValue(value);
    range.setNumberFormat('@').setValue(value);//將儲存格 數字型態 格式化為 「文字」

     

  9. 好了,目前已可以寫入一個儲存格,我們在網站部署了一個表單,它是根據 stru 這個陣列,來建立表單元件
    1. 首先我們可以指定,接收資料後要寫入那個工作表
    2. 工作表的第一列,一般是 標題 => 請根據 stru 將 標題寫入工作表
    3. 接收每次請求後,將資料寫入工作表(每次一筆)
    4. ws.getLastRow():工作表最後的列指標
    5. ws.getLastColumn():工作表最後欄指標