2017-02-08 37 views
1

當我在表單文件上調用getContent()時,它將返回空/空。Google api - 你如何獲得Forms中的文本?

如何獲取Google雲端硬盤中表單文件的文本內容?

+0

我認爲要從Google Drive中找到表單的內容,您必須使用表單服務(這是一個完全獨立的API,而不是驅動器) –

回答

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線程:

希望這有助於!

相關問題