線上書籍

Home

Google雲端智慧王

一、GAS 簡介

二、實做:

  1. 找到「指令碼編輯器」
  2. 貼上「指令」
  3. 如此一來,我們可以攔截,訪客所送出的「填報」
  4. 一切從這裡開始

三、取得填報內容

  1. 取得基本方法1 //表單變數 var googleFormID = "googleFormID"; function FormResponse(){ // 通過ID打開一個表單,並記錄對每個問題的回答。 var form = FormApp.openById(googleFormID); //得到所有回應 var formResponses = form.getResponses(); //---- 所有回應 for (var i = 0; i < formResponses.length; i++) { var formResponse = formResponses[i];//單筆回應 var itemResponses = formResponse.getItemResponses();//回應內容 var formResponseTime = formResponse.getTimestamp();//時間戳記 var formRespondentEmail = formResponse.getRespondentEmail();//取得表單上「電子郵件地址」,有設定才有 //----宣告試算表每列變數---- var rowdata = {}; //----其他自訂欄位(前) //rowdata["填報標題"] = "";// rowdata["時間戳記"] = formResponseTime;//表單回應時間 rowdata['電子郵件地址'] = formRespondentEmail;//電子郵件地址 //----取得單筆回應資料 for (var j = 0; j < itemResponses.length; j++) { var itemResponse = itemResponses[j]; var title = itemResponse.getItem().getTitle();//問題名稱 var value = itemResponse.getResponse();//填報內容 rowdata[title] = value; } //其他自訂欄位(尾) //----單筆回應資料end //----單筆要做的事情 //----單筆要做的事情 end } //刪除回應問題 form.deleteAllResponses(); }

     

  2. 寫入另一工作表,並製作合計 //表單變數 var googleFormID = "googleFormID"; function FormResponse(){ // 通過ID打開一個表單,並記錄對每個問題的回答。 var form = FormApp.openById(googleFormID); //得到所有回應 var formResponses = form.getResponses(); //---- 所有回應 for (var i = 0; i < formResponses.length; i++) { var formResponse = formResponses[i];//單筆回應 var itemResponses = formResponse.getItemResponses();//回應內容 var formResponseTime = formResponse.getTimestamp();//時間戳記 //var formRespondentEmail = formResponse.getRespondentEmail();//取得表單上「電子郵件地址」,有設定才有 //----宣告試算表每列變數---- var rowdata = {}; var total = 0; var subs = {}; //----其他自訂欄位(前) //rowdata["填報標題"] = "";// rowdata["時間戳記"] = formResponseTime;//表單回應時間 //rowdata['電子郵件地址'] = formRespondentEmail;//電子郵件地址 //----取得單筆回應資料 for (var j = 0; j < itemResponses.length; j++) { var itemResponse = itemResponses[j]; var title = itemResponse.getItem().getTitle();//問題名稱 var value = itemResponse.getResponse();//填報內容 rowdata[title] = value; //處理有合計的欄位 var sub = title.split("-"); if(sub[1] != undefined){ if(value != ""){ total += parseInt(sub[1]) * parseInt(value); } } } //其他自訂欄位(尾) rowdata['合計'] = total; //----單筆回應資料end //----單筆要做的事情 appendRow(rowdata); //----單筆要做的事情 end } //刪除回應問題 form.deleteAllResponses(); } //試算表變數 var SpreadsheetAppId = ""; var sheetName = '總表'; function appendRow(rowdata){ //用id取得試算表 var ss = SpreadsheetApp.openById(SpreadsheetAppId); //用工作表名稱設定工作表 var Sheet = ss.getSheetByName(sheetName); //設定工作表 0 1 2 .... //var Sheet = ss.getSheets()[0];//第1個工作表 //插入第2行空白 var row = 2; Sheet.insertRowBefore(row); // //寫入記錄 //時間戳記 桌號或外帶 鵝肉麵(乾)-60元 鵝肉麵(湯)-60元 鵝肉冬粉(乾)-60元 鵝肉冬粉(湯)-60元 鵝肉米粉(乾)-60元 鵝肉米粉(湯)-60元 合計 var data = [rowdata['時間戳記'],rowdata['桌號或外帶'],rowdata['鵝肉麵(乾)-60元'],rowdata['鵝肉麵(湯)-60元'],rowdata['鵝肉冬粉(乾)-60元'],rowdata['鵝肉冬粉(湯)-60元'],rowdata['鵝肉米粉(乾)-60元'],rowdata['鵝肉米粉(湯)-60元'],rowdata['合計']]; //寫入資料 data.forEach(function(item,index){ Sheet.getRange(row, index+1).setValue(item); }); }

     

  3.