Как импортировать данные из API в Google Таблицы через IMPORTJSON

Обсудить
Как импортировать данные из API в Google Таблицы через IMPORTJSON
Реклама. АО «ТаймВэб». erid: 2W5zFH7nXnp

Вручную копировать данные из внешних сервисов в таблицы отнимает время и создает риск ошибок. Курсы валют меняются каждый день, статистика обновляется ежечасно, а отчеты требуют свежих цифр здесь и сейчас. Встроенные функции Google Таблиц вроде IMPORTDATA и IMPORTXML не всегда справляются с различными API, которые возвращают данные в формате JSON. 

Пользовательская функция IMPORTJSON решает эту проблему, позволяя напрямую загружать данные из любого API прямо в ячейки таблицы. Один раз настроили подключение – данные обновляются автоматически при каждом открытии документа. Разберем, как установить функцию, использовать ее на практических примерах и избежать типичных проблем.

Что такое IMPORTJSON и зачем она нужна

IMPORTJSON – это пользовательская функция для Google Таблиц, которая умеет получать данные из API в формате JSON и автоматически преобразовывать их в табличный вид. JSON (JavaScript Object Notation) стал стандартом для обмена данными между сервисами, потому что компактен, легко читается и поддерживается всеми современными платформами. Большинство публичных API – от биржевых котировок до прогноза погоды – возвращают информацию именно в этом формате.

Читайте также в Комьюнити: Что такое формат JSON

Разбор принципов инструмента для работы с функцией IMPORTJSON в Google Таблицах

Google Таблицы имеют встроенные функции для импорта данных, но они ограничены. IMPORTDATA работает только с простым текстом и CSV, IMPORTXML требует знания XPath и не понимает JSON. IMPORTHTML парсит таблицы с веб-страниц, но бесполезна для работы с API. Пользовательская функция IMPORTJSON закрывает этот пробел, превращая сложные JSON-структуры в обычные строки и столбцы, с которыми можно работать привычными инструментами.

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

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

Как установить IMPORTJSON

Установка функции происходит через редактор скриптов Google Таблиц. Процесс одинаков для любого документа и требует выполнения нескольких простых шагов:

  1. Откройте вашу Google Таблицу, после чего в главном меню выберите «Расширения» – «Apps Script».Переход к созданию скрипта для работы с функцией IMPORTJSON в Google Таблицах

  2. Откроется новое окно редактора с пустым проектом, где удалите содержимое редактора (функция-заглушка myFunction).Удаление базового скрипта для работы с функцией IMPORTJSON в Google Таблицах

  3. Перейдите по ссылке https://raw.githubusercontent.com/bradjasper/ImportJSON/master/ImportJSON.gs и скопируйте весь код со страницы (Ctrl + A, затем Ctrl + C).Копирование скрипта для работы с функцией IMPORTJSON в Google Таблицах

  4. Вставьте скопированный код в редактор Apps Script (Ctrl + V).Вставка скрипта для работы с функцией IMPORTJSON в Google Таблицах

  5. Нажмите значок дискеты или используйте Ctrl + S для сохранения.Сохранение скрипта для работы с функцией IMPORTJSON в Google Таблицах

  6. Присвойте проекту понятное имя, например «ImportJSON».Ввод названия для скрипта для работы с функцией IMPORTJSON в Google Таблицах

  7. Закройте окно редактора и вернитесь к таблице.

Функция установлена и готова к использованию. При первом запуске Google попросит предоставить разрешения – согласитесь, чтобы скрипт мог получать данные из внешних источников. Система предупредит, что это ненадежное приложение (потому что код не прошел официальную проверку Google), но вы можете доверять коду, поскольку он открыт для аудита.

Предоставление разрешений для работы с функцией IMPORTJSON в Google Таблицах

Важный момент: функция устанавливается отдельно для каждой таблицы. Если создадите новый документ, придется повторить установку. Альтернативный вариант – создать таблицу-шаблон с уже установленной функцией и копировать ее для новых проектов.

Структура функции и параметры

Базовый синтаксис IMPORTJSON выглядит просто: =IMPORTJSON(url; путь; опции). Первый параметр – обязательный URL-адрес API, который возвращает JSON. Второй параметр указывает, какие именно поля из JSON нужно извлечь. Третий параметр содержит дополнительные настройки форматирования результата.

