google-apps-script - 应用程序脚本 - 自 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 之间的表格,而其他的则不会。
有任何想法吗?
谢谢
解决方案
假设我们有一个包含 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。
推荐阅读
- angular - InjectionToken angularfire2.app.options 没有提供者
- r - R中的for循环和变异
- powershell - 修改数组中的列
- c# - 使用简单的while循环在一天中的特定时间调用c#中的函数
- pdf - 使用 libreoffice 将 docx 转换为 pdf
- python - 使用 cx_Freeze 将 tkinter 程序转换为 exe 并运行 exe 文件后出错
- javascript - 使用javascript中的下拉选择值过滤列表
- java - Android - 使用相机和写入外部存储的权限
- algorithm - 从 ACM ICPC 2018 世界总决赛赶上飞机问题
- sas - 数据步骤中的类似 SAS 的运算符不起作用