有没有工具可以使用Google AppsScript获取工作表中的当前单元格数?通过"单元格数量",我指的是Google表格中每张工作表的500万个单元格数量限制。首先,什么是"细胞数"?
例如,如果工作表(即文件)的第一个选项卡A1
和B3
上的isblank()
分别给出TRUE
,而FALSE
任何其他单元格(和其他选项卡),range.getValues().length
Sheet1!A1:B3
是否会产生工作表的当前"单元格数"?
我希望避免错误
例外:此操作会将工作簿中的单元格数增加到 5000000 个单元格的限制以上。
通过每次"单元格数"接近5000000时创建一个新工作表(即文件)。
第二部分是如何有效地获得"细胞数"。特别是如果没有直接的工具,如何有效地查询"单元格数",以便查询可以成为每天运行~100次的脚本的(小)部分,并且仍然在(免费)个人帐户的执行时间限制内?(我希望在不妨碍组织域下的其他脚本的情况下运行我的脚本。
在注释提示下,以下实验提供了答案。
在工作表中,通过 GUI 执行以下操作提示 OP 中的错误,
- 添加任意数量的新列或行,包括在未更改其原始
.getMaxRows()
和.getMaxColumns()
选项卡上,即 1000 行 x 26 列。(将其称为"参考选项卡"。 - 添加新选项卡
向 GUI 中当前显示的任何单元格添加内容不会提示错误。
此工作表中所有选项卡的.getMaxRows()
x.getMaxColumns()
之和得出 4804640。
此外,删除引用选项卡中的列允许通过 GUI 添加 40 行,之后添加第 41 行将提示相同的错误。当然,1 列 1000 行的单元格数与 40 行 25 列的单元格数相同。
因此,似乎"细胞数"是指.getMaxRows()
x.getMaxColumns()
,最大"细胞数"是4804640。(+/- 25 个电池,技术上)
为了查询当前的"单元格数",可以先使用getSheet()
,然后统计.getMaxRows()
x.getMaxColumns()
。这很快,因为getSheet()
、getMaxRows()
、getMaxColumns()
都是内置的,而且速度很快。