如何使用Google Apps Script获取Google表格指定列的下一个空行
解决方案
你只需要在原有函数的返回逻辑基础上补充边界判断后加1即可,修改后的函数如下:
function getNextEmptyRowOfColumnA(sheet) { var lastRow = sheet.getLastRow(); // 处理表格完全为空的特殊情况 if (lastRow === 0) { return 1; } var range = sheet.getRange("A" + lastRow); var lastDataRow; if (range.getValue() !== "") { lastDataRow = lastRow; } else { lastDataRow = range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); // 处理A列全空、其他列有内容的情况 if (sheet.getRange("A" + lastDataRow).getValue() === "") { return 1; } } // 最后有值行的下一行就是目标空行 return lastDataRow + 1; }
逻辑说明
- 原有函数已经可以准确拿到A列最后一个非空行的行号,直接加1就可以得到你需要的目标行号,例如A20是最后一个非空单元格时,就会返回21
- 补充了两种容易出错的边界场景处理:
- 整个表格完全没有内容的情况,直接返回第一行作为写入起始行
- A列全空、其他列有内容的情况,也返回第一行作为A列的写入起始行
用法示例
调用该函数获取行号后即可直接写入数据,参考代码如下:
// 示例:向A列第一个空行写入内容 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var targetRow = getNextEmptyRowOfColumnA(sheet); sheet.getRange("A" + targetRow).setValue("新写入的内容");
内容的提问来源于stack exchange,提问作者Matija Kordic
相关产品推荐
相关产品推荐

