Pau*_*aul 1 javascript google-sheets google-apps-script
我正在寻找一种方法来查找特定列的最后一行(带有数据)。假设 A 列第 100 行的最后一个数据项,B 列第 50 行的最后一个数据项。
.getLastRow(); 将永远返回 100 给我。
我需要一种简单的方法来获得 50(这是 B 列中最后一个非空行的行号)。
我不能使用循环。这非常重要,因为有数千行,它只会花费太多时间。
我用谷歌搜索了很多,但所有的答案都涉及循环。
虽然不知道这个方法好不好,但是这个方法呢?此方法不使用循环。请将此作为样本之一进行检查。
getLastRow()。示例脚本:
var col = ##; // Here, please input a column number.
var ss = SpreadsheetApp.getActiveSheet();
var coldata = ss.getRange(1, col, ss.getLastRow(), 1).getValues();
var tempss = SpreadsheetApp.create("temporary_sheet");
tempss.getActiveSheet().getRange(1,1,coldata.length, coldata[0].length).setValues(coldata);
var last_row = tempss.getLastRow(); // The number of last row
Drive.Files.remove(tempss.getId()); // In this case, the file is removed using Drive API.
Run Code Online (Sandbox Code Playgroud)
笔记 :
在上述情况下,即使列有空单元格,也可以检索最后一行的编号。如果该列没有空单元格,您可以通过以下脚本检索特定列的最后一行的编号。这不会创建临时表。
var last_row = ss.getRange(1, col, ss.getLastRow(), 1).getValues().filter(String).length;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想使用以下 2 种模式进行处理。
通过从工作表的顶部搜索来检索特定列的第一个空单元格
通过从工作表的底部搜索来检索特定列的第一个非空单元格
为了实现上述,我认为可以使用以下2种模式。
检索列的值并使用循环搜索结果。
使用 Google Apps Script 的内置方法直接检索结果。
我测量了它们的过程成本。结果,发现以下 2 个脚本是所有方法中最低的。
var col = ##; // Here, please input a column number.
var ss = SpreadsheetApp.getActiveSheet();
var coldata = ss.getRange(1, col, ss.getLastRow(), 1).getValues();
var tempss = SpreadsheetApp.create("temporary_sheet");
tempss.getActiveSheet().getRange(1,1,coldata.length, coldata[0].length).setValues(coldata);
var last_row = tempss.getLastRow(); // The number of last row
Drive.Files.remove(tempss.getId()); // In this case, the file is removed using Drive API.
Run Code Online (Sandbox Code Playgroud)
const res = sheet.get1stEmptyRowFromTop(3, 2);.在这个问题中,我认为这种模式可能是合适的。
var last_row = ss.getRange(1, col, ss.getLastRow(), 1).getValues().filter(String).length;
Run Code Online (Sandbox Code Playgroud)
const res = sheet.get1stNonEmptyRowFromBottom(3, 2);.当使用上述脚本时,得到以下结果。
当“C”列使用“通过从工作表的顶部搜索来检索特定列的第一个空单元格”的脚本时,将获得第 6 行。
当“C”列使用“通过从工作表的底部搜索来检索特定列的第一个非空单元格”的脚本时,将获得第 9 行。
| 归档时间: |
|
| 查看次数: |
17032 次 |
| 最近记录: |