将段落组插入光标位置的 Google 文档
Inserting group of paragraphs into Google Doc at cursor location
我是编码和 GAS 的新手。在搜索了无数示例和指南之后,我已经编写脚本几天了,但卡住了!
我正在为我的员工会议制定滚动或 运行ning 议程。在文档的开头将是一个 table 的内容,基于文档中使用的 headers。然后每周都会添加该周的 "entry"。我想做的是能够 运行 脚本添加基本的条目信息,然后在会议期间添加,这样文本就不必每次都重写。
我想做的事情:
Table 个目录
条目 1
条目 2
条目 3
我希望能够 运行 脚本,这样条目 4 就会出现在这里
条目 3
dfafasdfasdfas
afadafadfafd
条目 2
dfafasdfasdfas
afadafadfafd
条目 1
dfafasdfasdfas
afadafadfafd
我使用 insertParagraph 编写了一个脚本。我知道还有 "appendParagraph",但它总是将文本放在文档的底部。问题是,insertParagraph 将新条目放在文档的最顶部 - 在 table 内容之上。我正在寻找一种直接在内容 table 之后插入此文本 "block" 的方法。
我已经尝试更改内容,使其比段落(即使用 getCursor 的文本)更低 class,但我无法使用标题进行格式化。
注意:我不是要在脚本中插入内容的 Table - 我可以在 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);
}
}
查看 Google 文档
它将自己安装为侧边栏。希望它对你有用。我用它完成的大部分工作都是使用 body。我没有弄乱 headers 或页脚。我认为您不能更改每个页面的 headers,但我可能是错的。我在为这个工具收集所有必要的文件时遇到了一些困难,所以现在 I've put them altogether here.
我是编码和 GAS 的新手。在搜索了无数示例和指南之后,我已经编写脚本几天了,但卡住了!
我正在为我的员工会议制定滚动或 运行ning 议程。在文档的开头将是一个 table 的内容,基于文档中使用的 headers。然后每周都会添加该周的 "entry"。我想做的是能够 运行 脚本添加基本的条目信息,然后在会议期间添加,这样文本就不必每次都重写。
我想做的事情:
Table 个目录
条目 1
条目 2
条目 3
我希望能够 运行 脚本,这样条目 4 就会出现在这里
条目 3
dfafasdfasdfas
afadafadfafd
条目 2
dfafasdfasdfas
afadafadfafd
条目 1
dfafasdfasdfas
afadafadfafd
我使用 insertParagraph 编写了一个脚本。我知道还有 "appendParagraph",但它总是将文本放在文档的底部。问题是,insertParagraph 将新条目放在文档的最顶部 - 在 table 内容之上。我正在寻找一种直接在内容 table 之后插入此文本 "block" 的方法。
我已经尝试更改内容,使其比段落(即使用 getCursor 的文本)更低 class,但我无法使用标题进行格式化。
注意:我不是要在脚本中插入内容的 Table - 我可以在 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);
}
}
查看 Google 文档
它将自己安装为侧边栏。希望它对你有用。我用它完成的大部分工作都是使用 body。我没有弄乱 headers 或页脚。我认为您不能更改每个页面的 headers,但我可能是错的。我在为这个工具收集所有必要的文件时遇到了一些困难,所以现在 I've put them altogether here.