Google Apps脚本:如何在选择后在Document中附加表格

时间:2014-02-11 19:16:19

标签: google-apps-script google-apps

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

我能找到的唯一例子是:

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

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

感谢
编辑:

我如何做出选择:

var selection = doc.getSelection();

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

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的部分

2 个答案:

答案 0 :(得分:3)

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

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

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

对于阅读此帖子的人,可能需要修改此代码,请记住,只有选择时此代码才会完成;用户需要突出显示一些内容才能进行选择。

答案 1 :(得分:0)

您可以在文档的任何位置追加表格,只需获取搜索结果的容器元素并将表格附加到该表格即可。

this post为例,了解如何构建文档(但还有更多...在this forum with Google-Apps-Script tag上搜索。