Google雲端智慧王
一、GAS 簡介:
二、實做:
- 找到「指令碼編輯器」
- 貼上「指令」
- 如此一來,我們可以攔截,訪客所送出的「填報」
- 一切從這裡開始
三、取得填報內容
- 取得基本方法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();
}
- 寫入另一工作表,並製作合計
//表單變數
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);
});
}