如何使用 google 应用程序脚本在 google 文档中的特定文本后附加 table?
How to append table after specific text in google docs using google apps script?
我想在特定文本后将 table 附加到 google 文档。这是我的尝试。
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
body.appendTable(data);
这里的数据是一些多维数组。这很好用。但是 table 被附加在正文的末尾。我想在“#PLACEHOLDER#”之后添加 table。
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
range.appendTable(data);
这行不通。如何获取范围的位置(文本:#PLACEHOLDER#)并在其后附加 table?
- 您想在 Google 文档中
#PLACEHOLDER#
的文本后插入一个 table。
- 从你的问题来看,我认为
#PLACEHOLDER#
放在一个段落中,而该段落只包含#PLACEHOLDER#
的文字。
- 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个示例脚本怎么样?
模式 1:
当Google文档中只有#PLACEHOLDER#
一个文本时,下面的修改如何?
修改后的脚本:
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
// I added below script.
var ele = range.getElement();
if (ele.getParent().getParent().getType() === DocumentApp.ElementType.BODY_SECTION) {
var offset = body.getChildIndex(ele.getParent());
body.insertTable(offset + 1, data);
}
模式二:
当Google文档中有多个#PLACEHOLDER#
的文本时,下面的修改如何?
修改后的脚本:
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
// I added below script.
while (range) {
var ele = range.getElement();
if (ele.getParent().getParent().getType() === DocumentApp.ElementType.BODY_SECTION) {
var offset = body.getChildIndex(ele.getParent());
body.insertTable(offset + 1, data);
}
range = body.findText("#PLACEHOLDER#", range);
}
注:
- 这些修改后的脚本假定
data
是 table
或二维数组。
参考文献:
如果我误解了您的问题而这不是您想要的结果,我深表歉意。到时候能不能提供一个你要用的sample Document?至此,我想确认一下这个问题。
我想在特定文本后将 table 附加到 google 文档。这是我的尝试。
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
body.appendTable(data);
这里的数据是一些多维数组。这很好用。但是 table 被附加在正文的末尾。我想在“#PLACEHOLDER#”之后添加 table。
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
range.appendTable(data);
这行不通。如何获取范围的位置(文本:#PLACEHOLDER#)并在其后附加 table?
- 您想在 Google 文档中
#PLACEHOLDER#
的文本后插入一个 table。- 从你的问题来看,我认为
#PLACEHOLDER#
放在一个段落中,而该段落只包含#PLACEHOLDER#
的文字。
- 从你的问题来看,我认为
- 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个示例脚本怎么样?
模式 1:
当Google文档中只有#PLACEHOLDER#
一个文本时,下面的修改如何?
修改后的脚本:
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
// I added below script.
var ele = range.getElement();
if (ele.getParent().getParent().getType() === DocumentApp.ElementType.BODY_SECTION) {
var offset = body.getChildIndex(ele.getParent());
body.insertTable(offset + 1, data);
}
模式二:
当Google文档中有多个#PLACEHOLDER#
的文本时,下面的修改如何?
修改后的脚本:
var body = somedoc.getBody();
var range = body.findText("#PLACEHOLDER#");
// I added below script.
while (range) {
var ele = range.getElement();
if (ele.getParent().getParent().getType() === DocumentApp.ElementType.BODY_SECTION) {
var offset = body.getChildIndex(ele.getParent());
body.insertTable(offset + 1, data);
}
range = body.findText("#PLACEHOLDER#", range);
}
注:
- 这些修改后的脚本假定
data
是table
或二维数组。
参考文献:
如果我误解了您的问题而这不是您想要的结果,我深表歉意。到时候能不能提供一个你要用的sample Document?至此,我想确认一下这个问题。