Путь к данным записывается через прямой слеш, как в файловой системе. Если JSON содержит объект {"user": {"name": "Иван"}}, путь к имени будет /user/name. Для массивов используются числовые индексы: /users/0/name вернет имя первого пользователя из массива. Можно запрашивать несколько полей одновременно, перечисляя их через запятую: /name;/age;/city.

Ознакомление с синтаксисом для работы с функцией IMPORTJSON в Google Таблицах

Параметр опций управляет представлением данных. noHeaders убирает строку с названиями полей, оставляя только данные. noInherit отключает наследование значений от родительских элементов. noTruncate предотвращает обрезание длинных строк после 256 символов. rawHeaders оставляет названия полей как есть, без преобразования в читаемый вид. Опции указываются в кавычках и разделяются запятыми: "noHeaders;noTruncate".

Пример: Импорт данных пользователей из тестового API

JSONPlaceholder – бесплатный тестовый API, который не требует регистрации, ключей доступа или специальных настроек. Этот сервис создан специально для обучения и тестирования, поэтому гарантированно работает и возвращает предсказуемые данные. Это идеальный вариант для первого знакомства с IMPORTJSON, который вы можете использовать для тестирования или базового ознакомления с функциональностью.

API содержит несколько наборов данных: пользователи, посты, комментарии, альбомы и фотографии. Для примера используем список пользователей, который находится по адресу https://jsonplaceholder.typicode.com/users.

Открытие сайта с примерами для работы с функцией IMPORTJSON в Google Таблицах

Простейший способ импортировать все данные – написать формулу без дополнительных параметров:

=ImportJSON("https://jsonplaceholder.typicode.com/users")

Формула первого примера для работы с функцией IMPORTJSON в Google Таблицах

Функция загрузит данные о 10 пользователях и автоматически разложит их по столбцам. Появятся колонки с именами, email-адресами, телефонами и другой информацией. Вложенные объекты вроде адреса и компании автоматически развернутся в отдельные столбцы с названиями address street, address city, company name.

Результат импорта для работы с функцией IMPORTJSON в Google Таблицах

Чтобы убрать строку заголовков и оставить только данные, добавьте параметр опций:

=ImportJSON("https://jsonplaceholder.typicode.com/users";"";"noHeaders")

Вывод без заголовков для работы с функцией IMPORTJSON в Google Таблицах

Обратите внимание на пустые кавычки во втором параметре – они обязательны при использовании третьего параметра. Второй параметр указывает путь к данным внутри JSON-структуры, но в данном случае данные находятся на верхнем уровне, поэтому путь не нужен.

Для импорта данных одного конкретного пользователя измените URL:

=ImportJSON("https://jsonplaceholder.typicode.com/users/1")

Формула для импорта одной строки для работы с функцией IMPORTJSON в Google Таблицах

Вернутся данные только первого пользователя. Измените цифру в конце URL на любую от 1 до 10, чтобы получить информацию о других пользователях из тестовой базы. Результат развернется в несколько строк с разными полями этого пользователя.

Для более сложных задач можно работать с другими эндпоинтами API. Например, импортировать список постов конкретного пользователя:

=ImportJSON("https://jsonplaceholder.typicode.com/posts?userId=1")

Модернизация формулы для работы с функцией IMPORTJSON в Google Таблицах

Эта формула вернет все посты, написанные первым пользователем. Параметр userId=1 фильтрует данные прямо на стороне API, что экономит время загрузки. В результате появится таблица с колонками userId, id, title и body, содержащая все посты выбранного автора.

Типичные проблемы и их решения

Ошибка #ERROR! без дополнительных пояснений обычно означает проблемы с получением данных из API. Проверьте доступность URL в браузере – возможно, сервис временно недоступен или изменился адрес. Убедитесь, что URL написан правильно и заключен в кавычки. Некоторые API требуют обязательных параметров в URL или специальных заголовков, которые базовая версия IMPORTJSON не поддерживает.

Ошибка загрузки данных для работы с функцией IMPORTJSON в Google Таблицах

