Google Apps Script: Как работает функция LEFT и ее применение?

Что такое Google Apps Script и его основные возможности

Google Apps Script (GAS) — это облачная платформа для автоматизации задач и расширения функциональности Google Workspace (Sheets, Docs, Forms, Gmail и т. д.). Она позволяет разработчикам создавать скрипты, которые могут взаимодействовать с сервисами Google и сторонними API, автоматизируя рутинные процессы, интегрируя данные и расширяя возможности приложений Google.

Ключевые возможности GAS:

Автоматизация задач в Google Workspace.

Интеграция с внешними сервисами через API.

Создание веб-приложений и пользовательских интерфейсов.

Триггеры для автоматического запуска скриптов (по времени, по событию).

Доступ к базам данных и другим источникам данных.

Представление и назначение функции LEFT: извлечение подстроки слева

Функция LEFT в Google Apps Script предназначена для извлечения определенного количества символов с левой стороны строки. Она полезна, когда необходимо получить часть строки, например, префикс или первые несколько символов.

Назначение LEFT:

Извлечение части строки.

Обработка текстовых данных.

Форматирование строк.

Анализ данных.

Синтаксис функции LEFT: как правильно использовать

Синтаксис функции LEFT очень прост:

LEFT(string, length)

string: Исходная строка, из которой нужно извлечь подстроку.

length: Количество символов, которое нужно извлечь с левой стороны строки. Это должно быть число.

Применение функции LEFT: основные примеры

Извлечение первых N символов из строки

Простейший пример использования функции LEFT:

/**
 * Извлекает первые N символов из строки.
 *
 * @param {string} str Исходная строка.
 * @param {number} n Количество символов для извлечения.
 * @return {string} Подстрока, содержащая первые N символов.
 */
function getFirstNCharacters(str: string, n: number): string {
  return str.substring(0, n);
}

// Пример использования
let myString: string = "GoogleAppsScript";
let firstFive: string = getFirstNCharacters(myString, 6);
Logger.log(firstFive); // Вывод: GoogleA

Примеры использования с Google Sheets: извлечение данных из ячеек

Функция LEFT часто используется для обработки данных в Google Sheets. Например, можно извлечь код страны из номера телефона, хранящегося в ячейке.

/**
 * Извлекает код страны из номера телефона в Google Sheets.
 *
 * @param {string} sheetName Название листа.
 * @param {number} row Номер строки.
 * @param {number} column Номер столбца.
 * @return {string} Код страны.
 */
function getCountryCodeFromPhone(sheetName: string, row: number, column: number): string {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  let phoneNumber: string = sheet.getRange(row, column).getValue();
  let countryCode: string = phoneNumber.substring(0, 3); // Предполагаем, что код страны состоит из 3 символов
  return countryCode;
}

// Пример использования
function testGetCountryCode() {
  let countryCode = getCountryCodeFromPhone("Sheet1", 1, 1); // Ячейка A1 содержит номер телефона
  Logger.log(countryCode);
}

Работа с датами: извлечение года, месяца или дня

Хотя функция LEFT предназначена для строк, ее можно использовать для извлечения частей даты, если дата представлена в строковом формате.

/**
 * Извлекает год из строковой даты в формате YYYY-MM-DD.
 *
 * @param {string} dateString Дата в формате YYYY-MM-DD.
 * @return {string} Год.
 */
function getYearFromDateString(dateString: string): string {
  return dateString.substring(0, 4);
}

// Пример использования
let dateString: string = "2024-10-26";
let year: string = getYearFromDateString(dateString);
Logger.log(year); // Вывод: 2024

Продвинутые техники использования LEFT

Комбинирование LEFT с другими функциями GAS (например, SEARCH, IF)

Функцию LEFT можно комбинировать с другими функциями GAS для более сложной обработки строк. Например, можно использовать SEARCH для определения позиции определенного символа и извлечь подстроку до этого символа.

/**
 * Извлекает подстроку до первого пробела.
 *
 * @param {string} str Исходная строка.
 * @return {string} Подстрока до первого пробела.
 */
function getSubstringBeforeSpace(str: string): string {
  let spaceIndex: number = str.indexOf(" ");
  if (spaceIndex !== -1) {
    return str.substring(0, spaceIndex);
  } else {
    return str; // Если пробел не найден, возвращаем всю строку
  }
}

// Пример использования
let myString: string = "Google Apps Script";
let substring: string = getSubstringBeforeSpace(myString);
Logger.log(substring); // Вывод: Google

Условное извлечение подстроки: LEFT в связке с логическими операторами

Можно использовать логические операторы для условного извлечения подстроки. Например, извлекать подстроку только если строка начинается с определенного префикса.

