在光标位置将一组段落插入Google文档

时间:2017-07-16 14:17:54

标签: google-apps-script google-docs

我是编码和GAS的新手。在搜索了无数的样本和指南之后,我一直在编写一个脚本几天,而且卡住了!

我正在为员工会议制定滚动或运行的议程。在doc的开头,将是基于文档中使用的标题的目录。然后每周,将添加该周的“条目”。我想要做的是能够运行脚本来添加基本条目信息,然后在会议期间添加,这样就不必每次都重写文本。

我想做什么:

目录
条目1
第2条 条目3

我希望能够运行脚本,因此条目4将会在此处

条目3
dfafasdfasdfas
afadafadfafd

条目2
dfafasdfasdfas
afadafadfafd

条目1
dfafasdfasdfas
afadafadfafd

我使用insertParagraph编写了一个脚本。我知道还有“appendParagraph”,但它始终将文本放在文档的底部。问题是,insertParagraph将新条目放在文档的最顶部 - 位于目录之上。我正在寻找一种方法在目录之后直接插入此文本“块”。

我尝试过更改内容,因此它比Paragraph更低级(即使用getCursor的文本),但是我无法使用标题进行格式化。

注意:我并不是要尝试使用脚本插入目录 - 我可以在Google文档中执行此操作,并根据标题对其进行更新,假设我可以保留标题!

谢谢!

function AddText() {

var body = DocumentApp.getActiveDocument().getBody();


var date = Utilities.formatDate(new Date(), "EST", "MM-dd-yyyy"); 
var header = body.insertParagraph(0,date);
header.setHeading(DocumentApp.ParagraphHeading.HEADING3);

var section = body.insertParagraph(1,"Members Present");
section.setHeading(DocumentApp.ParagraphHeading.HEADING4);

body.insertParagraph(2,"Name 1, Name 2");

var section = body.insertParagraph(3,"Agenda");
section.setHeading(DocumentApp.ParagraphHeading.HEADING4);

var item1 = body.insertListItem(4,'Discuss Topic (See Program: ProgLink)');

 var url = 'https://www.google.com';

var doc = DocumentApp.getActiveDocument();
var element = doc.getBody().findText("ProgLink");
 if(element){ // if found a match
var start = element.getStartOffset();
var text = element.getElement().asText();
text.replaceText("ProgLink",url);
text.setLinkUrl(start, start+url.length, url);

Logger.log(item1.getListId());

var item2 = body.insertListItem(5,'Trends to Discuss');
item2.setListId(item1);

var item3 = body.insertListItem(6,'Training');
item3.setListId(item1);

var item4 = body.insertListItem(7,'Other Items');
item4.setListId(item1);

}
}

1 个答案:

答案 0 :(得分:1)

查看Google文档内部

它将自己安装为侧边栏。希望它对你有用。我用它完成的大部分工作都与身体有关。我没有弄乱页眉或页脚。我不认为你可以改变每个页面的标题,但我可能是错的。我在为此工具获取所有必要文件时遇到了一些困难,现在I've put them altogether here