google-apps-script - 如何解决谷歌表格中IMPORTRANGE公式的限制?
问题描述
我有 50 个 50 个学生的 google sheet 文件。当他们被要求这样做时,他们需要在自己的谷歌表格文件中输入答案。我有一个主要的谷歌表格,可以通过使用IMPORTRANGE
公式来整合他们的数据。这是我的公式:
=QUERY({IMPORTRANGE(...);IMPORTRANGE(...);IMPORTRANGE(...);...},"Select * where Col1 is not null")
我将IMPORTRANGE
在公式中有 50。因此,正如预期的那样,当 50 名学生开始同时输入他们的答案时,主要的 google 表格非常滞后。有时,公式会显示#Value
所有学生何时开始在他们自己的谷歌表格文件中回答问题。我需要不断刷新主谷歌表格,以便数据出来,但它会在短时间内再次消失,然后我需要再次刷新它(尽管一旦大多数学生回答完问题,它就会安定下来)。
我知道使用IMPORTRANGE
确实不是将他们的答案整合到主要谷歌工作表文件中的有效方法,但我没有其他更好的方法。
我试图编写一个脚本,以便他们可以通过单击分配给脚本的按钮来发送数据。但是,所有学生在第一次运行脚本时都需要经过授权过程。当他们看到授权过程时,他们不知道如何进行(不太擅长使用计算机)。
我可以知道有什么方法或技巧可以用来解决这个IMPORTRANGE
问题吗?或者有什么方法可以编写脚本,我们第一次运行脚本时不需要经过授权过程?
希望得到一些建议和帮助,因为我已经无法从谷歌找到更好的方法。任何帮助将不胜感激!
解决方案
使用这么多IMPORTRANGE
公式绝对是个坏主意。我建议你做什么:
- 在主文档中保留所有学生电子表格的列表
- 编写一个脚本,该脚本将浏览该列表中的所有电子表格并将值复制/粘贴到您的主文档中
- 创建一个基于时间的触发器,它将每 X 分钟(或几小时)运行一次脚本,具体取决于您希望结果的准确程度
这是一个简单的解决方案,但有效。根据数据量和学生/电子表格的数量,您可能会考虑其他解决方案(例如编写与脚本相同的云函数),但我认为这适用于您的用例
推荐阅读
- r - 如何使用 for 循环或 Laaply 截断股票数据上的 t 随机变量,以使用 foptions 库模拟期权价格
- vue.js - vue: 使用 Vue-CLI 全局安装在 MacOS 上找不到命令错误
- javascript - 如何通过使用浏览器扩展注入 javascript 来显示一些额外的数据
- spring-boot - 执行 springwebflow 流关联视图未呈现的问题
- php - 使用 php 和 xml 在 html 中创建数组的问题
- scala - SCALA:从端点下载 blob 时出错:输入索引 0 处出现意外字符“<”
- sql - TSQL:按季度划分的递归日期
- android - 如何为editText设置提示可见性为真
- python-3.x - Python模板匹配
- javascript - 如何以编程方式设置 React Dropdown 的值