你是对的,你需要使用表格服务 https://developers.google.com/apps-script/reference/forms/提取您的 Google 表单的内容。
如果你想获取表单的内容(带有选择的问题),你需要使用getItems() https://developers.google.com/apps-script/reference/forms/form#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)
}
}
};
For getType https://developers.google.com/apps-script/reference/forms/item#getType(),您需要指定表单有什么类型的选择。在上面的示例代码中,我使用了asCheckboxItem()
返回复选框项目。这里有方法列表 https://developers.google.com/apps-script/reference/forms/item#methods你可以使用(asCheckboxItem()
, asMultipleChoiceItem()
, asTextItem()
, etc.).
如果您想获取表单的内容(带有答复的问题),您需要使用FormResponse https://developers.google.com/apps-script/reference/forms/form-response获取对整个表单的回复。
// 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 线程:
- 从已存在的 Google 表单中提取复选框或多选选项 https://stackoverflow.com/questions/17127393/extract-checkbox-or-multiple-choice-choices-from-a-google-form-that-already-exis
- 如何从 Google 表单中提取回复项 https://stackoverflow.com/questions/26253706/how-to-extract-response-items-from-a-google-form
希望这可以帮助!