google-apps-script - 谷歌应用脚​​本:How to append a table in Document after a selection

标签 google-apps-script google-apps

是否可以使用 Apps 脚本在 Google 文档中进行选择后附加表格?

我能找到的唯一例子是:

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

...这意味着到文档末尾。

谢谢
编辑:

我如何进行选择:

var selection = doc.getSelection();

这基本上是在文档编辑器上通过鼠标拖动选择(蓝色)选择的内容。
从那里我开始迭代:

var elements = selection.getSelectedElements();  
var element = elements[0].getElement();
var startOffset = elements[0].getStartOffset();      // -1 if whole element  
var endOffset = elements[0].getEndOffsetInclusive(); // -1 if whole element 

这可能是 PARAGRAPH 的一部分

最佳答案

这是在当前选择处插入表格的代码。它可能需要稍微修改一下,但重点是;它找到选择点处正文的子索引。

function insertTableAtSelection() {
  // insert table as selection
  var theDoc = DocumentApp.getActiveDocument();
  var selection = theDoc.getSelection();
  Logger.log('selection: ' + selection);

  if (selection) {
    var elements = selection.getRangeElements();
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      Logger.log('element: ' + element.getElement());
    };

    var theElmt = element;
    var selectedElmt = theElmt.getElement();
    Logger.log('selectedElmt: ' + selectedElmt);

    var parent = selectedElmt.getParent();

    var insertPoint = parent.getChildIndex(selectedElmt);
    Logger.log('insertPoint: ' + insertPoint);    

    var body = theDoc.getBody();
    var table = body.insertTable(insertPoint + 1, [['one','two','three'],['yellow', 'green', 'red']]);
  };
};

insertPoint 加一:

insertPoint + 1

这使得表格超出了选择范围。

对于阅读这篇文章并可能想要修改此代码的人,请记住,此代码仅在有选择时才会完成;用户需要突出显示一定量的内容才能进行选择。

关于google-apps-script - 谷歌应用脚​​本:How to append a table in Document after a selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710994/

相关文章:

google-apps-script - 即使页面存在,Google 脚本 UrlFetchApp.fetch 返回 404

javascript - 列表框不将字符串传递给谷歌脚本

java - 无法在 Google App Emulator 中添加 google 帐户

google-apps-script - 谷歌电子表格: Remove substring if string contains one of several strings

authentication - 如何修复 google-sites-liberation 的登录以再次为域站点备份谷歌应用程序?

gmail - Google 多重登录 - 有没有办法在 URL 中指定帐户?

javascript - 如何在 Google Apps 脚本中修改 HTMLOutput 之前的 html 文件

google-apps-script - 如何在 Google Apps 脚本任务 API 中创建子任务

javascript - Google App 脚本从文档模板库创建 PDF 文件

google-apps-script - 如何在 Google Apps 脚本 (Google Drive API) 中向 blob 添加/附加字符串