簡體   English   中英

如何使用Google App腳本獲取Google表格中特定列的最后一個單元格?

[英]How to get last cell of a particular column in google sheet using google app script?

我想將內容添加到特定列的最后一行。
例如我的Google工作表的當前狀態是

x  A            B          C
1  value1ofA    value1ofB  value1ofC
2  value2ofA    value2ofB  value2ofC
3               value3ofB  value3ofC
4                          value4ofC

有時我想在C列中添加值value5ofC
有時我想在B列中添加值value4ofB
有時我想在A列中添加值value3ofA

我知道如何使用范圍在單個單元格中插入值

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
sheet.getRange(5, 5).setValue('value5ofC') // This will set content at cell of 5th row and 5th column

在此示例代碼中,我知道C列最后一個單元格的位置,如果要使其自動化,我想找出最后一個單元格的位置,以便可以用一些內容填充它。

我可以使用sheet.getLastRow()找出整個工作表的最后一行,但是我想要特定列的最后一行。

如何找到任何列的最后一個單元格的位置?

  • 您要檢索工作表中每列的最后一行的數量。

如果我對您的問題的理解正確,那么該答案如何? 我認為針對您的情況有幾種解決方案。 因此,請考慮其中的3個。

模式1:

在此示例腳本中,它通過給出列字母來檢索特定列的最后一行。 作為示例,檢索列“ C”的最后一行。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];

var col = "C"; // Please input the column letter.
var res = sheet.getRange(col + ":" + col).getValues().filter(String).length;
Logger.log(res)

當此腳本用於示例表時,將返回4。

模式2:

在此示例腳本中,它檢索所有列的最后一行。 首先,檢索單元的所有值。 然后,對包含值的數組進行轉置,並檢索最后一行。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];

var values = sheet.getDataRange().getValues();
var res = values[0].map(function(_, i) {return values.map(function(r) {return r[i]}).filter(String).length});
Logger.log(res)

當此腳本用於示例表時,將返回[2.0, 3.0, 4.0]的數組。 在這種情況下,數組的索引表示列索引。 因此,在這種情況下,列“ A”,“ B”和“ C”的最后一行分別表示2、3和4。

模式3:

模式1和2可以用於工作表,該列的所有單元格都填充有值。 從您的樣本表中,我提出了以上兩種模式。 但是,如果要檢索包含空單元格的列的最后一行,則可以使用以下腳本。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];

var col = "C";
var values = sheet.getRange(col + ":" + col).getValues();
var lastRow;
for (var i = values.length - 1; i >= 0; i--) {
  if (values[i][0]) {
    lastRow = i + 1;
    break;
  }
}
Logger.log(lastRow)

參考文獻:

如果我誤解了您的問題,請告訴我。 我想修改它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM