You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用gsheets Dart库获取工作表有数据的总行数(无需拉取数据)

如何通过gsheets库不获取全量数据获取工作表总行数?

问题描述

我目前使用gsheets库计算指定工作表总行数的代码如下:

final sheet = ss.worksheetByTitle('test');
final rows = await sheet?.values.map.allRows();
final totalRows = rows?.length;

但这段代码需要拉取所有行数据,效率较低,想知道有没有办法不用获取实际数据就能拿到总行数?


解决方案

分两种场景给出不同的实现方式:

1. 获取工作表的总容量行数(含空行)

如果需要的是该工作表的最大可容纳行数(比如默认新建的工作表有1000行),可以直接读取工作表的属性,无需拉取任何数据:

final sheet = ss.worksheetByTitle('test');
// 先获取工作表属性
await sheet?.getProperties();
// 获取总容量行数
final totalCapacityRows = sheet?.properties.rowCount;

2. 获取有实际数据的总行数

Google Sheets API本身没有直接提供非空行总数的接口,gsheets库也没有封装对应的方法,但可以用获取最后一行行号的方式替代,这种方式仅请求最后一个有数据单元格的位置,远比重载全量数据高效:

final sheet = ss.worksheetByTitle('test');
// 获取最后一个有数据的单元格
final lastCell = await sheet?.values.lastRow();
// 最后一行的行号即为有数据的总行数
final totalDataRows = lastCell?.row;

内容的提问来源于stack exchange,提问作者Meysam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:31:05