首页 > 解决方案 > 应用程序脚本 - 自 11 日以来删除表格时遇到问题

问题描述

我已经完成了一个谷歌文档模板,我正在根据谷歌表格中插入的值进行修改。

我遇到了这种问题,一旦我定义了 google doc 文档,我就必须删除一些表格,并且我正在这样做:

Var Table1 = body.getTables()[1];
Var Table2 = body.getTables()[2];
....
Var Table15 = body.getTables()[15];

Table1.RemoveFromParent();
Table2.RemoveFromParent();
...
Table15.RemoveFromParent();

All Works 直到第 10 个表,在第 11 个出现错误框

“TypeError:不可能调用未定义的方法“removeFromParent”

. 似乎应用脚本无法识别从第 11 到下一个的表格。

但最奇怪的是,我试图改变文档中表格的位置,有时脚本会识别 11 和 15 之间的表格,而其他的则不会。

有任何想法吗?

谢谢

标签: google-apps-scriptgoogle-sheetsgoogle-docs

解决方案


假设我们有一个包含 5 个表的文档:

Logger.log(body.getTables().length) // Outputs: 5.0
var table0 = body.getTables()[0];
var table1 = body.getTables()[1];
var table2 = body.getTables()[2];
var table3 = body.getTables()[3];
var table4 = body.getTables()[4];

一旦你这样做:

table2.removeFromParent();

现在 table4正在引用不再存在的东西:

var table4 = body.getTables()[4];

undefined,因为只剩下 4 个表:

Logger.log(body.getTables().length) // Outputs: 4.0
var table0 = body.getTables()[0]; //same
var table1 = body.getTables()[1]; //same
var table2 = body.getTables()[2]; //this is now table 3
var table3 = body.getTables()[3]; //this is now table 4
var table4 = body.getTables()[4]; //undefined, does not exist.

现在只有 4 个表:0、1、2 和 3。


推荐阅读