Как выполнить итерацию по данным таблицы Google и списку в Документе Google?

Я пытаюсь взять данные из ячеек электронной таблицы и перечислить их в документе Google. Я пробовал использовать метод forEach и цикл for. С помощью цикла for, когда я Logger.log () показывает массив, как ожидалось, перечисляя все элементы массива. Когда я пытаюсь записать эти элементы в Google Doc так, как каждая часть инструкции, которую я могу найти, указывает, что я должен ее записать, она возвращает пустой документ. Я пробовал различные способы получить желаемый результат в цикле for, как показано ниже в комментариях.

Помощь будет принята с благодарностью.

function myFunction() {
    let ss = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = ss.getActiveSheet();
    let lastRow = sheet.getLastRow();
    let lastColumn = sheet.getLastColumn();
    let sheetData = sheet.getSheetValues(1, 1, lastRow, lastColumn);
    let description = sheet.getSheetValues(6, 3, 15, 1);

    //Creates document and places in folder
    let placementFolder = DriveApp.getFolderById('ID')
    let newDoc = DocumentApp.create('Placeholder')
    let docID = newDoc.getId()
    let body = newDoc.getBody()

    let open = DriveApp.getFileById(docID).moveTo(placementFolder)

    //Destination folder
    let destFolder = DriveApp.getFileById('ID')

    //DriveApp.getFileById(docID).moveTo(destFolder)

    for (i = 0; i < description.length; i++) {
        //let descArray = description[i].values() //Returns Empty Doc
        //let desc = newDoc.getBody().setText(description[i]) // Returns Empty Doc
        //body.editAsText().setText(description[i]) //Returns Empty Doc
        //DocumentApp.openById(docID).getBody().setText(description[i]) //Returns Empty Doc
        //body.appendParagraph(i) // Lists numbers 1-14 in Doc



        Logger.log(description[i]) // Returns list of items in array as expected
    }
}

person Nick    schedule 26.06.2021    source источник


Ответы (1)


Насколько я понимаю вашу цель, вам нужно поместить эту строку в свой цикл:

body.appendParagraph(description[i][0]);

Если вам не нравится цикл, вы можете заменить его на forEach() следующим образом:

description.forEach(x => body.appendParagraph(x[0]));

Это будет то же самое.

person Yuri Khristich    schedule 26.06.2021
comment
Большое спасибо!! Это сработало. Я прочитал все, что смог найти, и еще раз посетил раздел Code Academy по этому поводу, но до сих пор не понимаю, зачем вам [0] с каждой опцией. Похоже, мне нужно еще раз повторить основы. - person Nick; 28.06.2021