谷歌api - 你如何获得表格中的文字?

时间:2017-02-08 19:46:16

标签: google-apps-script google-drive-api google-form

当我在Form文件上调用getContent()时,它返回空/ null。

如何在Google云端硬盘中获取表单文件的文本内容?

1 个答案:

答案 0 :(得分:2)

您是正确的,您需要使用Forms Service来提取Google表单的内容。

如果您想获取表单的内容(带选项的问题),则需要使用getItems()方法获取表单中所有项目的数组。

// Open a form by ID and log the responses to each question.
 var form = FormApp.openById('Form_ID');

 // Logs the questions
var items = form.getItems()
for (var i = 0; i < items.length; i++){
  Logger.log(items[i].getTitle());

// Logs the choices
  if (items[i].getType() == 'CHECKBOX') {
    var itemChoices = items[i].asCheckboxItem().getChoices()
    for (var j = 0; j < itemChoices.length; j++) {
    var choicesValue = itemChoices[j].getValue();
    Logger.log(choicesValue)
    }
  }
};

对于getType,您需要指定表单的选择类型。在上面的示例代码中,我使用asCheckboxItem()来返回复选框项。以下是您可以使用的list of methodsasCheckboxItem()asMultipleChoiceItem()asTextItem()等。)

如果您想获取表单的内容(回复问题),则需要使用FormResponse来获取整个表单的回复。

// Open a form by ID and log the responses to each question.
 var form = FormApp.openById('Form_ID');

// Logs the questions with responses
 var formResponses = form.getResponses();
 for (var i = 0; i < formResponses.length; i++) {
   var formResponse = formResponses[i];
   var itemResponses = formResponse.getItemResponses();
   for (var j = 0; j < itemResponses.length; j++) {
     var itemResponse = itemResponses[j];
     Logger.log('Response #%s to the question "%s" was "%s"',
         (i + 1).toString(),
         itemResponse.getItem().getTitle(),
         itemResponse.getResponse());
   }
 }

您也可以参考这些SO主题:

希望这有帮助!