如何使用Google AppsScript获取工作表中的当前单元格数?



有没有工具可以使用Google AppsScript获取工作表中的当前单元格数?通过"单元格数量",我指的是Google表格中每张工作表的500万个单元格数量限制。首先,什么是"细胞数"?

例如,如果工作表(即文件)的第一个选项卡A1B3上的isblank()分别给出TRUE,而FALSE任何其他单元格(和其他选项卡),range.getValues().lengthSheet1!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()都是内置的,而且速度很快。

最新更新