網頁至試算表

網址: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>