问题标签 [custom-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
462 浏览

json - 将 JSON 制表成表格

我一直在尝试从 URL 获取 JSON 文件的可读数据库。

我在 Github 上使用了 fastfedora 的脚本https://github.com/fastfedora/google-docs/blob/master/scripts/ImportJSON/Code.gs将 JSON 从 URL 导入到表格。我正在使用基本的:

我使用了转置,因为使用两个长列而不是两个长行更容易。

然而,导入的数据非常混乱:https ://docs.google.com/spreadsheets/d/1mKnRQmshbi1YFG9HHg7-mKlZZzpgDME6-eGjDJKzbRY/edit?usp=sharing 。它基本上是一长列描述性数据(名称、id、价格等)和另一列变量(商品的实际名称和数字价格)。

是否可以操作生成的表格页面,以便第一列中的公因子可以与两个初始列旁边的伪表对齐?例如,对于第一个项目,ID 将是“2”,名称将是“Cannonball”,Sp 将是“5”等。

提前致谢。请原谅我的无知。

0 投票
1 回答
1733 浏览

json - 使用 ImportJSON 自定义函数检索数据子集

我正在使用 Trevor Lohrbeer 的importjson()自定义函数将此 JSON 源中的一些数据导入Google 表格。

我不希望提供所有信息;我特别只想要列 E、V、W、X、AA、AB、AC、AD。

在意识到我不知道我在用这个参数做什么之前我尝试了一些事情:

如何修改此功能以仅检索上述项目?

0 投票
2 回答
363 浏览

json - 过滤同名的 JSON 数据

我在 Google 表格中使用 JSON 来查找 Zip 并找到县。我只想把县城还回来。我可以让它返回每个值,以便 ImportJSON 函数正常工作。

这是我的公式。我已经尝试了参考的所有排列,但我只是不知道如何格式化它。

这是来自 Google Maps Geocoding API 的 JSON 数据。我只想要县长的名字。在本例中,它是“橙县”。

0 投票
1 回答
288 浏览

javascript - 谷歌应用程序脚本循环通过范围参数

我正在尝试谷歌应用程序脚本编辑器,一个简单的 for 循环给了我奇怪的结果。

假设我有一个电子表格

在此处输入图像描述

在脚本编辑器中我写了一个函数:

我希望返回值为 9 但我得到 045 返回 array.length 我得到 2 如预期返回数组 [0] 我得到 4 如预期

我尝试用谷歌搜索它,但我发现使用 array.map 函数有一些奇怪的解决方法。我做错了什么,它不应该是普通的javascript吗?

0 投票
1 回答
171 浏览

javascript - 通过 Google Apps 脚本比较日期的繁琐问题

今天我遇到了使用 GAS 比较两个日期的问题:currentDate包含今天的日期并scheduledDate包含放入列中的日期,该列被确定为row[3].

我已经花了 5 个小时(希望我不走运),在我们开始这里描述的第一件事是如何scheduledDate填充单元格之前:使用自定义函数(代码放在下面) ,它从位于的日期中=SubtractDaysFromDate('2016'!A54, 8)减去天数并在单元格中将结果显示为或(取决于您如何设置查看格式)。8'2016'!A5408/07/201608.07.2016

这是=SubtractDaysFromDate()源代码:

这是我的脚本的源代码:

要检查输入,请转到上面的链接,您可以检查名为2016(从此工作表=SubtractDatesFromDate()获取要减去的日期)以及Рассылка(在此工作表上运行我的脚本)的工作表。

为了继续,我的脚本会遍历=SubtractDaysFromDate()调用表上这些减去日期 ( ) 的所有单元格,Рассылка并检查当前日期是否等于scheduledDate(即,包含=SubtractDaysFromDate()此表上所有单元格的列),然后发送电子邮件。

scheduledDate问题是,虽然(由 导致)中的一小部分日期=SubtractDaysFromDate()被正确识别,但其中的另一部分仍未被识别和检索为01.01.1970

为了说明问题,这里是脚本日志:

如果您查看上面的代码,很明显,虽然对于某些日期比较工作得很好:

对于其中的其他部分,它不会:

为了更好地理解这里是我的 GS 表的链接:https ://docs.google.com/spreadsheets/d/1azDfWZWDSVTVVKLaJZlsRDbW21-Cps8Hx8M2kbclw-g/edit?pli=1#gid=2147296153 。

拜托,你能检查一下我是否遗漏了任何重要的东西以使其正常工作吗?为什么=SubtractDatesFromDate()我的脚本可以正确识别计算出的日期的一部分,而另一部分却不能正确识别?

我该如何解决?强烈赞赏所有以结果为导向的解决此问题的尝试。


已编辑。这是我已经编辑过的代码的一部分:

Mu 的问题是如何获取工作row[2]表中的值Рассылка并将其写入放置在for (var i = 0; i < bookingsData.length; ++i) {链接到的变量中2016?这会是正确的使用方式var mailingTopic = mailingData.row[2];吗?

0 投票
0 回答
1015 浏览

javascript - 使用 ImportJSON 时对数据进行排序

我正在使用 Google 表格从应用程序中提取调查数据,基于ImportJSON 脚本

有没有办法在数据加载到 GS 之前让数据按 AZ 排序?

一旦数据在 GS 中,如果我尝试对数据进行排序,则链接只会将数据恢复到其原始形状。

=ImportJSON("https://xxxxx.net/json?key=Mg.Clxt6A.TV1DFtPA0k8Ehpb0RDxyLH7xhU8", "/elements", ",noTruncate,Headers")

0 投票
2 回答
18705 浏览

javascript - 超过 Google 电子表格上的 ImportXML 限制

我现在正陷入“刮擦问题”。特别是我想从网页中提取作者姓名到谷歌电子表格。实际上该功能=IMPORTXML(A2,"//span[@class='author vcard meta-item']")正在运行,但是在我提高要抓取的链接数量之后,它才开始无休止地加载。

所以我研究并发现,这个问题是由于谷歌存在限制。

有人知道超出限制或脚本,我可以“轻松复制”吗?- 我真的没有编码的预感。

0 投票
1 回答
1039 浏览

google-apps-script - Cache custom function result between spreadsheet opens

I have a Google spreadsheet that has it's data loaded using a custom function. The custom function calls a REST API, transforms the data and displays it.

The problem is that every time I open the doc, the function is called and all the REST API calls go out.

I need to be able to manually trigger service calls to refresh data, and in between show the data from last time.

How can I best achieve that?

0 投票
5 回答
884 浏览

php - 为什么array_uintersect() 比较array1 和array2、array1 和array1 以及array2 和array2 之间的元素?

测试脚本

实际结果

预期结果

换句话说,我期望传递给回调的是左数组的当前元素和右数组的当前元素。

此外,如果我要向回调传递一个额外的数组,我希望同样的逻辑适用array_uintersect- 另一个参数被传递给回调($c例如)。

有人可以解释这种行为吗?

0 投票
1 回答
266 浏览

google-apps-script - 用标准函数替换 Google 表格中的自定义函数

我有一系列单元格,我想累积一列的给定行的最大值的次数。

样本:

预期的:

最大值用星号标记。该列a得分 1,因为它在第二个数据行中具有最大值,该列d得分 1,因为它在第一数据行中具有最大值,该列h得分 2,因为它在第三和第四个数据中具有最大值行。其余列在任何行中都没有最大值,因此它们得到 0。

对于一行,我可以为每一列复制这个公式,它会这样做,但我需要一些应用 max row-wise 的东西COUNTIF(B2:B10, MAX($B2:$B10))

我已经编写了这个谷歌应用程序脚本,但我不喜欢它的响应能力(与使用本机函数获得的敏捷性相比,在单元格中看到“正在加载...”几乎一秒钟有点令人恼火):

关于如何用内置函数替换该代码的任何想法?我不在乎添加辅助行或列,只要它们的数量是恒定的(也就是说,如果我扩展我的数据集,我不想为每个新数据行或列手动添加更多辅助行或列)。

我想我可以添加一个额外的列来收集每行最大值的列标题;然后为每个数据列计算他们的标题出现在该辅助列中的次数,但看起来不是很干净。