Реклама
/**
 * Извлекает первые N символов, если строка начинается с 'prefix-'.
 *
 * @param {string} str Исходная строка.
 * @param {number} n Количество символов для извлечения.
 * @return {string} Подстрока, если строка начинается с 'prefix-', иначе пустая строка.
 */
function getFirstNIfStartsWithPrefix(str: string, n: number): string {
  if (str.startsWith("prefix-")) {
    return str.substring(0, n);
  } else {
    return "";
  }
}

// Пример использования
let myString1: string = "prefix-GoogleAppsScript";
let myString2: string = "OtherString";

Logger.log(getFirstNIfStartsWithPrefix(myString1, 10)); // Вывод: prefix-Goo
Logger.log(getFirstNIfStartsWithPrefix(myString2, 10)); // Вывод:

Обработка ошибок и пустых строк: что делать, если строка короче ожидаемого

Важно обрабатывать ситуации, когда строка короче ожидаемого, чтобы избежать ошибок. Можно добавить проверку на длину строки.

/**
 * Извлекает первые N символов, проверяя длину строки.
 *
 * @param {string} str Исходная строка.
 * @param {number} n Количество символов для извлечения.
 * @return {string} Подстрока, если длина строки >= N, иначе вся строка.
 */
function safeGetFirstNCharacters(str: string, n: number): string {
  if (str.length >= n) {
    return str.substring(0, n);
  } else {
    return str; // Возвращаем всю строку, если она короче N
  }
}

// Пример использования
let myString: string = "Google";
Logger.log(safeGetFirstNCharacters(myString, 10)); // Вывод: Google

Практические примеры и кейсы

Автоматическое извлечение имени файла из полного пути

Предположим, у вас есть полный путь к файлу, и вам нужно извлечь только имя файла.

/**
 * Извлекает имя файла из полного пути.
 *
 * @param {string} filePath Полный путь к файлу.
 * @return {string} Имя файла.
 */
function getFileNameFromPath(filePath: string): string {
  let lastSlashIndex: number = filePath.lastIndexOf("/");
  if (lastSlashIndex !== -1) {
    return filePath.substring(lastSlashIndex + 1);
  } else {
    return filePath; // Если нет слеша, возвращаем весь путь
  }
}

// Пример использования
let filePath: string = "/path/to/my/file.txt";
let fileName: string = getFileNameFromPath(filePath);
Logger.log(fileName); // Вывод: file.txt

Обработка данных в CSV-файлах: извлечение нужных столбцов

При обработке CSV-файлов можно использовать LEFT для извлечения данных из определенных столбцов.

/**
 * Извлекает данные из первого столбца CSV строки.
 *
 * @param {string} csvRow Строка CSV.
 * @return {string} Значение первого столбца.
 */
function getFirstColumnFromCsvRow(csvRow: string): string {
  let commaIndex: number = csvRow.indexOf(",");
  if (commaIndex !== -1) {
    return csvRow.substring(0, commaIndex);
  } else {
    return csvRow; // Если нет запятой, возвращаем всю строку
  }
}

// Пример использования
let csvRow: string = "value1,value2,value3";
let firstColumn: string = getFirstColumnFromCsvRow(csvRow);
Logger.log(firstColumn); // Вывод: value1

Создание пользовательских функций с использованием LEFT

Вы можете создавать пользовательские функции, которые используют LEFT для выполнения специфических задач.

/**
 * Проверяет, начинается ли строка с определенного префикса (регистронезависимо).
 *
 * @param {string} str Исходная строка.
 * @param {string} prefix Префикс для проверки.
 * @return {boolean} True, если строка начинается с префикса, иначе False.
 */
function startsWithIgnoreCase(str: string, prefix: string): boolean {
  let strLower: string = str.toLowerCase();
  let prefixLower: string = prefix.toLowerCase();
  return strLower.substring(0, prefixLower.length) === prefixLower;
}

// Пример использования
let myString: string = "GoogleAppsScript";
Logger.log(startsWithIgnoreCase(myString, "google")); // Вывод: true
Logger.log(startsWithIgnoreCase(myString, "Apps")); // Вывод: false

Заключение

Преимущества использования функции LEFT в Google Apps Script

Простота и удобство использования.

Эффективность при обработке текстовых данных.

Широкие возможности для интеграции с другими функциями GAS.

Улучшение читаемости и поддерживаемости кода.

Рекомендации по оптимизации кода с LEFT

Избегайте избыточного использования LEFT в циклах. Рассмотрите возможность предварительной обработки данных.

Используйте LEFT в связке с другими функциями для более сложных задач.

Оптимизируйте код для обработки больших объемов данных.

Всегда проверяйте входные данные на наличие ошибок и пустых строк.

Дополнительные ресурсы для изучения Google Apps Script

Официальная документация Google Apps Script.

Stack Overflow (поиск по тегу google-apps-script).

[Блоги и статьи по Google Apps Script](поищите в Google).


Добавить комментарий