【问题标题】:Google Apps Script - How to add columns (inc formulas and formatting) to a spreadsheet generated from Google Form data?Google Apps 脚本 - 如何将列(包括公式和格式)添加到从 Google 表单数据生成的电子表格中?
【发布时间】: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")
}

}  



}

现在我想实施下一个阶段。如果将另一个具有各种公式和格式的工作表添加到我当前脚本生成的工作表中,并且将从表单生成的数据插入到包含公式的工作表的某个列中,我想要发生什么。我希望每次原始脚本生成新工作表时都会发生这种情况。包含各种公式和格式的工作表包含在同一个电子表格中。

我希望这是有道理的.....提前非常感谢你

【问题讨论】:

  • 你的要求对我来说不是很清楚。您是在问如何将两张纸合并在一起?如果是这样,这次合并的规则是什么?

标签: google-apps-script


【解决方案1】:

听起来(我可能是错的)您有一个“真假问题”表单,每次提交表单都会将数据移动到一个新工作表,现在您想从一个“主工作表”移动所有功能和格式并将其插入到这个新创建的工作表中。

您不能只创建一份您想要导入功能和格式的“主工作表”的副本吗?然后,您可以输入表单提交中的数据。

https://developers.google.com/apps-script/service_spreadsheet

我将直接使用他们的 API,因为我之前没有尝试过,但基本上,你会制作这样的新工作表

//make the new sheet
masterSheet.copyTo("nameOfNewSheet");
//fill data in as usual

如果我正确解释了您的问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多