google-apps-script - 如何使用 Google AppsScript 获取工作表中的当前单元格数?
问题描述
是否有使用 Google AppsScript 获取工作表中当前单元格数量的工具?通过“单元格数”,我指的是 Google 表格中每张表格的 500 万个单元格数量限制。首先,什么是“细胞数”?
例如,如果isblank()
在工作表(即文件)的第一个选项卡上分别给出A1
,并且在任何其他单元格(和其他选项卡)上,是否会为工作表生成当前的“单元格数”?B3
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()
是内置的并且很快。
推荐阅读
- azure - 无法连接到 Azure VM
- c++ - 如何修复 Visual Studio 2017 中的“命名空间 std 没有成员 scoped_lock”错误
- java - Java ConcurrentHashSet - 在多线程环境中对其进行迭代
- amazon-web-services - AWS DMS 复制实例内存不足
- matlab - 如何绘制通过一个点的超平面的 3D 散点图?
- r - 如何避免数据表中的行回调和排序之间的混淆
- python - Python中的多个for循环中断
- json - 如何在javascript中使用单个ajax调用将数据插入更多AngularJS控制器
- swift - 'NSInvalidArgumentException',原因:'JSON 写入中的类型无效(__SwiftValue)'
- javascript - 如何为类似液体的模板语言编写简单的 peg 语法?