網頁至試算表
網址:spreadSheet
【學習目標】
撰寫一個HTML檔案,透過網頁以表單資料為輸入來源,寫入Goolge試算表。
寫入試算表
GAS撰寫邏輯:在編輯環境執行、內定執行「myFunction」。
一、宣告物件,屬性有method, name, sex, remark,以傳入method屬性來決定寫、讀。
function myFunction() {
var e = {
parameter:{
"method": "write",
"name": "張庭禎",
"sex": "male",
"remark": "測試寫入試算表"
}
}
doPost(e);
}
二、主程式取得試算表操作,這兩行寫在myFunction之外。
var ss = SpreadsheetApp.getActiveSpreadsheet(),
sheet1 = ss.getSheetByName("sheet1"); // "sheet1" 為工作表名稱
三、撰寫接收函式「doPost」、寫入函式「write_data」。
function doPost(e) {
var para = e.parameter, // 存放 post 所有傳送的參數
method = para.method;
if (method == "write") {
write_data(para);
}
if (method == "read") {
// 這裡放讀取資料的語法 下一篇說明
}
}
function write_data(para) {
var name = para.name,
sex = para.sex,
remark = para.remark;
sheet1.appendRow([name, sex, remark]); // 插入一列新的資料
}
讀取試算表
一、撰寫讀取函式,宣告兩個變數如下。
var url = 'https://docs.google.com/spreadsheets/d/123456789abc/edit?usp=sharing'
var SpreadSheet = SpreadsheetApp.openByUrl(url);
logger.log(SpreadSheet.getName()); //顯示已連接試算表名稱
二、讀取某一筆試算表紀錄
var url = 'https://docs.google.com/spreadsheets/d/123456789abc/edit?usp=sharing',
name = "Sheet1",
SpreadSheet = SpreadsheetApp.openByUrl(url),
SheetName = Spreadsheet.GetSheetByName(name);
logger.log(SpreadSheet.getName(name)); //顯示已連接試算表的工作表名稱
部署成網頁應用程式
※重要概念:網頁事涉Post Get,所以必須使用「doGet()」方法,編輯時指定執行的方法就是doGet、不再是myFunction,否則部署完成之後將連結貼到瀏覽器內執行,會出現「找不到以下指令碼函式:doGet 」。
將myFuncition改名為doGet:
function doGet() {
var e = {
parameter:{
"method": "write",
"name": "張庭禎",
"sex": "male",
"remark": "測試寫入試算表"
}
}
doPost(e);
}
國立岡山高中K書中心部署範例
功能需求
一、網頁應用程式模式運作,HTML放在外面(獨立一個外部檔案)。
二、以無線射頻讀卡機(RFID)讀取學號。
三、讀取雲端硬碟學號試算表,核對學生身分。
四、記錄學生簽到日期、時間到雲端硬碟試算表。
五、顯示「簽到」或「簽退」。
網頁程式範例
do_Get_spreadSheet.html
<iframe name="hidden_iframe" style="display:none;"></iframe>
<Font Color='Blue' Size=14>岡山高中圖書館K書中心簽到</Font>
<br>
<form action="新增GAS部署之後的連結網址" method="post" target="hidden_iframe">
<input type="hidden" name="method" value="write" />
<input type="text" name="name" placeholder="填入姓名" title="填入姓名" /><br/>
<input type="text" name="sex" placeholder="填入性別" title="填入性別" /><br/>
<input type="text" name="remark" placeholder="填入註解" title="填入註解" /><br/>
<input type="submit" value="提交" />
</form>
<br>
<Font Color='Orange' Size=10>資料將會寫入Google試算表內。</Font>