Как выгрузить таблицу Excel в Google Таблицы: все способы от ручного импорта до API

Почему перенос данных из Excel в Google Таблицы становится необходимостью

Работа с Microsoft Excel и Google Таблицами часто требует гибкости: сегодня вам нужно редактировать файл коллегой в реальном времени, завтра — автоматизировать сбор данных через облако, а послезавтра — вернуть всё обратно в локальный .xlsx. Переход между этими инструментами кажется простым, но на практике пользователи сталкиваются с потерянными формулами, искажёнными форматами дат и "битыми" связями между листами.

Согласно исследованию Gartner 2023 года, 68% компаний используют оба продукта параллельно, а 42% ежемесячно мигрируют данные между ними. Причины разные: от корпоративных политик (например, запрета на хранение данных на локальных машинах) до технических ограничений (Google Таблицы не поддерживают Power Query, зато бесплатны и интегрируются с Google Apps Script). Эта статья поможет избежать типичных ошибок при переносе и выбрать оптимальный метод в зависимости от задачи.

Мы рассмотрим не только базовый импорт через интерфейс, но и продвинутые сценарии: автоматизацию через API, обработку больших файлов (свыше 100 МБ), сохранение связей между листами и даже конвертацию макросов. Если вам нужно перенести таблицу с формулами, зависящими от внешних источников данных (например, IMPORTXML или QUERY), обязательно дочитайте до раздела про Google Apps Script — там раскрыты нюансы, которых нет в официальной документации.

Способ 1: Базовый импорт через интерфейс Google Таблиц

Самый очевидный метод — загрузка файла .xlsx или .xls непосредственно в Google Диск с последующим открытием через Google Таблицы. Подходит для разовых задач и файлов до 50 МБ. Вот как это работает:

  1. Шаг 1. Перейдите на Google Диск и нажмите кнопку Создать → Загрузка файлов.
  2. Шаг 2. Выберите файл Excel на своём устройстве. Дождитесь завершения загрузки (в правом нижнем углу появится уведомление).
  3. Шаг 3. Кликните правой кнопкой по загруженному файлу и выберите Открыть с помощью → Google Таблицы.

Система автоматически преобразует файл в формат Google Таблиц, сохраняя:

  • 📊 Структуру листов (названия и порядок)
  • 🔢 Базовые формулы (SUM, VLOOKUP, IF и др.)
  • 🎨 Условное форматирование (но не все типы правил)
  • 📅 Дата/время (если в Excel использовался стандартный формат)
⚠️ Внимание: Если в исходном файле Excel использовались связанные данные (например, подключение к Power BI или внешним базам через ODBC), они не перенесутся — Google Таблицы не поддерживают такие источники. Также могут "сломаться" имена диапазонов с пробелами или специальными символами.

Удалить пароли с листов Excel (Google Таблицы их не поддерживают)

Закрыть все внешние связи (Data → Connections)

Преобразовать диаграммы в статичные изображения (если нужно сохранить визуал)

Удалить макросы (они не работают в Google Таблицах)

-->

Способ 2: Импорт с сохранением связей между файлами

Если ваша таблица Excel ссылается на другие файлы (например, через формулу ='[Book2.xlsx]Sheet1'!A1), простой импорт обрежет эти связи. Чтобы их сохранить, нужно:

  1. Загрузить все связанные файлы на Google Диск в одну папку.
  2. Открыть главный файл через Google Таблицы.
  3. Вручную заменить пути в формулах с локальных (C:\...) на облачные, используя функцию IMPORTRANGE:
=IMPORTRANGE("https://docs.google.com/.../edit", "Sheet1!A1")

Пример преобразования:

Исходная формула в ExcelАдаптированная для Google Таблиц
='[Отчёт.xlsx]Лист1'!B2=IMPORTRANGE("URL_файла", "Лист1!B2")
=VLOOKUP(A1,[Book2.xlsx]Data!A:B,2,0)=VLOOKUP(A1, IMPORTRANGE("URL", "Data!A:B"), 2, 0)
=SUM('[Бюджет.xlsx]Январь'!C:C)=SUM(IMPORTRANGE("URL", "Январь!C:C"))

