Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop Google脚本AddRecord函数和For循环_For Loop_Google Apps Script - Fatal编程技术网

For loop Google脚本AddRecord函数和For循环

For loop Google脚本AddRecord函数和For循环,for-loop,google-apps-script,For Loop,Google Apps Script,我正在尝试使用Google脚本创建一个for循环,但在添加记录时遇到了困难。当我添加记录时,我会收到一封电子邮件,然后收到36个问题,例如: function AddRecord(email, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29, q30, q31, q32, q3

我正在尝试使用Google脚本创建一个for循环,但在添加记录时遇到了困难。当我添加记录时,我会收到一封电子邮件,然后收到36个问题,例如:

function AddRecord(email, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29, q30, q31, q32, q33, q34, q35, q36){
var url ="Name of Url";
var ss= SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Sheet1");
ws.appendRow([email, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29, q30, q31, q32, q33, q34, q35, q36]);}

我认为下面的代码将允许我通过。我尝试了不同的方法,但我对如何处理参数/数组等感到困惑。我将如何为此创建for循环?

const questions = [];
for (let i = 1; i <= 36; i++) {
    questions.push(`q${i}`);
}
function AddRecord(email, ... questions){
var url ="Name of Url";
var ss= SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Sheet1");
ws.appendRow([email, ... questions]);}
const questions=[];
对于(让i=1;i试试这个:

function AddRecord(email, questions) {
  var url = "Name of Url";
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Sheet1");
  questions.unshift(email)
  ws.appendRow(questions);
}
我必须这样做来测试它

function AddRecord() {
  const email = 'email';
  const questions = [];
  for (let i = 1; i <= 36; i++) { questions.push(`q${i}`); }
  var id = gobj.globals.testsourceid;//I have this id in globals
  var ss = SpreadsheetApp.openById(id);//so I went with openById()
  var ws = ss.getSheetByName("Sheet2");
  questions.unshift(email)
  ws.appendRow(questions);
}
函数AddRecord(){
const email='email';
常量问题=[];

for(设i=1;我认为在appendRow中只使用一次spread运算符可能会起作用。但我没有让代码片段在函数声明之外工作。在我的index.html文件中,我将q1称为用户键入的特定输入(即,它不称为q1,而称为a)。我通过运行以下google.script.run.AddRecord(q1、q2、q3、q4、…、q36)在index.html文件中执行此操作;是否可以在上面的脚本中添加用户在此处键入的内容,而不是在附加行中添加单词email、q1、…、q36。此答案非常有用。我感谢您花时间做这件事,我很好奇如何做。我尝试将常量声明为变量,但遗憾的是,这不起作用。我需要查看您的index.html fileWow,我不想在其中输入数据。我宁愿用分隔符分隔它们。
function testAddRecord() {
  const email = 'email';
  const questions = [];
  for (let i = 1; i <= 36; i++) { questions.push(`q${i}`); }
  AddRecord(email, questions);
}
function AddRecord(email, questions) {
  var id = gobj.globals.testsourceid;
  var ss = SpreadsheetApp.openById(id);
  var ws = ss.getSheetByName("Sheet2");
  questions.unshift(email)
  ws.appendRow(questions);
}