我正在使用 Google 应用脚本将表单数据写入电子表格。现在我想从 Excel 中获取与条件匹配的值(例如,按日期、用户名过滤)并使用应用程序脚本显示它们。
我的电子表格有
+-------------+-----------+----------------------+
| Date | Username | Comment |
+-------------+-----------+----------------------+
| 2012-05-02 | palani | My first comment |
| 2012-05-02 | raja | My second comment |
| 2012-05-03 | palani | My third comment |
| 2012-05-03 | raja | My fourth comment |
+-------------+-----------+----------------------+
现在我想过滤日期上的 2012-05-02
数据和用户名上的 raja
数据,并使用应用程序脚本中的标签显示它们(该脚本作为网络服务)。
我所有的搜索都使用SpreadsheetApp.getActiveSheet().getDataRange();
返回解决方案我认为这不是在工作表中显示 1000 多行中的一条记录的优化方式。
编辑
现在,我仅使用 .getValues()
。这里显示的数据是示例;我的真实工作表目前有 15 列和 5000 多行。最终它会增长到数百万,因为这是一个时间表应用程序。我想知道是否有其他方法来 getValues()
过滤行?
在 tmp 单元格上应用 =Filter
公式也将是一个问题,因为脚本可以由多人同时使用。
最佳答案
最简单的方法,也是我所知道的,是:
使用获取数组中的值
var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
然后进行循环
for (i in data) {
在此循环中检查日期 (data[i][0]
) 是否等于您要查找的日期,以及名称 (data[i] [1]
) 也与您要查找的相同。并将其推送到数组
var labels=new Array;
label.push( [data[i][0], data[i][1], data[i][2]] );
然后将所有数据放入该数组中,您可以使用 for 循环使用标签填充 panen Ui
for (i in labels) { ...
关于google-apps-script - 使用谷歌应用程序脚本从电子表格数据中检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518084/