12 лет в IT, последние 10 лет занимаюсь развитием digital продакшена для ecom.
Пишу в телеграмм | vc | habr. Для связи tg или fb

Открыл для себя Америку в Google Таблицах

Google Таблицы плотно вошли в нашу жизнь. Сегодня сложно найти IT-специалиста, который не сталкивался с этим инструментом. Корпорация Google очень изящно внедрила продукт в жизнь пользователей, буквально «подсадив» на него — теперь это почти как незаменимый инструмент.

Почему большие компании выбирают Google Sheets?

Я наблюдал за крупными компаниями с числом сотрудников от одной до десяти тысяч, где в ключевых отделах Google Таблицы стали core-инструментом для работы, синхронизации и решения повседневных задач. Картина одновременно интересная и настораживающая: вместо разработки собственных CRM-систем компании предпочитают использовать Google Sheets с его невероятной функциональностью.

Признаюсь честно: я сам попался в эту «ловушку» удобства. Google пока не собирается уходить с рынка, но помните о резервном копировании — к счастью, это делается максимально просто.

Три откровения: фишки гугл таблиц


Первое откровение: Apps Script

По сути, это JavaScript, который можно привязать к документу и выполнять практически любые задачи. Подробности можно изучить в официальной документации Google. Анонс функционала был в далеком 2008 году, раскатили на всех пользователей его в 2009. Мы же начали его использовать году в 2015.

Изначально мы использовали Apps Script для извлечения данных из нашей учетной системы. Принцип прост: создаем роут, который возвращает данные в формате JSON, а дальше — дело техники. Можно выводить, обрабатывать и манипулировать информацией как угодно.

Я не силен в написании кода на JavaScript, а тем более в рамках Apps Script. Но вот GPT отлично этим владеет, поэтому если мы в состоянии составить промт с чем чего вы хотите, какие вводные данные — у вас все получиться.

Простенький пример кода

function onOpen()
{
    SpreadsheetApp.getUi()
        .createMenu('Action')
        .addItem('Информация за месяц', 'fetchCSVData')
    .addToUi();
  
    weekUpdate();
}


function fetchCSVData() {
  var fileUrl = 'link_to_csv';
  var response = UrlFetchApp.fetch(fileUrl);
  var csvData = response.getContentText();
  var rows = Utilities.parseCsv(csvData);

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName('YearlyReport2024');

  if (sheet) {
    spreadsheet.deleteSheet(sheet);
  }
  sheet = spreadsheet.insertSheet('YearlyReport2024');

  // Записываем все данные одним вызовом
  sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);

  // Оптимизация форматирования и производительности
  SpreadsheetApp.flush();
}

Данный код добавляет на панель инструментов Google Таблицы новое меню под названием «Action», в котором доступна команда «Информация за месяц». При выборе этой команды выполняется функция fetchCSVData, которая загружает данные из CSV-файла по указанному URL, парсит его содержимое и записывает эти данные в лист под названием ’YearlyReport2024’. Если такой лист уже существует, он сначала удаляется, а затем создается новый.

Внутри функции fetchCSVData осуществляется запрос по URL, получение данных в виде текста, преобразование CSV-строк в двумерный массив и запись полученных данных в новую таблицу. Для улучшения производительности после записи данных вызывается метод SpreadsheetApp.flush(), который гарантирует, что все изменения в таблице будут применены и визуализированы.

Второе откровение: Прямое подключение к базам данных

Второе откровение случилось, когда нужно было получить данные из CRM-системы с базой на MySQL. Разработчики были заняты, срочно сделать роут не представлялось возможным. После консультации с ChatGPT выяснилось, что через Apps Script можно напрямую подключаться к базе данных. Невероятно, но факт! За короткое время мы составили SQL-запрос, и данные уже были в таблице.

Стоит дополнить что можно использовать любой тип файлов — csv, txt, xls. Собираете где это возможно, указываете путь и далее можно работать с данными внутри Гугла.

Третье откровение: Автоматизация отчетности

Раньше мы добавляли кнопку в меню для обновления данных. Теперь используем встроенные триггеры Google, работающие похоже на cron — они выполняют команды по заданным параметрам. Настоящая магия!

Сравнение с профессиональными аналитическими системами

Кто-то может упрекнуть меня в том, что я не упомянул Looker Studio от Google, Яндекс DataLens или ClickHouse. Да, эти инструменты круты и мы их тоже используем. Однако время разработки идентичного функционала несопоставимо.

Конечно, лучше иметь полноценные аналитические системы с красивыми графиками и фильтрами. Но когда нужно решить задачу здесь и сейчас, от быстрого варианта «на коленке» редко кто откажется.