【发布时间】:2013-08-24 12:23:15
【问题描述】:
好的,所以我认为我需要做的事情相对复杂。目前我们有一个参与者可以填写的表格。我们实现了一个脚本,这意味着每次提交表单时,它都会在电子表格中创建一个新工作表,然后将信息通过类似于 IF 函数的东西传递,以将 Yes 和 No 答案更改为 1 和 0。它看起来像这样:
//onFormSubmit
function onFormSubmit(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses");
var headings = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var lastRow = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).getValues();
var whoIsItFor = lastRow[0][1];
if(ss.getSheetByName(whoIsItFor))
{
var userSheet = ss.getSheetByName(whoIsItFor);
//if not make
}
else
{
var userSheet = ss.insertSheet(whoIsItFor);
userSheet.getRange(1, 1, 1, headings[0].length).setValues(headings);
}
// copy submitted data to user's sheet
userSheet.getRange(userSheet.getLastRow()+1, 1, 1, lastRow[0].length).setValues(lastRow);
var columns = new Array('K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM');
for (var i = 0; i < columns.length; ++i)
{
c = columns[i] + "2";
if (userSheet.getRange(c).getValue() == "Yes") {
userSheet.getRange(c).setValue("1")
}
else {
userSheet.getRange(c).setValue("0")
}
}
}
现在我想实施下一个阶段。如果将另一个具有各种公式和格式的工作表添加到我当前脚本生成的工作表中,并且将从表单生成的数据插入到包含公式的工作表的某个列中,我想要发生什么。我希望每次原始脚本生成新工作表时都会发生这种情况。包含各种公式和格式的工作表包含在同一个电子表格中。
我希望这是有道理的.....提前非常感谢你
【问题讨论】:
-
你的要求对我来说不是很清楚。您是在问如何将两张纸合并在一起?如果是这样,这次合并的规则是什么?