首页 > 解决方案 > 获取表索引

问题描述

在 Google Docs 中,您可以使用以下代码获取表格数组

var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var tables = body.getTables();

但是,如果我使用光标获取表的元素,我想知道该元素属于数组中的哪个表。有一些方法可以获取表中元素的行和单元格,但我找不到任何方法可以为我提供表数组中父表的索引。有什么建议么?

var doc = DocumentApp.getActiveDocument();
var cursor = doc.getCursor();

标签: google-apps-scriptgoogle-docs

解决方案


感谢@ziganotschka,我找到了解决方案。

function test() {
  try {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var cursor = doc.getCursor();
    var element = cursor.getElement();
    while( element.getType() !== DocumentApp.ElementType.TABLE ) {
      element = element.getParent();
      if( element === null ) return;  // did not pick a table
    }
    var bIndex = element.getParent().getChildIndex(element);
    Logger.log("bIndex= "+bIndex);
    var i = 0;
    var tIndex = -1;
    var child = null;
    while( i <= bIndex ) {
      child = body.getChild(i);
      Logger.log("i= "+i+" child= "+child)
      if( child.getType() === DocumentApp.ElementType.TABLE ) tIndex++;
      i++;
    }
    DocumentApp.getUi().alert("tIndex= "+tIndex);
  }
  catch(err) {
    Logger.log("Error in test: "+err);
  }
};

推荐阅读