延续昨天的内容,今天我们要完成写入&读取的功能
昨天成功与 Google Sheet 建立连结了!
下一步就是研究该怎麽将内容写入 Google Sheet 呢?
前面有提到,因为 Google Sheet 并非真正的资料库,他其实是没有 sql insert or query 的概念,但是我们还是能藉由 Google Sheet API 达到写入指定的 cell or range 的功能
Fundamentals of Apps Script with Google Sheets #2: Spreadsheets, Sheets, and Ranges 文件中提到
What you'll learn
...
How to specify, activate, move, and sort a group of cells or range of data using the Range class.
那麽就依照教学写一个简单的 insertToSheet function 测试写入功能吧
在 insertToSheet.gs 新增以下内容
A1:B1
储存格范围test123
跟日期时间戳写入 A1:B1
的 valuefunction insertToSheet() {
Logger.log('start to insertToSheet');
var spreadSheet = SpreadsheetApp.openById('your_spread_sheet_id');
var sheet = spreadSheet.getSheetByName('your_sheet_name');
var range = sheet.getRange("A1:B1");
range.setValues([['test123', new Date()]]);
}
按下执行,确认是否有正常写入到我们建立的 Google Sheet 中
p.s. 不知道 A1:B1
代表什麽的建议先阅读 Google Sheets API Overview
文件里的 A1 notation 有简单说明与范例如下:
接着将 insertToSheet.gs 修改成以下内容符合 app.gs 的流程
getLastRow()
取得该工作表有内容的最後一列Row numbergetRange(startrow,startcolumn,numrows,numcolumns)
取得要写入的储存格范围setValues
将内容写入上述的储存格范围function insertToSheet(sheet, content) {
Logger.log('start to insertToSheet');
var lastRow = sheet.getLastRow();
var range = sheet.getRange(++lastRow, 1, 1, 2);
range.setValues([[content, new Date()]]);
}
然後将我们的 Google Sheet 加上栏位名称方便阅读
成功将信件内容写入後,当然也要一并做好读取的功能
读取的功能相对简单很多~
在 readFromSheet.gs 新增以下内容
getLastRow()
取得最後一行有内容的列号function readFromSheet(sheet) {
Logger.log('start to readFromSheet');
var lastRow = sheet.getLastRow();
return sheet.getSheetValues(lastRow, 1, 1, 1);
}
接着修改 app.gs 如下
function app() {
var content = readMail();
var sheet = connectToSheet();
insertToSheet(sheet, content);
var validationCode = readFromSheet(sheet);
Logger.log(validationCode);
}
按下执行查看结果:
然後查看 Google Sheet 是否真的有被更新
再多发几封假验证信,测试 app.gs 每次执行是否都能抓到最後一笔的验证码
测试结果如下:
以上,GAS 专案的建置暂时告一段落,部署跟排程之类的就等建好了 Line Bot 再继续
明天就从 Line Bot 的建立开始吧!
霓虹灯文字 教学原文参考:霓虹灯文字 这篇文章会介绍在 GIMP 里使用选取、选取边框、填色、文字、...
GCP loadbalance (HTTP(S)) HTTP(S)负载平衡是一种全球性的基於代理的第...
昨天讲完的CSS的文字和区块属性後,今天要接续介绍版面布局的属性,以及一个非常好用的布局容器 - F...
题目简述: 一个由小到大排列的整数阵列,写一个函式回传每个元素的平方,并且也是由小到大排列 Inpu...
晃动计步器 教学原文参考:晃动计步器 这篇文章会介绍如何使用「晃动」、「显示数字」、「变数」、「按钮...