首页 > 解决方案 > 在 Apps 脚本中构建段落

问题描述

不太清楚为什么(不是真的:这是因为我作为一名编码员还处于萌芽状态并且不够完善),但我什至无法保存我的代码集的这一部分。

我只是在 Google 文档模板中识别出现有的一段文本“##XXXX##”,然后将其替换为由文本和从电子表格中导入的文本组成的段落。

我确定问题出在 body.insertParagraph 中,因为我在插入段落时动态构建段落。但是这还能怎么做呢?

var foundTag = body.findText("##XXXX##");
var tagElement = foundTag.getElement();
var parent = tagElement.getParent();
var insertPoint = parent.getParent().getChildIndex(parent);

// Build the paragraph to insert

var songBlock = body.insertParagraph(insertpoint, {
    for(var i = 0; i < num; i++) {
    var songName = String(dataArray[i][1]);
    var sWs = String(dataArray[i][2]);
    var pub =  String(dataArray[i][3]);
    appendText("Song Name:" + brk);
    appendText(songName + brk);
    appendText("Songwriter(s):" + brk);
    appendText(sWs + brk);
    appendText("Publisher(s):" + brk);
    appendText(pub + brk);
    appendHorizontalRule();
    appendText(brk);
}       

标签: for-loopgoogle-apps-scriptgoogle-sheetsgoogle-docs

解决方案


我让它与以下代码一起工作:

// Prepare to write song data
var foundTag = body.findText("##XXXX##");
Logger.log('found it', foundTag);
var tagElement = foundTag.getElement();
var parent = tagElement.getParent();
var insertPoint = parent.getParent().getChildIndex(parent);
var text = body.editAsText();
var songBlock = "\n"

// Build the text to insert

    for(var i = 0; i < num; i++) {
    var songName = String(dataArray[i][1]);
    var sWs = String(dataArray[i][2]);
    var pub =  String(dataArray[i][3]);
    songBlock = (songBlock + "Song Name:" + brk);
    songBlock = (songBlock + songName + brk);
    songBlock = (songBlock + "Songwriter(s):" + brk);
    songBlock = (songBlock + sWs + brk);
    songBlock = (songBlock + "Publisher(s):" + brk);
    songBlock = (songBlock + pub + brk);
    songBlock = (songBlock + brk);
}       

// Insert text at the beginning of the document.
text.insertText(insertPoint, songBlock);

问题现在正在插入,但这是另一篇文章。


推荐阅读