Сообщение Загрузка... появляется и не исчезает при медленной работе API или больших объемах данных. Google Таблицы имеют ограничение времени выполнения скриптов – примерно 30 секунд на одну операцию. Если API отвечает медленнее, функция не успеет завершиться. Решение – использовать более быстрый источник данных или разбить запрос на несколько мелких.

Информация о загрузке данных для работы с функцией IMPORTJSON в Google Таблицах

Ошибка Exception: Request failed указывает на проблемы с сетевым подключением или блокировку запросов со стороны API. Некоторые сервисы ограничивают количество запросов с одного IP-адреса или требуют авторизации. Проверьте документацию API на предмет требований к частоте запросов и необходимости регистрации.

Данные не обновляются автоматически, остаются старыми даже после перезагрузки таблицы. Google Таблицы кэшируют результаты пользовательских функций для ускорения работы. Принудительное обновление происходит при изменении параметров функции или пересчете всех формул. Альтернативное решение – добавить в URL фиктивный параметр с текущим временем, но это усложняет формулу.

Если функция возвращает не те данные, которые ожидались, или вообще пустой результат, проблема может быть в неправильно указанном пути к данным внутри JSON. Откройте URL API в браузере и изучите структуру ответа – возможно, путь отличается от предполагаемого. Используйте онлайн-инструменты для форматирования JSON, чтобы лучше видеть иерархию данных.

Ограничения и особенности работы

Google Apps Script накладывает ограничения на частоту и объем внешних запросов. Бесплатные аккаунты могут выполнять ограниченное количество обращений к внешним сервисам в сутки. При интенсивном использовании функция перестанет работать до следующего дня. Точные лимиты зависят от типа аккаунта и могут меняться.

Функция выполняется синхронно и блокирует работу таблицы на время загрузки данных. Если API отвечает медленно, пользователь не сможет редактировать ячейки, пока запрос не завершится. Множественные вызовы IMPORTJSON в одной таблице замедляют открытие документа, потому что все функции выполняются последовательно при загрузке.

Ограничения работы API для работы с функцией IMPORTJSON в Google Таблицах

Вместе с этим учитывайте, что IMPORTJSON не поддерживает POST-запросы и сложную аутентификацию из коробки. Базовая версия работает только с публичными GET-запросами без авторизации. Для работы с защищенными API придется модифицировать код функции, добавляя поддержку заголовков и токенов доступа. Это требует знания JavaScript и понимания принципов работы Apps Script.

Альтернативы IMPORTJSON

Встроенная функция IMPORTDATA импортирует данные из простых текстовых источников и CSV файлов. Подходит для загрузки данных из примитивных API, возвращающих текст в одну строку или разделенные запятыми значения. Для JSON не работает. IMPORTXML парсит XML и HTML с использованием XPath запросов. Полезна для работы с RSS-лентами и старыми API, но требует знания синтаксиса XPath.

Читайте также в Комьюнити: Управление большими наборами данных в Google Таблицах

Выбор альтернатив для работы с функцией IMPORTJSON в Google Таблицах

Заключение

Импорт данных из API через IMPORTJSON автоматизирует работу с внешними источниками данных прямо в Google Таблицах. Установка функции занимает несколько минут через редактор Apps Script и не требует программирования – достаточно скопировать готовый код и вставить его в редактор. Базовый синтаксис включает URL источника, путь к нужным данным внутри JSON-структуры и опциональные параметры форматирования вывода. 

Практический пример с JSONPlaceholder показывает простоту получения тестовых данных без регистрации и API-ключей – одна формула загружает информацию о пользователях, постах или других объектах. Типичные проблемы связаны с доступностью API, правильностью указания путей к данным и ограничениями Google Apps Script на частоту запросов к внешним сервисам. Функция работает только с публичными GET-запросами и не поддерживает сложную аутентификацию без модификации исходного кода. 

Для простых задач импорта текстовых данных и CSV существуют встроенные альтернативы IMPORTDATA и IMPORTXML, но они не умеют парсить JSON-формат. IMPORTJSON остается единственным удобным решением для работы с API, возвращающими данные в JSON.

Наши постоянные авторы и читатели делятся лайфхаками, основанными на личном опыте. Полная свобода самовыражения.

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте