我有以下Apps脚本,几乎是我想要的。它正在从Google表格获取项目列表,以使用项目列表填充Google表单多项选择问题。但是,它包括所有100行,而不只是其中包含值的行。

我缺少什么来确保它仅包含len> 1的单元格?

function getWorkbookNames(){
  var form = FormApp.getActiveForm();
  var items = form.getItems();

  var ss = SpreadsheetApp.openByUrl(
     'spreadsheetnamestringhere');
    var sheet = ss.getSheetByName('Unique Databases');
  var sheetValues = sheet.getRange("A2:A").getValues();
    var values = sheetValues.slice(1);

 var names = [];

  for(var p = 0; p < values.length; p++){
    names.push(values[p][0])
  }

  var pValues = items[8].asListItem();
  pValues.setChoiceValues(names).setRequired(true)

  var areas = [];
  for (var i = 0; i < values.length; i++) {
      areas.push(values[i][1])
    }
}


大家都可以提供任何帮助/建议,我们将不胜感激。

最佳答案

通过添加另一个滤镜层来解决:

function getWorkbookNames() {
    var form = FormApp.getActiveForm();
    var items = form.getItems();

    var ss = SpreadsheetApp.openByUrl(
        'spreadsheetnamestringhere');
    var sheet = ss.getSheetByName('Unique Databases');
    var sheetValues = sheet.getRange("A2:A").getValues();
    var filterValues = sheetValues.filter(String);
    var values = filterValues.slice(1);

    var names = [];

    for (var p = 0; p < values.length; p++) {
        names.push(values[p][0])
    }

    var pValues = items[8].asListItem();
    pValues.setChoiceValues(names).setRequired(true)

    var areas = [];
    for (var i = 0; i < values.length; i++) {
        areas.push(values[i][1])
    }
}

09-30 10:37