如何使用Google Apps脚本在文档中获取多个页眉/页脚

时间:2015-06-16 20:16:45

标签: javascript google-apps-script google-sheets google-docs-api

我正在尝试替换Google文档标题中的文本,其中“不同的第一页页眉/页脚”处于活动状态。我成功地替换了除第一页之外的任何其他页面标题中的文本。 ...

var something = "Some string.";
var copyId = DriveApp.getFileById(docTemplate).makeCopy(name).getId();
var copyDoc = DocumentApp.openById(copyId);
var copyHeader = copyDoc.getHeader();
copyHeader.replaceText('keySomething', something);

...

我看了一下文档,但没看到怎么做。我甚至试过“getHeaders()”(复数形式),但该类不存在。 如何替换第一页页眉/页脚中的文字?

谢谢,

伊万

2 个答案:

答案 0 :(得分:3)

copyHeader.getParent().getChild(2); //I'm using your variable

这将指向第一页上的标题。 " 2"在getChild(2)中可能会有所变化,但可能没有变化,但我在此答案的第三个代码块中添加了一个函数seeChildren()

如果您尝试替换文档中字符串的所有实例,请将其与replaceText()

一起使用
copyHeader.getParent(); /*this points to the whole document (unless the 
                          header's parents is not the whole)*/
//getbody(), getfooter(), etc (i.e. siblings of header) should work

如果您想知道页脚getChild(x)的x,

function seeChildren(){
  var doc = DocumentApp.getActiveDocument();
  var bod = doc.getBody();
  var fol = bod.getParent();
  for (i = 0; i<fol.getNumChildren(); i++){
    var child = fol.getChild(i);
    bod.appendParagraph(child + ": Index " + fol.getChildIndex(child));
  }
}

这将在正文部分附加文档的子文件名(DocumentBodySection,HeaderSection,HeaderSection,FooterSection,FooterSection等)及其各自的索引(0,1,2,...,数量)孩子减去1)。另请注意,这使用getActiveDocument(),必须打开文件才能使函数正常工作。

答案 1 :(得分:0)

copyHeader.getParent().getChild(3).replaceText('current text','new text');

这将指向第一个不同页面上的标题。