0

我创建了一个尚未发布的 Google 表单。我想提取表单的所有项目、项目类型和项目选择(如适用)以用于邮件合并。我无法使用由 Google 创建的响应电子表格,因为表单的用户可能不会选择给定项目的所有可用选项。

我的脚本功能足够,除非尝试将复选框(或多项选择题或网格问题)的选项写入电子表格。当使用“getChoice”方法时,我的电子表格显示了一个单元格数组“={“Choice”,“Choice”,“Choice”}。” 它一遍又一遍地显示“选择”这个词,而不是在我的表单上创建的实际选择。

如何将实际选择写入电子表格,而不是数组中的“选择”一词?我是一个 javascript 菜鸟,所以对于任何不雅的编码,我深表歉意!

function extractForm() {
  var existingform = FormApp.openByUrl('https://docs.google.com/a/forms/d/fc/viewform');
  var items = existingform.getItems();
  var itemcount = existingform.getItems().length
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();  

  for (var i = 1; i <= itemcount; ++i) {
  if (items[i].getType() != 'PAGE_BREAK' && items[i].getType() != 'SECTION_HEADER') {
    sheet.getRange(i,1).setValue(i);
    sheet.getRange(i,2).setValue(items[i].getTitle());
    sheet.getRange(i,3).setValue(items[i].getType());
    };
  if (items[i].getType() == 'CHECKBOX') {
    var chkItem = items[i].asCheckboxItem();
    var choicecount = chkItem.getChoices().length
    for (var j = 1; j <= choicecount; ++j) {
      sheet.getRange(i,4,1,j).setValue(chkItem.getChoices());
    };
    };
  };
};
4

1 回答 1

2

您不应该像这样简单地获取数组元素值吗?

for (var j = 1; j <= choicecount; ++j) {
  sheet.getRange(i,4,1,j).setValue(chkItem.getChoices()[j].getValue());
};
于 2013-06-15T21:21:03.173 回答