从电子表格范围向Google表单列表添加项目

时间:2014-11-19 15:19:36

标签: list google-apps-script google-sheets google-form

我正在努力超越此代码中的最后一行,我们将不胜感激任何帮助:

我得到的错误是"数组为空:值(第16行,文件"代码")"。我仔细检查了商品ID,电子表格ID以及是否有正确范围内的数据。任何指针或见解......?

  function GetFleet() {
  var ssDEFECTS = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var rngFLEET = ssDEFECTS.getDataRange();
  var values = rngFLEET.getValues();
  var FleetList = [];

//Use column 0 and ignore row 1 (headers)
  for (var i = 1; i <= values.length; i++) {
    var v = values[i] && values[i][0];
    v && values.push(v)
  }

  // Form ID & List ID
  var DefectsForm = FormApp.openById('<FORM KEY ID>');
  DefectsForm.getItemById(794194842).asListItem().setChoiceValues(FleetList);
};

1 个答案:

答案 0 :(得分:0)

没有任何东西被推送到您的阵列FleetList。你的循环中的编码也是错误的。 假设您要推送第一列(不包括标题), 试试这个,看它是否有效

function GetFleet() {
var values = SpreadsheetApp.getActiveSpreadsheet()
    .getSheets()[0].getDataRange()
    .getValues();
var FleetList = [];

//Use column 0 and ignore row 1 (headers)
for (var i = 1, len = values.length; i < len; i++) {
    FleetList.push(values[i][0])
}

// Form ID & List ID
var DefectsForm = FormApp.openById('<FORM KEY ID>');
DefectsForm.getItemById(794194842)
    .asListItem()
    .setChoiceValues(FleetList);

};