繁体   English   中英

如何使用谷歌应用程序脚本在谷歌文档中的特定文本后附加表格?

[英]How to append table after specific text in google docs using google apps script?

我想在特定文本之后将表格附加到谷歌文档。 这是我的尝试。

 var body = somedoc.getBody();   
    var range = body.findText("#PLACEHOLDER#");
    body.appendTable(data);

这里的数据是一些多维数组。 这工作正常。 但是 table 被附加到 body 的末尾。 我想在“#PLACEHOLDER#”之后附加表格。

 var body = somedoc.getBody();   
    var range = body.findText("#PLACEHOLDER#");
    range.appendTable(data);

这不起作用。 如何获取范围的位置(文本:#PLACEHOLDER#)并在其后附加表格?

  • 您想在 Google 文档中#PLACEHOLDER#的文本后插入一个表格。
    • 从你的问题来看,我认为#PLACEHOLDER#放在一个段落中,并且该段落只包含#PLACEHOLDER#的文本。
  • 您想使用 Google Apps 脚本来实现这一点。

如果我的理解是正确的,这个示例脚本怎么样?

模式一:

当Google Document中#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);
}

模式2:

当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);
}

笔记:

  • 这些修改后的脚本假设datatable或二维数组。

参考:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。 那个时候能不能提供一个你要使用的示例文档? 通过这个,我想确认这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM