-1

我正在创建一个日历/计划资源。用户在 Google 表单中输入所有日历/事件数据。每次提交表单时,数据都会填充到“表单响应”电子表格中,其中会创建一个新行。在电子表格中,电子表格所有者可以运行脚本来创建 Google 日历条目。

在通过 Google 表单收集的数据中,用户可以从 100 多个日历中进行选择,他希望在这些日历上显示他的活动信息。因此,例如,他可以从 100 多个日历的列表中选择日历名称,例如“Apple”、“Pear”、“Watermelon”和“Orange”。在电子表格中,这些选择将出现在逗号分隔的列表中:苹果、梨、西瓜、橙子。

在一个单独的“资源”电子表格中,我有两列。第 1 列包含上述日历名称,第 2 列包含对应的 Google 日历资源地址。

可乐

A1 苹果

A2梨

A3 西瓜

A4 橙色

科尔B

B1 domain.com_190382d0931@resource.calendar.google.com

B2 domain.com_928313sdf98@resource.calendar.google.com

B3 domain.com_239829a3l18@resource.calendar.google.com

B4 domain.com_295801a0181@resource.calendar.google.com

我需要一个脚本来读取“表单响应”电子表格中用户提交的日历名称数据,在“资源”电子表格中搜索相同的数据,并在指定列中以逗号分隔值返回替换的 Google 日历资源地址在“表格回复”电子表格中。

例子:

用户 1 提交了他想在日历“Pear”和“Apple”上预订活动的数据

用户 2 提交他想在日历“橙色”和“苹果”上预订活动的数据

用户 3 提交了他想在日历“Pear”、“Apple”和“Orange”上预订活动的数据

在“Form Responses”电子表格中,创建了三行数据。一列包含每个提交的日历数据。

所以:

J2 含梨、苹果

J3 含橙、苹果

J4 包含梨、苹果、橙子

我希望表单响应电子表格末尾的一列填充资源等价物,从“资源”电子表格中提取。

所以:

Z2 包含 domain.com_928313sdf98@resource.calendar.google.com、domain.com_190382d0931@resource.calendar.google.com

Z3 包含 domain.com_295801a0181@resource.calendar.google.com、domain.com_190382d0931@resource.calendar.google.com

Z4 包含 domain.com_928313sdf98@resource.calendar.google.com、domain.com_190382d0931@resource.calendar.google.com、domain.com_295801a0181@resource.calendar.google.com

4

1 回答 1

0

使用数组管理这非常简单。

  1. 带您使用逗号分隔值的单元格并将其拆分为逗号(这是默认拆分元素)。例如:你会得到一个元素var calNamestoWrite = cell.split(',');数组n
  2. 使用第二张纸读取您getValues()的内容,以便您获得与 sheet2 中的行一样多的元素的二维数组。例如 :var calNames = ss.sheet2.getDataRange().getValues();

然后在双 for 循环中,您可以通过比较简单地检查日历名称

if(calNamestoWrite[n]==calNames[c][0]){ var calID = calNames[c][1] ... and do the other stuf...}

因为第一列是名称,第二列是日历资源 ID。

n迭代calNamestoWrite数组并c从 sheet2 迭代数组。

等等,这将花费你几分钟的时间来写。

于 2013-03-13T20:46:59.037 回答