Важно: При первом использовании IMPORTRANGE потребуется разрешить доступ к связанному файлу. Для этого:

  1. В ячейке с формулой появится ошибка #REF!.
  2. Кликните по ней — откроется окно с предложением предоставить доступ.
  3. Нажмите Разрешить доступ.

Способ 3: Автоматизация через Google Apps Script

Для регулярного импорта или обработки больших файлов (свыше 100 МБ) подойдёт Google Apps Script — встроенный язык автоматизации. Например, этот скрипт загружает файл с Google Диска и конвертирует его в Google Таблицу:

function importExcelToSheets() {

const fileId = 'ID_вашего_файла_на_Диске'; // Замените на реальный ID

const file = DriveApp.getFileById(fileId);

const blob = file.getBlob();

const resource = {

title: file.getName().replace('.xlsx', ''),

mimeType: MimeType.GOOGLE_SHEETS

};

Drive.Files.copy(resource, blob.getBytes(), {convert: true});

}

Как это работает:

  1. Скрипт берёт файл по его ID (найти его можно в адресной строке при открытии файла на Диске).
  2. Преобразует .xlsx в формат Google Таблиц с сохранением структуры.
  3. Создаёт новую таблицу в той же папке.

Для запуска:

  1. Откройте Google ТаблицуРасширения → Apps Script.
  2. Вставьте код выше, заменив ID_вашего_файла_на_Диске.
  3. Нажмите Выполнить (▶️).
⚠️ Внимание: Скрипт не обрабатывает сводные таблицы и сложные диаграммы. Для них потребуется доработка кода с использованием библиотеки SpreadsheetApp. Также учтите, что Google Apps Script имеет лимиты: не более 90 минут выполнения и 100 МБ на файл.
Как найти ID файла на Google Диске

Откройте файл на Google Диске → посмотрите на адресную строку браузера.

ID — это часть URL после /file/d/ и до следующего символа /.

Пример: в ссылке https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/view ID равен 1AbCdEfGhIjKlMnOpQrStUvWxYz.

Способ 4: Импорт больших файлов (свыше 100 МБ)

Google Таблицы ограничивают размер импортируемого файла: до 50 МБ через интерфейс и до 100 МБ через Apps Script. Если ваш .xlsx тяжелее, есть два обходных пути:

Вариант A: Разбивка файла на части

Используйте Power Query в Excel для разделения данных:

  1. В Excel перейдите в Данные → Получить данные → Из таблицы/диапазона.
  2. Разбейте таблицу на части по 50 000 строк (лимит Google Таблиц на лист).
  3. Экспортируйте каждый фрагмент в отдельный .xlsx.
  4. Загрузите файлы на Google Диск и объедините через IMPORTRANGE.

Вариант B: Конвертация в CSV

Формат .csv весит меньше, но теряет:

  • ❌ Множественные листы (сохраняется только активный)
  • ❌ Формулы (остаются только значения)
  • ❌ Форматирование ячеек

Инструкция:

  1. В Excel: Файл → Сохранить как → CSV (разделители — запятые).
  2. Загрузите .csv на Google Диск.
  3. Откройте через Google ТаблицыФайл → Импорт → Загрузить.

До 10 МБ

10–50 МБ

50–100 МБ

Свыше 100 МБ

-->

Способ 5: Использование API для интеграции систем

Для корпоративных задач (например, автоматической выгрузки отчётов из или SAP в Google Таблицы) подходит Google Sheets API. Он позволяет:

  • 🔄 Обновлять данные в реальном времени
  • 📤 Загружать файлы с сервера без ручного вмешательства
  • 🔒 Управлять правами доступа

Пример на Python для загрузки .xlsx:

from google.oauth2 import service_account

from googleapiclient.discovery import build

import io

from googleapiclient.http import MediaIoBaseUpload

Настройка авторизации

SCOPES = ['https://www.googleapis.com/auth/drive']

SERVICE_ACCOUNT_FILE = 'credentials.json'

creds = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)

Загрузка файла

service = build('drive', 'v3', credentials=creds)

file_metadata = {'name': 'report.xlsx', 'parents': ['ID_папки_на_Диске']}

