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

在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:35:16