Инструменты · Данные

Как открыть большой CSV-файл, который не помещается в Excel

Выгрузили отчёт, лог или базу контактов в CSV — а Excel открывает только часть строк или намертво зависает. Причина почти всегда одна: файл больше, чем таблица способна вместить. Хорошая новость — открыть и обработать даже CSV на 2 ГБ и десятки миллионов строк можно бесплатно, если не пытаться загнать его целиком в Excel. Разбираем рабочие способы: от кнопки в самом Excel до SQL-запроса прямо к файлу.

Обновлено: 15 августа 2026 Редакция Loadfile Чтение 11 мин

Коротко: Excel обрезает CSV на 1 048 576 строках, поэтому большой файл нельзя открывать целиком в таблице. Импортируйте только нужное через Power Query («Данные → Из текста/CSV»), задайте SQL-запрос прямо к файлу через бесплатный DuckDB, читайте файл кусками в Python (pandas с chunksize) или просто просмотрите первые строки в CLI (head, less). Для регулярной работы загрузите CSV в базу данных.

Содержание
  1. Почему Excel не открывает большой CSV
  2. Сначала оцените файл: строки и кодировка
  3. Power Query: импорт и свёртка данных в Excel
  4. Google Sheets и облачные таблицы
  5. DuckDB: SQL-запрос прямо к CSV
  6. Python и pandas: чтение по частям
  7. Разбить файл или открыть в просмотрщике
  8. Сравнение способов: что выбрать
  9. Частые вопросы

Почему Excel не открывает большой CSV

Microsoft Excel — это сетка фиксированного размера. Начиная с версии 2007 один лист вмещает максимум 1 048 576 строк и 16 384 столбца. CSV же — это обычный текстовый файл, и строк в нём может быть сколько угодно. Когда данных больше лимита, Excel открывает файл до строки 1 048 576, остальное молча отбрасывает — и вы работаете с неполным набором, даже не подозревая об этом.

Второй барьер — оперативная память. Excel держит весь лист в RAM и раздувает его служебными структурами, поэтому CSV на 500 МБ легко превращается в несколько гигабайт занятой памяти и зависание. Отсюда главный принцип: большой CSV не нужно «открывать» в привычном смысле — его нужно импортировать частично или обрабатывать потоково, не загружая целиком.

!
Тихая потеря данных

Если Excel открыл файл ровно на 1 048 576 строках — это почти наверняка обрезка, а не реальный конец данных. Проверьте число строк в файле отдельно (см. следующий раздел), прежде чем считать итоги.

Что именно лежит внутри CSV и чем он отличается от XLSX — разбираем в отдельном материале «чем открыть CSV». Здесь же сосредоточимся на файлах, которые в таблицу просто не влезают.

Сначала оцените файл: строки и кодировка

Прежде чем выбирать инструмент, узнайте два параметра: сколько в файле строк и в какой он кодировке. Это подскажет, поместится ли выборка в Excel и не превратится ли текст в «крякозябры». Открывать сам файл для этого не нужно — достаточно прочитать его начало.

В Linux и macOS (терминал):

# сколько строк в файле wc -l data.csv # первые 5 строк — увидеть заголовки и разделитель head -n 5 data.csv # определить кодировку file -i data.csv

В Windows (PowerShell) начало файла покажет команда:

Get-Content data.csv -TotalCount 5

Если в предпросмотре русский текст выглядит как «Ð¯Ð·Ñ‹Ðº» или «????», файл не в UTF-8 — при импорте нужно будет явно указать кодировку (обычно Windows-1251). Как это лечится, подробно описано в статье «крякозябры вместо текста: кодировка файла». Заодно посмотрите на разделитель: в русской локали Excel часто ждёт точку с запятой, а не запятую.

Power Query: импорт и свёртка данных в Excel

