如何用 Google Sheets / Excel 当作资料库?


文章出处

Google 试算表名称是 Google Sheets,但为了让大家好理解,以下也会称 Google Excel。

这一篇说明如何把 Google Excel 当作资料库,并实作出一个简单的会员列表页出来。


建立 Google Excel

在 Google Drive 上,按新增,选择「Google 试算表」,就会进到一张新的 Google Excel。

这边设定的假资料栏位,总共有以下 5 个:

id:流水号name:姓名image:图片email:信箱phone:电话

要注意,栏位名称的部份要用英文,在下面接资料那段会解释原因。

Demo 的资料如下:


发布 Google Excel 到网路

这步最简单也最重要,只有选择发布到网路上的 Google Excel,才能 GET 到资料。

首先,点击左上角的「档案」>「共用」,会看到展开的选项里有「发布到网路」:

点击后,会出现询问框,问说发布的範围:

这篇 Demo 因为只有一张表,所以直接用「整份文件」,如果是有很多张表,但限制其中几张是可以抓的,就选择可以公开的表即可。

按下「发布」后,就会看见结果的询问框:

就可以按下叉叉关掉这框了。

接着记得将表单的「检视」权限开放给知道连结的任何人,以免后面步骤因权限不足而被阻挡。


取得 Google API Key

1. GCP 新增新专案

没有专案的才需要这步,进到 Google Cloud Platform 的页面按下新增专案,取好专案名称后即可新增。

2. 开通 Google Sheets API 功能

有了 GCP 的专案后,进到 API 程式库:https://console.cloud.google.com/apis/library?hl=zh-TW

搜寻栏中搜寻「sheet」,会看到一项「Google Sheets API」:

点击后按下「启用」,专案就会开通 Google Sheets API 的功能:

启用完成,页面会回到 GCP 的页面,可以看到上面一条讯息提醒要有凭证才能使用 API:

直接点击「建立凭证」,或是打开网址:https://console.cloud.google.com/apis/credentials/wizard?hl=zh-TW

3. 建立凭证

建立凭证的第一步要先做一些选择:

「选取 API」,选择「Google Sheets API」。

「您需要存取什么资料?」,这段看了 说明文件 也看不太懂使用的情境,选择「应用程式资料」就可以。

「您打算将这个 API 与 Compute Engine、Kubernetes Engine、App Engine 或 Cloud Functions 搭配使用吗?」,本篇只是为了要能够取得 Google Sheets 中的资料,并不会用到上述的功能,选择「不,我不会使用任何一项凭证」。

接着按「下一步」。

下一步是填写我们建立这个帐户的资料,填写成我们之后回头来看时,看得懂要做什么的资讯就可以:

填写完后按下「建立并继续」。

后面二项是选填,不用设定也没关係,按下「完成」。

4. 建立 API 金钥

上一步完成后,页面会回到 凭证的页面,点击上方的「建立凭证」,选择「API 金钥」:

几秒后,就会看见跳出一个小视窗,上面写了「您的 API 金钥」,这个金钥也就是我们要取 Google Sheets 时后面要附上的:

视窗上面也提醒了,为了怕金钥被外人拿到也可以用,我们必须要对这组金钥加上限制,点击「限制金钥」就会进入设定的页面。

建议一定要设定限制,本篇的 Demo 有限制只有在 Demo 页下才有效,而且也只能用 Google Sheets API 的功能。

有了 API 金钥,接着就是用新的 URL 去执行 GET。

Google Sheets URL

V4 版的 URL 规则如下:

https://sheets.googleapis.com/v4/spreadsheets/{表单id}/values/{sheet名称}?alt=json&key={API金钥}
{表单id}:表单的网址上就可以看到。{sheet名称}:就是每一张试算表的名称,预设会是叫「工作表1」,这边有测试过,有支援中文。{API金钥}:就是上一段我们从 GCP 上取得的金钥。

我们用一个简单的 fetch 来取:

fetch('https://sheets.googleapis.com/v4/spreadsheets/1-vTT5LVlscvExPjqJHrhmlO2ZMM-93McoP-yXT8gyOU/values/工作表1?alt=json&key=AIzaSyAVlwHA4EQx7AWjK1QsT87shL37vhKWrl4')  .then(res => res.json())  .then(res => {    console.log(res)  })

Console 上会看到回来的资料如下:

回来资料的格式,所有资料都收在 values 里,Google Sheets 上的每一列会成为一个一个的阵列。


相关连结

附上本篇的相关连结:

网站成果Google Sheet网站原始码 Github 空间

作者:Wayne (伟恩)
连结:https://wayne-blog.com/
来源:Wayne's blog | 伟恩的部落格 | 技术博客



关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章