【Day 19】Google Apps Script - API 篇 - Spreadsheet Service - 电子试算表服务范例-新增内容

来练习帮 Google Sheets(电子试算表)增加一点内容吧,把之前的 API 文件写到 Sheets 来。


今日要点:
》Spreadsheet Service 电子试算表服务范例
》读取 Google Docs 中的表格
》把表格的内容写入到 Google Sheets 里


Document Service 内容新增

前一天我们简单介绍在 Google sheets 档案中,新增了一列栏位的标题列。接下来我们要开始把之前【Day 16】介绍从 API 文件中的表格里,抓取到的栏位值转成二维阵列值後,建立一个新的 google Sheets 档,再把阵列值分段落写入到 Sheets 中。

转存至电子试算表後,如果有需要就可以用电子试算表中强大的检查功能,进行资料的检查,协助工程师看有没有地方写重覆或遗漏的。

上述的描述我们用图简单绘制一下流程,如下图所示:

二维阵列值依表格有分为几个段落,撷取後储存至对应的栏位。

如下图:

正常你会有一个回圈去把所有的表格抓取出来,计算每个表格中段落的位置,再进行段落的撷取。

不过我们一样试着把程序码弄的很简单,先把一些参数先写死比较好阅读。
 

程序码

我们程序大概分几个部份

  • 建立一个新的 Google Sheet 档案。
  • 读取写在 Google Docs 文件里的 API 描述表格,存放在二维阵列里。
  • 把二维阵列分段落撷取出值。
  • 把值写入到 Google Sheets 对应的栏位里。

程序码如下:

function doGet19(e) {

  //建立一个新的 Sheet 档案
  doGet18(e);  //参考第18天的说明
  
  //读取写在 Google Docs 文件里的 API 描述表格, 存放在二维阵列里
  var array = doGet16(e); //参考第16天的说明

二维阵列 array 的值,稍微排版後应该会如下所示:

/* 文件取得的资料结构
[
  ["Docs Demo","getGmailInfo","查询Gmail资讯"],
  ["说明"," 使用 Google Apps Script 查询 Gmail 资讯。",""],

  [" Request Url Params ","",""],
    ["键值","型别","说明"],
    [" name"," String","查询人的姓名"],
    [" func (必填)"," String","要呼叫的功能名称"],

  [" Response Body","",""],
    ["键值","型别","说明"],
    [" hello"," String","对查询人的问候语"],
    [" unreadCount"," Number","收件夹中未读信件的数量"],
    [" spamCount"," Number","垃圾信件夹中的未读数量"],
    [" messageSubject"," ArrayObject","最新5笔信件的标题"],

  [" Sample","",""],
    ["Method","GET",""],
    ["URL","https://script.google.com/...",""],
    ["Request","?name=Jason&func=getGmailInfo",""],
    ["Response","{...}",""]
]
*/

依我们的需要把值分段落取出来,SegmentIndex 这里原本是用程序去算出段落范围。不过为了方便,我们先固定值。


  var SegmentIndex = [3, 7, 13, 17];
  var arrRequestUrlParams = array.slice(SegmentIndex[0], SegmentIndex[1]-1);  
  var arrResponseBody = array.slice(SegmentIndex[1], SegmentIndex[2]-1);
  var arrSample = array.slice(SegmentIndex[2], SegmentIndex[3]);

把值写入到 Google Sheets 对应的栏位里。

  var row = 0 
  var value_A = array[row][0];
  var value_B = array[row][1];
  var value_C = array[row][2];
  var value_D = array[row+1][1];
  var value_E = JSON.stringify(arrRequestUrlParams);
  var value_F = JSON.stringify(arrResponseBody);
  var value_G = JSON.stringify(arrSample);

  setCellValue(row+2, col_A, value_A);
  setCellValue(row+2, col_B, value_B);
  setCellValue(row+2, col_C, value_C);
  setCellValue(row+2, col_D, value_D);
  
  setCellValue(row+2, col_E, value_E);
  setCellValue(row+2, col_F, value_F);
  setCellValue(row+2, col_G, value_G);
}

以上就是把写在 Google Docs 文件里的 API 描述表格写入至 Google Sheets(电子试算表)的范例。

今天就先这样罗。
 

参考

 


<<:  从零开始的8-bit迷宫探险【Level 26】这游戏没有华佗,不能补血啊!Game Over 场景切换

>>:  Day 21 : pillow套件,处理照片

Day17 在React 中使用Material icons

在React中可以插入Material icon组件使用,步骤如下: Material icons网...

JavaScript Day 14. 灵活运用 reduce()

前几篇一个阴错阳差发现了 reduce,不小心产生了好感(?),於是很兴奋的说要之後再找时间介绍,写...

DAY7 Ngrok运行原理&安装Ngrok

Ngrok运行原理 其实ngrok有客户端ngrok和服务端ngrokd,在用户客户端发起请求时,就...

Day09 建造APP(3)

经过昨天的介绍後,相信大家对App都有更一步的了解了,是吧!(应该有吧) 那我们今天就来做一点小小的...

自动化 End-End 测试 Nightwatch.js 之踩雷笔记:上传档案II

如果上传档案不想使用 preload 档案,也不想用下载的方式,其实可以上传档案至 selenium...