Если результат вам всё же нужен в Excel, не открывайте CSV двойным кликом — воспользуйтесь встроенным движком Power Query. Он читает файл потоково и позволяет отфильтровать, сгруппировать и агрегировать данные ещё до загрузки на лист, поэтому в саму таблицу попадает уже компактный результат, укладывающийся в лимит строк.

  1. На ленте откройте вкладку «Данные»«Получить данные»«Из текста/CSV» (в старых версиях — «Из текста»).
  2. Выберите файл. В окне предпросмотра задайте правильные разделитель и кодировку (например, 1251 для кириллицы из старых систем).
  3. Нажмите «Преобразовать данные» — откроется редактор Power Query. Здесь отфильтруйте лишние строки, оставьте нужные столбцы, при необходимости сгруппируйте и посчитайте итоги.
  4. Нажмите «Закрыть и загрузить». На лист ляжет только результат запроса, а не все исходные строки.
💡
Если итоги важнее строк

Когда нужны не сами записи, а сумма, среднее или количество по категориям, загружайте данные Power Query сразу «только в подключение» и стройте по ним сводную таблицу. Тогда исходные миллионы строк вообще не попадают на лист.

Ограничение метода честное: если после всех фильтров у вас всё равно остаётся больше миллиона нужных строк, Excel их не покажет. В этом случае переходите к инструментам ниже, которые не привязаны к сетке.

Google Sheets и облачные таблицы

Google Таблицы кажутся выходом, но у них свой потолок — 10 миллионов ячеек на документ. Лимит считается как строки × столбцы, поэтому файл с 20 колонками упрётся в стену уже на 500 тысячах строк. Плюс загрузка через «Файл → Импорт» принимает CSV размером примерно до 100 МБ, а файлы крупнее просто не примет.

Вывод: облачные таблицы подходят для «средних» файлов — сотни тысяч строк, не гигабайты. Для по-настоящему больших выгрузок это не решение, и упор стоит делать на инструменты, которые не хранят данные в ячейках.

DuckDB: SQL-запрос прямо к CSV

Самый удобный современный способ работать с большим CSV, не программируя, — бесплатный движок DuckDB. Это одна небольшая программа без установки сервера: она умеет выполнять SQL-запросы прямо к файлу CSV, не загружая его целиком в память. Файл на несколько гигабайт обрабатывается на обычном ноутбуке.

Скачайте один исполняемый файл с сайта проекта, запустите его в папке с данными и обращайтесь к CSV как к таблице:

-- сколько всего строк на самом деле SELECT count(*) FROM 'data.csv'; -- выборка нужных записей SELECT * FROM 'data.csv' WHERE region = 'RU' LIMIT 100; -- агрегат по категориям SELECT category, sum(amount) FROM 'data.csv' GROUP BY category; -- сохранить компактный результат обратно в CSV COPY (SELECT * FROM 'data.csv' WHERE amount > 1000) TO 'result.csv' (HEADER, DELIMITER ',');

DuckDB сам определяет типы столбцов и разделитель, а результат легко выгрузить обратно в небольшой CSV, который уже спокойно откроется в Excel. Полное описание чтения CSV есть в официальной документации DuckDB.

💡
Когда файлы приходят регулярно

Если большие выгрузки нужно обрабатывать не раз в квартал, а каждый день, разовые запросы превращаются в рутину. На этом этапе процесс автоматизируют — настраивают конвейер, который сам разбирает форматы, проверяет данные и складывает результат в базу или продукт. Такую автоматизацию обработки данных проектирует команда разработчиков YuSMP Group: от разбора «сырых» файлов до интеграции с внутренними системами.

Python и pandas: чтение по частям

Если вам привычен код, библиотека pandas читает большой CSV кусками (чанками) фиксированного размера, обрабатывая по несколько сот тысяч строк за раз. Память при этом не переполняется, потому что весь файл в неё никогда не грузится целиком.

import pandas as pd total = 0 # читаем файл порциями по 100 000 строк for chunk in pd.read_csv('data.csv', chunksize=100_000): total += chunk['amount'].sum() print(total)

