我正在编写一个应用程序,将列从一张表导入到另一张表。.getLastRow 方法仅适用于整个工作表,但不能用于获取列的最后一行。存在一个请求此功能的问题。
我在谷歌脚本示例中的 2D Array 库的帮助下写了一些东西:https ://sites.google.com/site/scriptsexamples/custom-methods/2d-arrays-library
我得到了一个工作版本,可以在特定列中找到最后一行,但我怀疑它相当低效。
function readRows() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var numRows = sheet.getLastRow();
var numColumns = sheet.getLastColumn();
var data = sheet.getRange(1, 1, numRows, numColumns).getValues();
//Get the Headers, Search for a value of the headers and index
var headerArray = sheet.getRange(1, 1, 1, numColumns).getValues();
var flip = ArrayLib.transpose(headerArray)
var search = "Greens";
var whereGreen = ArrayLib.indexOf(flip, 0, search);
//Get the value of the column with matching headers, and looks up Column length.
var values = sheet.getRange(1, whereGreen +1, numRows, 1).getValues();
//finds last value, makes string
for(; values[numRows - 1] == "" && numRows > 0; numRows--) {}
var lastValue = values[numRows - 1].toString();
//Indexes where the string is, which gives the value -1 of the last row in column.
var lastRowCol = ArrayLib.indexOf(values, 0, lastValue);
Logger.log(lastRowCol +1);
}
谁能帮我得到一个精简的版本?我确信 JavaScript 可以做到这一点,但我对我在该部门的知识相当了解。