在AppScript中如何列出所有非空行?
在Google Apps Script中获取所有非空行
我们知道Google Apps Script里的getLastRow()方法可以快速获取表格的最后一行,但如果需要获取所有包含非空内容的行号(比如示例表格里的第1、3、4、6行),可以通过以下自定义函数实现:
示例表格说明
示例表格结构如下:
| 测试 |
|---|
| OK |
| OK |
| OK |
| OK |
预期要提取的非空行号:1、3、4、6
自定义函数实现
function getNonEmptyRows(sheet) { // 获取表格所有数据范围 const range = sheet.getDataRange(); // 获取所有行的数值数组 const values = range.getValues(); const nonEmptyRows = []; // 遍历每一行,注意行号从1开始(对应数组索引+1) values.forEach((row, index) => { // 检查当前行是否有非空值(过滤全空的行) const hasContent = row.some(cell => cell !== "" && cell !== null && typeof cell !== "undefined"); if (hasContent) { // 数组索引从0开始,行号要+1 nonEmptyRows.push(index + 1); } }); return nonEmptyRows; }
使用方法
在脚本中调用这个函数,比如:
function testFunction() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const targetSheet = ss.getSheetByName("你的工作表名称"); const result = getNonEmptyRows(targetSheet); // 输出结果,示例中会返回 [1,3,4,6] console.log(result); }
代码说明
getDataRange():获取表格中包含数据的整个范围,避免遍历多余的空白行row.some(...):检查当前行是否存在至少一个非空单元格,判断标准排除空字符串、null和undefined- 行号处理:因为数组索引从0开始,所以实际行号需要在索引基础上加1
内容的提问来源于stack exchange,提问作者Melo
相关产品推荐
相关产品推荐