Для кириллицы, которая не в UTF-8, добавьте параметр кодировки: pd.read_csv('data.csv', encoding='cp1251', sep=';'). Если нужны только несколько столбцов, укажите их через usecols=[...] — так чтение ускорится и займёт ещё меньше памяти. Для файлов в десятки гигабайт вместо pandas берут «ленивые» движки вроде Polars или того же DuckDB — принцип тот же, но обработка быстрее.

Разбить файл или открыть в просмотрщике

Иногда данные не нужно считать — нужно просто заглянуть внутрь или отдать файл по частям. Тут помогают два подхода.

Разбить на несколько файлов. В Linux и macOS одна команда режет CSV на части по 500 000 строк:

split -l 500000 data.csv part_

Получатся файлы part_aa, part_ab и так далее — каждый уже открывается в Excel. Минус: заголовок останется только в первом куске, в остальные его придётся дописать. В Windows то же самое делают бесплатные утилиты-«сплиттеры» CSV.

Просто посмотреть содержимое. Для просмотра гигабайтных текстовых файлов есть специальные редакторы, которые не грузят файл целиком: EmEditor (Windows, платный, но с пробным периодом), а также бесплатные klogg и glogg для больших логов и таблиц. Из командной строки удобно листать через less data.csv, а инструментарий csvkit (csvstat, csvcut) считает статистику по колонкам без Excel.

Не загружайте персональные данные в онлайн-вьюеры

Большие CSV — это часто выгрузки клиентов, заказов, логов. Онлайн-сервисы «открыть CSV в браузере» отправляют файл на чужой сервер. Для персональных и коммерческих данных работайте только локально — через DuckDB, pandas или десктопный редактор.

Сравнение способов: что выбрать

СпособДля чегоПределНавыки
Power Query (Excel)Фильтр и итоги, результат в ExcelИтог ≤ 1 млн строкНизкие
Google SheetsСредние файлы в облаке10 млн ячеек, ~100 МБНизкие
DuckDBSQL-выборки и агрегаты по файлуДесятки ГББазовый SQL
Python / pandasОбработка и расчёты в кодеОграничена дискомКод
split + просмотрщикРазрезать или просто посмотретьЛюбой размерСредние

Практическое правило: нужен результат в привычной таблице — Power Query; нужно быстро посчитать по большому файлу без кода — DuckDB; файл встроен в регулярный процесс — Python или база данных. А чтобы после выборки перегнать результат в другой формат, пригодятся инструменты для работы с файлами.

Частые вопросы

Почему Excel открывает не все строки CSV?

Лист Excel вмещает максимум 1 048 576 строк. Если в CSV строк больше, программа загружает файл до этого предела, а остальное молча отбрасывает. Проверить реальное число строк можно командой wc -l или через DuckDB запросом SELECT count(*).

Как открыть CSV на 2 ГБ, не покупая программы?

Бесплатно: скачайте DuckDB и выполните SQL-запрос прямо к файлу, либо прочитайте его кусками в Python через pandas с параметром chunksize. Оба способа не грузят файл в память целиком и справляются с гигабайтными выгрузками.

Можно ли открыть большой CSV в Google Таблицах?

Только средний. Лимит Google Sheets — 10 млн ячеек (строки × столбцы), а импорт принимает файлы примерно до 100 МБ. Для гигабайтных выгрузок этого не хватит.

Как импортировать большой CSV в базу данных?

Проще всего через DuckDB или SQLite: одной командой создаёте таблицу из файла (CREATE TABLE t AS SELECT * FROM 'data.csv'), после чего к данным можно обращаться SQL-запросами без ограничений таблиц Excel.

Почему после открытия большого CSV вместо текста «крякозябры»?

Файл не в UTF-8 — чаще всего в Windows-1251. При импорте через Power Query или pandas явно укажите кодировку. Подробный разбор — в статье о кодировках текстовых файлов.

Как разбить большой CSV на несколько файлов?

В Linux и macOS команда split -l 500000 data.csv part_ нарежет файл на части по 500 000 строк. В Windows это делают бесплатные утилиты-сплиттеры CSV. Учтите, что заголовок останется только в первой части.

Читайте также