6 способов получить последнюю строку в скрипте Google Apps: подробное руководство

В Google Apps Script получение последней строки в электронной таблице является распространенной задачей при работе с данными. Если вам нужно добавить новые данные или выполнить вычисления, важно знать последнюю строку. В этой статье мы рассмотрим различные методы получения последней строки в скрипте Google Apps с примерами кода.

Метод 1: использование getLastRow()
Самый простой способ получить последнюю строку в электронной таблице Google Sheets — использовать функцию getLastRow(). Возвращает индекс последней строки, содержащей данные на определенном листе.

function getLastRowUsinggetLastRow() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getLastRow();
  Logger.log("Last Row: " + lastRow);
}

Метод 2: использование getDataRange()
Другой способ получить последнюю строку — использовать метод getDataRange()в сочетании с getLastRow(). Этот подход учитывает весь диапазон данных в таблице.

function getLastRowUsinggetDataRange() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getDataRange().getLastRow();
  Logger.log("Last Row: " + lastRow);
}

Метод 3: использование длины массива JavaScript
Если вы извлекли данные из листа в массив JavaScript, вы можете определить последнюю строку, напрямую обратившись к свойству длины массива.

function getLastRowUsingArrayLength() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var lastRow = data.length;
  Logger.log("Last Row: " + lastRow);
}

Метод 4: итерация снизу
Если ваш лист содержит пустые строки внизу, вы можете выполнять итерацию снизу вверх, пока не найдете первую строку с данными.

function getLastRowIteratingFromBottom() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getMaxRows();

  while (sheet.getRange(lastRow, 1).isBlank()) {
    lastRow--;
  }

  Logger.log("Last Row: " + lastRow);
}

Метод 5. Использование дополнительных служб — API Таблиц
Включив расширенную службу Таблиц, вы можете использовать API Таблиц для получения последней строки. Этот метод особенно полезен для больших наборов данных.

function getLastRowUsingSheetsAPI() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = Sheets.Spreadsheets.get(sheet.getParent().getId(), { ranges: sheet.getName(), fields: "sheets/data/rowData/values(effectiveValue)" }).sheets[0].data[0].rowData.length;
  Logger.log("Last Row: " + lastRow);
}

Метод 6: использование getLastNonEmptyRow() (пользовательская функция)
Если вам часто нужна последняя строка, вы можете создать специальную функцию для ее легкого получения.

function getLastNonEmptyRow(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getRange(range).getLastRow();
  return lastRow;
}

В этой статье мы рассмотрели шесть методов получения последней строки в скрипте Google Apps. Предпочитаете ли вы использовать встроенные методы, такие как getLastRow()и getDataRange(), или более сложные методы, такие как итерация снизу или использование API Таблиц, теперь у вас есть множество вариантов выбора. от. Эти методы помогут вам оптимизировать задачи по обработке данных и автоматизации в Google Таблицах.

Не забудьте выбрать метод, который соответствует вашим конкретным требованиям. Удачных сценариев!