簡體   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