media = MediaIoBaseUpload(io.BytesIO(open('report.xlsx', 'rb').read()), mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')

file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()

Конвертация в Google Таблицу

drive_service = build('drive', 'v3', credentials=creds)

drive_service.files().copy(

fileId=file.get('id'),

body={'mimeType': 'application/vnd.google-apps.spreadsheet'}

).execute()

Для работы потребуется:

  1. Создать проект в Google Cloud Console.
  2. Включить Google Drive API и Google Sheets API.
  3. Сгенерировать ключ службы (JSON) и сохранить как credentials.json.
⚠️ Внимание: При использовании API учитывайте квоты: 100 запросов в минуту на проект и 500 МБ на загрузку файла. Для увеличения лимитов потребуется оплаченный тариф Google Workspace.

Типичные ошибки и как их избежать

Даже при правильном импорте данные могут отображаться некорректно. Разберём самые частые проблемы:

ОшибкаПричинаРешение
Дата отображается как число (например, 44197) Excel хранит даты как количество дней с 1900 года Выделите столбец → Формат → Число → Дата
Формулы заменены на #N/A Не поддерживаемая функция (например, XLOOKUP) Замените на аналог: XLOOKUPINDEX(MATCH())
Текст в ячейках обрезан Ограничение на 50 000 символов в ячейке Разбейте данные на несколько ячеек или листов
Диаграммы не отображаются Google Таблицы не поддерживают некоторые типы диаграмм Excel Экспортируйте диаграммы как изображения (Копировать → Вставить как рисунок)

Совет по форматированию: Если в Excel использовались пользовательские форматы (например, # ##0,00 "руб."), их придётся настраивать заново:

  1. Выделите диапазон.
  2. Перейдите в Формат → Числа → Другие форматы → Пользовательские числовые форматы.
  3. Введите шаблон (например, 0.00 "USD").

FAQ: Ответы на частые вопросы

Можно ли перенести макросы из Excel в Google Таблицы?

Нет, Google Таблицы не поддерживают VBA-макросы. Альтернатива — переписать логику на Google Apps Script (JavaScript). Например, макрос для отправки email из Excel:

Sub SendEmail()

Dim OutApp As Object

Set OutApp = CreateObject("Outlook.Application")

OutApp.CreateItem(0).Display

End Sub

В Apps Script это будет выглядеть так:

function sendEmail() {

GmailApp.sendEmail('example@example.com', 'Тема', 'Текст письма');

}

Почему после импорта пропадают сводные таблицы?

Google Таблицы не сохраняют структуру сводных таблиц (PivotTables) из Excel. Чтобы восстановить их:

  1. Выделите исходные данные.
  2. Перейдите в Данные → Сводная таблица.
  3. Настройте группировки и вычисления заново.

Для автоматизации используйте Apps Script с методом insertPivotTable.

Как перенести данные из Excel в Google Таблицы без потери русского языка?

Проблема кодировки возникает при импорте через .csv. Решения:

  • Сохраняйте файл в Excel как CSV UTF-8 (разделители — запятые).
  • При импорте в Google Таблицы выберите кодировку UTF-8.
  • Если текст уже импортирован некорректно, используйте функцию =ARRAYFORMULA(REGEXREPLACE(A:A, "�", "а")) для замены артефактов.
Можно ли импортировать Excel-файл с защищёнными листами?

Нет, Google Таблицы не поддерживают защиту листов паролем. Перед импортом:

  1. В Excel: Рецензирование → Снять защиту листа.
  2. Удалите пароль (если он известен).
  3. Сохраните файл и импортируйте.

Альтернатива: после импорта используйте Защитить лист в Google Таблицах (без пароля, только по правам доступа).

Как автоматически обновлять данные из Excel в Google Таблицах?

Для динамической синхронизации:

  1. Сохраните Excel-файл в облачном хранилище (Google Диск, Dropbox, OneDrive).
  2. Используйте Google Apps Script с триггером по времени:
function autoUpdate() {

const fileId = 'ID_файла_Excel_на_Диске';

const sheet = SpreadsheetApp.getActiveSpreadsheet();

const blob = DriveApp.getFileById(fileId).getBlob();

sheet.insertSheet().getRange('A1').setValue('Обновлено: ' + new Date());

// Дополнительная логика для импорта данных

}

Настройте триггер: Редактор скриптов → Триггеры → Добавить триггер → По таймеру (например, раз в час).