Day 13 - 物品借用纪录系统 (3) 程序码解说

今天主要是来补足 Day11 和 Day12 简(ㄏㄨㄚˊ)约(ㄕㄨㄟˇ)的部分。

我们会讲两个东西:

  • Range.getValues() 会抓到什麽东西。

  • Sheet.getDataRange() 又得到什麽样的资料。

这两个算是在试算表中非常好用的东西,所以要专心的看喔~


我们来看到 Range.getValues() 这个东西。

为什麽前缀饰用 Range,因为他是一个 GAS 中自订的一个物件 Range 下的一个方法,所以我在这前面都会写上物件名称以方便你们查阅 Docs 喔~

我们到 Docs 中找到 Range 物件的 Methods 部分 (注一):

我们可以看到他 return 一个二维阵列,把该 Range 中的所有资料都拿出来。

光说不练不是写程序的重点,就让我们开一个新的表单加上试算表来看看:

然後设定一下提交表单时的自动化执行:

接着提交一份表单:

最後切回执行结果来看一下吐出什麽鬼东西:

不知道大家有没有注意到 [[ data ]] 这样的部分,每一组 [] 就是一个阵列,而阵列里面包阵列,那就是二维阵列罗~


我们再来看到 Sheet.getDataRange() 这个部分。

从 Methods 名称就可以发现他就是把目前在这个 Sheet 中的东西拿出来。

在实作前我们先看到 Docs 得部分(注二):

从 Docs 中可以得知,这一个方法会 return 一个 Range 物件,其中包含从储存格 A1 到储存格 ( Sheet.getLastColumn(), Sheet.getLastRow()) 的范围。

多说不如实作,我们用刚刚的表单继续操作,新增一个 GetData() 的函式:

这边我们可以直接按下「执行」来执行程序,但是要记得切换成 GetData 喔!

然後可以在下方看到结果:

耶?为什麽没有东西?

阿~原来是因为 Sheet.getDataRange() 得到的是一个 Range 物件,要看到结果需要把他的 Values 都拿出来。

看到这知道我要做什麽了吗?

没错,我要在後面加入 getValues() 这个 Range 物件的方法:

然後就来执行结果:

我们会发现 getDataRange() 这个 Sheet 物件的方法会把「所有在 Sheet 中的资料通通拿出来」。

所以就包含标题都会被拿出来,因此在做资料处理的时候,记得要去掉第一组资料喔!


今天的讲解就到这里罗!

最近行政真的比较忙,不管是什麽样的公文,只要是跟「资讯」这个词扯上边的,通通都分文到我这边来…快累死我了…

所以後面的文章会小小的简约轻巧,但是一样会让你一步步地跟我一起快乐看 Google Apps Script 喔!

今日作业

我没时间改,所以就不出作业罗!

「虾!好随兴阿!」没错,我这个人,就是随兴!

明天见罗!掰掰!


关於兔兔们:


我:最近才发生一件事情,在电话中被其他科的老师飙骂:我的年资比你的年纪还要大。关於这点,大家可以不用生气,我觉得只是那个老师情绪激动後的言语。唯一一点疑惑的是:阿既然年纪这麽大了,干嘛不退休……(其实我还是有走心的)。哀算了算了,就当作是一种历练吧!

注一:Range.getValues()
注二:Sheet.getDataRange()


<<:  Day 16 弹性使用网路安全-WAF

>>:  33岁转职者的前端笔记 DAY 28 CSS 选取器类别笔记

[Day10] 团队系统设计 - Refinement 会议

在之前的文章中提到过,在 Planning 中进行 Refine 容易造成开会时间冗长,造成讨论缺乏...

[Day28] Snackbar提示功能

Snackbar是一个类似Toast的提示功能,但却比Toast更多功能,外观上也较为美观,现在就来...

Day 3 [Python ML] 选择建模用的资料(DecisionTree)

前言 一开始先接续昨天读取资料的部分,先使用pd.read_csv来读取资料 再利用DataFram...

Day 11. Hashicorp Nomad: Sidecar task

Hashicorp Nomad: Sidecar task 在Day 9. Hashicorp No...

Day2 — 前导:电是如何产生的?从交流到直流

电的产生方式来自於一个简单的事实:电磁感应。在感应线圈里如果磁通量发生变化就会产生电。 虽然在现代这...