Перейти к инструменту
ViewCSV
Без загрузки на сервер

Разделение CSV

orders.csv· ПРИМЕР15 строк · 8 столбцов
Части — побайтовые копии исходных записей: кавычки, концы строк и метка BOM не меняются, а перенос строки внутри кавычек никогда не разрывает запись.
Выберите способ разделения, затем просмотрите список частей или скачайте их ZIP-архивом.

Каждую часть можно скачать и по отдельности из списка.

15 строк

Откройте CSV и выберите, как его разрезать: фиксированное число строк в файле, максимальный размер файла, количество файлов или отдельный файл для каждого значения столбца. Каждая часть — побайтовая копия исходных записей с повторённым сверху заголовком, поэтому кавычки, окончания строк, кодировка и метка BOM остаются прежними. Посмотрите список частей, а затем скачайте их по одной или все вместе в ZIP-архиве. Файлы больше 25 МБ тоже делятся, и ничего не загружается на сервер.

Как разделить CSV-файл

  1. Откройте файл .csv, .tsv или .txt, перетащите его на инструмент или вставьте строки. Первая строка считается строкой заголовков.
  2. Выберите способ разделения и укажите число строк, максимальный размер в байтах, количество файлов или столбец.
  3. В предпросмотре проверьте имя, число строк и размер каждого файла, затем скачайте одну часть или все сразу одним ZIP-архивом.

Части называются по исходному файлу: из orders.csv получаются orders-part-001.csv, orders-part-002.csv… Файл .tsv сохраняет расширение .tsv. Архив называется orders-parts.zip.

Способы разделения

Строк в файлеВ каждой части указанное число строк данных, в последней — остаток. Заголовок не считается.
Максимальный размер файлаКаждая часть заполняется целыми записями, пока следующая не превысила бы размер; размер считается в байтах вместе с заголовком и меткой BOM. Запись никогда не разрезается пополам, поэтому одна запись больше лимита останавливает разделение с ошибкой, в которой она названа.
Количество файловСначала инструмент считает записи, затем кладёт в каждую часть одинаковое число строк с округлением вверх (не больше 1000 файлов). Из-за округления файлов может получиться меньше, чем запрошено: 5 строк на 4 файла дают части по 2, 2 и 1 строке.
Файл на каждое значение столбцаСтроки группируются по точному значению выбранного столбца, и каждое значение даёт файл orders-West.csv, orders-East.csv… в порядке первого появления. Внутри каждой части строки сохраняют исходный порядок. Не больше 1000 различных значений.
Повторять заголовок в каждой частиПо умолчанию включено. Отключите, чтобы заголовок был только в первой части, — например, если части потом снова будут склеены.

Как обрабатываются сложные данные

  • Значения в кавычках с разделителем или переносами строк остаются внутри своей записи, которая читается по RFC 4180. Многострочный адрес никогда не попадёт в две разные части.
  • Записи копируются как исходные байты, без повторного разбора и записи: кавычки, окончания строк и ведущие нули сохраняются в точности. Метка порядка байтов UTF-8 в начале файла записывается в начало каждой части, так что Excel по-прежнему распознаёт каждую как UTF-8.
  • Пустые строки между записями пропускаются. Если в конце последней записи нет переноса строки, часть получает окончание строки, принятое в файле.
  • Значения столбца сравниваются в точности: West и west попадут в разные файлы. Многие файловые системы не различают регистр, поэтому второй файл получит имя orders-west-2.csv, а не перезапишет первый.
  • В именах файлов символы вроде / \ : * ? " < > | заменяются на _, имена обрезаются до 60 символов, а пустое значение записывается как orders-empty.csv. Какое значение содержит каждый файл, точно видно в столбце значений в предпросмотре.

Какие кодировки можно разделять

Разделение работает прямо с байтами, что безопасно для UTF-8 и однобайтовых кодировок, например Windows-1252 или Windows-1251. Файлы UTF-16 так разделить нельзя: сначала сохраните их в UTF-8, например с помощью формата CSV. Файлы в Shift_JIS, GB18030, GBK и Big5 можно разделить, если разделитель — запятая, точка с запятой или табуляция, но не вертикальная черта: в этих кодировках байт вертикальной черты может встретиться внутри символа. Если файл разделить нельзя, инструмент предупредит об этом до начала работы.

Устранение неполадок

  • Одна запись больше выбранного размера части. Увеличьте максимальный размер: в него должны помещаться заголовок и самая большая запись.
  • Такое разделение дало бы больше 1000 файлов. Увеличьте число строк в файле или размер либо выберите меньшее количество файлов.
  • В столбце больше 1000 различных значений. Разделите по более общему столбцу — например, по региону, а не по клиенту — или сначала отфильтруйте файл.
  • Значение в кавычках не закрывается. Где-то в файле открыта кавычка, которая так и не закрывается, поэтому весь остаток файла стал бы одной записью. Найдите её с помощью проверки CSV.

Большие файлы и конфиденциальность

Разделение не ограничено 25 МБ. Для файла больше показывается предпросмотр первых 200 строк, а при разделении весь файл читается фрагментами по 8 МБ, так что памяти расходуется немного. Части хранятся как файловые данные браузера, пока вы их не скачаете; на практике предел — свободное место, доступное браузеру.

Разделение выполняется в фоновом обработчике в этой вкладке, кнопка Отмена его останавливает. Файл никогда не отправляется на сервер. Чтобы собрать части обратно, воспользуйтесь объединением CSV-файлов; чтобы уменьшить файл, не разрезая его, — сжатием CSV.

Пример

Небольшая выгрузка заказов с окончаниями строк CRLF (здесь показаны как обычные переносы) и многострочной заметкой, разделённая на части по 2 строки с повторением заголовка. Перенос строки в кавычках остаётся внутри заказа A2, а последняя запись, у которой во входных данных не было переноса строки, получает окончание CRLF, принятое в файле.

CSV
order_id,region,note
A1,West,ok
A2,East,"two
lines"
A3,West,"a, b"
A4,,late
A5,east,ok
3 файла
orders-part-001.csv (2 rows)
order_id,region,note
A1,West,ok
A2,East,"two
lines"

orders-part-002.csv (2 rows)
order_id,region,note
A3,West,"a, b"
A4,,late

orders-part-003.csv (1 row)
order_id,region,note
A5,east,ok

Вопросы и ответы

Будет ли каждая часть правильно открываться в Excel?

Да, если правильно открывался исходный файл: у каждой части тот же заголовок, разделитель и кодировка, а метка порядка байтов UTF-8 сохраняется, если она была в исходном файле.

Можно ли разделить по столбцу, если нет строки заголовков?

Нет. Первая строка всегда читается как заголовок, а столбец выбирается по его названию. Сначала добавьте строку заголовков, например в редакторе CSV.

Почему файлов получилось меньше, чем я просил?

При разделении на заданное количество файлов в каждую часть кладётся одинаковое число строк с округлением вверх, поэтому строки могут закончиться раньше последнего файла. 10 строк на 4 файла дают 3, 3, 3 и 1; 10 строк на 6 файлов — пять файлов по 2 строки.

Стандарты и справочные материалы