我正在创建日历/日程安排资源。用户在Google表单中输入所有日历/事件数据。每次提交表单时,数据都会填充到“表单响应”电子表格中,其中会创建一个新行。在电子表格中,电子表格所有者可以运行脚本来创建Google日历条目。
在通过Google表单收集的数据中,用户可以从100多个日历中进行选择,他希望在其中显示他的活动信息。因此,例如,他可以从100多个日历列表中选择日历名称,例如“Apple”,“Pear”,“Watermelon”和“Orange”。在电子表格中,这些选项将以逗号分隔的列表显示:apple,pear,watermelon,orange。
在单独的“资源”电子表格中,我有两列。第1列包含上述日历名称,第2列包含相应的Google日历资源地址。
COL A
A1 Apple
A2梨
A3西瓜
A4 Orange
COL 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提交他想在日历“Orange”和“Apple”上预订活动的数据
用户3提交他想要在日历“Pear”,“Apple”和“Orange”上预订活动的数据
在“表单响应”电子表格中,创建了三行数据。一列包含每次提交的日历数据。
所以:
J2包含Pear,Apple
J3包含Orange,Apple
J4包含Pear,Apple,Orange
我希望在“表单响应”电子表格末尾的列中填充资源等价物,从“资源”电子表格中提取。
所以:
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
答案 0 :(得分:0)
使用数组管理非常简单。
var calNamestoWrite = cell.split(',');
,您将获得一组n
元素getValues()
读取第二张图,以便获得与sheet2中的行一样多的元素的2D数组。
例如:var calNames = ss.sheet2.getDataRange().getValues();
然后在双循环中,您只需通过比较
来检查日历名称if(calNamestoWrite[n]==calNames[c][0]){ var calID = calNames[c][1] ... and do the other stuf...}
因为第一列是名称,第二列是日历资源ID。
n
迭代calNamestoWrite
数组,c
从sheet2迭代数组。
etvoilà,这将花费你几分钟的时间来写。