【发布时间】:2019-03-19 23:51:42
【问题描述】:
问题
我正在使用 Google 表格,并尝试将数据输出到 Google 文档(无需手动逐行编码,我目前正在这样做)。
来源: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
等等。
或(带 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。
我该如何解决这个问题?
tehhowch 提供了一些见解,下面是我用来解决问题的函数(带 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]);
}
}
});
【问题讨论】:
标签: javascript arrays google-apps-script google-sheets google-docs