Задача
Я работаю с Google Sheet и пытаюсь вывести данные в Google Doc (без необходимости вручную кодировать их построчно, что я сейчас и делаю).
Источник: 2 (или 3) столбца и динамические строки (на основе флажков). Уничтожение массива до динамических строк уже сделано:
ARRAY = [
[HEADER TITLEA, CONTENTA],
[HEADER TITLE2, CONTENTA2],
[HEADER TITLEA3, CONTENTA3]
]
ARRAY = [
[HEADER TITLEA, CONTENTA, CONTENTB],
[HEADER TITLE2, CONTENTA2, CONTENTB],
[HEADER TITLEA3, CONTENTA3, CONTENTB]
]
Окончательный формат:
text
Header TitleA
Static: ContentA
Header TitleA2
Static: ContentA2
и пр.
ИЛИ (w / 3)
text
Header TitleA
Static: ContentA
Static2: ContentB
Я знаю, что могу запустить цикл и получить очень простой вывод, но я не знаю, как манипулировать каждым из элементов внутреннего массива, чтобы получить желаемый результат. Мой текущий цикл:
for (row = 0; row < newA.length; row++) {
for (col = 0; col < 3; col++) {
Logger.log(newA[row][col]);
}
}
, который возвращает:
text
HEADERA
CONTENTA
CONTENTB
Но я хочу перебрать каждый внутренний массив и манипулировать ими индивидуально для вывода (не уверен, что это даже правильные слова).
Мой текущий вывод (делает это вручную):
var htmlTitleProp = sh.getRange('A3').getValue();
var htmlTitleHeaderO = body.appendParagraph(htmlTitleProp);
htmlTitleHeaderO.setHeading(DocumentApp.ParagraphHeading.HEADING4);
var htmlTitleCurrent = sh.getRange('B3').getValue();
var htmlTitleRecommended = sh.getRange('C3').getValue();
var htmlTitleCurrentO = body.appendParagraph(htmlTitleRecommended);
//description
var htmlDescriptionProp = sh.getRange('A4').getValue();
var htmlDescriptionHeaderO = body.appendParagraph(htmlDescriptionProp);
htmlDescriptionHeaderO.setHeading(DocumentApp.ParagraphHeading.HEADING4);
var htmlDescriptionCurrent = sh.getRange('B4').getValue();
var htmlDescriptionRecommended = sh.getRange('C4').getValue();
var htmlDescriptionCurrentO = body.appendParagraph(htmlDescriptionRecommended);
По сути, я смотрю, как автоматизировать body.appendParagraph
на основе моего файла исходного массива.
Как мне решить эту проблему?
С предоставлением некоторой информации, ниже была функция, которую я использовал для решения своей проблемы (с 3 столбцами):
newA.forEach(function (row) {
var heading = row.shift();
if (heading) {
body.appendParagraph(heading).setHeading(DocumentApp.ParagraphHeading.HEADING4);
if (row[0]) {
body.appendParagraph( "Current: \n" + row[0] + "\n");
}
if (row[1]) {
body.appendParagraph( "Recommended: \n" + row[1]);
}
}
});