尝试使用 foreach 循环在 Google 表单中使用 Google 脚本填充下拉列表字段

问题描述 投票:0回答:1

我想使用 Google Apps 脚本来构建引用 Google 表格中的范围的表单字段下拉列表。

在尝试引用工作表中的范围之前,我构建了一个简单的数组(颜色)作为测试。

我正在尝试创建一个 forEach 循环,用数组填充表单字段。 forEach 循环仅将数组中的最后一个元素显示到字段中。

注意:我已经注释掉了 foreach 部分,但包含了直接添加字段选择的代码,这很有效。

任何方向将不胜感激。

function testone(){

  const form = FormApp.create('Enter color');
  const colorselect = form.addListItem();

  colorselect.setChoices([colorselect.createChoice('red'), colorselect.createChoice('blue'), colorselect.createChoice("green"), colorselect.createChoice("black"), colorselect.createChoice("orange")]);

  var colors = ["red", "blue", "green", "black", "orange"];

  //colors.forEach(c)=> { 
    //colorselect.setChoices([colorselect.createChoice(c)]);
   // console.log(c);
 //});


  // press Ctrl+Enter to see form urls
  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());


}
google-sheets google-apps-script
1个回答
0
投票

在 forEach 循环中,您重复将选项定义为只有一个值,因此在循环结束时它只是最后一个值。 试试这个吧。 建立一系列选择

function testone(){

  let form = FormApp.create('Enter color');
  let colorselect = form.addListItem();

  let colors = ["red", "blue", "green", "black", "orange"];

  let choices = [];
  colors.forEach( c => {
      choices.push(colorselect.createChoice(c));
      console.log(c);
    }
  );
  colorselect.setChoices(choices);

  // press Ctrl+Enter to see form urls
  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());
}

参考

  1. Array.push()
© www.soinside.com 2019 - 2024. All rights reserved.