Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何使用Google AppsScript获取工作表中当前的单元格数?_Google Apps Script_Google Sheets - Fatal编程技术网

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

Google apps script 如何使用Google AppsScript获取工作表中当前的单元格数?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,是否有工具可以使用Google AppsScript获取工作表中当前的单元格数?我所说的“单元格数量”,是指谷歌表单中每页有500万个单元格限制。首先,什么是“细胞数” 例如,如果工作表(即文件)第一个选项卡的A1和B3上的isblank()分别给出TRUE,而任何其他单元格(和其他选项卡)上的FALSE,则range.getValues().length将给出Sheet1!A1:B3是否为工作表生成当前的“单元格数” 我希望避免这个错误 例外情况:此操作将使工作簿中的单元格数超过5000000

是否有工具可以使用Google AppsScript获取工作表中当前的单元格数?我所说的“单元格数量”,是指谷歌表单中每页有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

此外,删除reference选项卡中的列允许通过GUI添加40行,之后添加第41行将提示相同的错误。当然,一列1000行的单元格数量与40行25列的单元格数量相同

因此,“单元数”似乎是指
.getMaxRows()
x
.getMaxColumns()
,最大“单元数”是4804640。(+/-25个电池,技术上)


要查询当前的“单元格数”,可以先统计
.getMaxRows()
x
.getMaxColumns()
。这很快,因为
getSheet()
getMaxRows()
getMaxColumns()
都是内置的,而且速度很快。

我认为
单元格的数量
非常具有描述性。不管它们是否为空,这个限制是关于单元格的数量。但是,电子表格文件的性能也依赖于其他参数。考虑删除不必要的列行和表。GETMax ROW()X GETMax CalpNSUs()@索马里奥:如果一个单元是否“空”不重要,那么在一个全新的、“空的”表中会有多少个细胞?“Cooper:我需要实验一下。”谢谢你的来电。到目前为止,我在一个工作表中发现,通过GUI添加新的空行会提示错误,而在其他操作中,例如复制选项卡、向任意位置的单个单元格添加内容都不会提示错误。我知道GoogleSheet使用iirc 5000行52列进行初始化,保留打开的可能性是根据5M检查
getMaxRows()
x
getMaxColumns()
。因此,我计划在所有选项卡上尝试计数
getMaxRows()
x
getMaxColumns()
,看看这是否会产生一个能提供一些线索的数字。@soMario:我试图通过GUI删除一个空列。事实上,因此我可以添加更多行。指向
getMaxRows()
x
getMaxColumns()
。不过今晚就要下班了。我明天会设法弄清楚的。如果你有更多的想法,请告诉我。谢谢