Объединить CSV файлы

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

Файлы обрабатываются локально в браузере и никуда не загружаются.

Файлы обрабатываются локально в браузере и никуда не загружаются.

Как работает объединение

Файлы с одинаковым заголовком склеиваются по границам строк. Файлы с разными заголовками читаются построчно и записываются в одну таблицу.

  1. 1

    Прочитать каждый заголовок

    Первая строка каждого файла проверяется на BOM, разделитель и имена столбцов. Разделитель можно переопределить.

  2. 2

    Выбрать столбцы результата

    Все столбцы сохраняет каждый заголовок в порядке первого появления. Столбцы первого файла оставляют только первый заголовок. Можно добавить столбец с именем файла.

  3. 3

    Записать один CSV

    Если заголовки совпадают, последующие файлы добавляются как диапазоны байт оригинала. Если нет, каждая строка данных проецируется на столбцы результата.

Что сохраняется и что не поддерживается

  • Поля в кавычках следуют RFC 4180: запятые, переносы строк и удвоенные кавычки ("") внутри кавычек — данные.
  • Результат берёт разделитель и переводы строк первого файла. UTF-8 BOM пишется, если он был хотя бы в одном входном файле.
  • Если файл не заканчивается переводом строки, он вставляется перед следующим, чтобы строки не слиплись.
  • UTF-16 отклоняется с сообщением; сначала сохраните как UTF-8. За один раз объединяется не больше 50 файлов.
  • Повторяющиеся имена заголовков в одном файле делаются уникальными (name, name_2). Пустые ячейки заголовка становятся column_N.

Разобранные примеры

Оба примера используют встроенные образцы — можно загрузить и сверить каждое число.

Объединить два файла заказов с одним заголовком

Загрузите «Два файла заказов (120 + 80 строк)», оставьте «Все столбцы» и включённый заголовок.

  1. 1У q1-orders.csv заголовок order_id,order_date,region,amount и 120 строк данных.
  2. 2У q2-orders.csv тот же заголовок и 80 строк, order_id начинается с 2001.
  3. 3Заголовки совпадают, поэтому файлы склеиваются: заголовок один раз, затем все строки Q1, затем все строки Q2.
  4. 4120 + 80 = 200 строк данных. Объединённый файл начинается с той же строки заголовка.

Результат: q1-orders_merged.csv, 200 строк данных (120 из Q1, 80 из Q2) и четыре столбца.

Объединить сотрудников и подрядчиков с разными столбцами

Загрузите «Сотрудники + подрядчики (разные столбцы)» и оставьте «Все столбцы».

  1. 1staff.csv: id, name, team (4 человека). contractors.csv: id, name, email, day_rate (3 человека).
  2. 2Объединение заголовков: id, name, team, email, day_rate — пять столбцов в порядке появления.
  3. 3У сотрудников пустые email и day_rate. У подрядчиков пустой team. Имена вроде Li, Wei остаются одной ячейкой.
  4. 4«Столбцы первого файла» оставили бы только id, name, team и убрали email и day_rate.

Результат: 7 строк данных и 5 столбцов. В файле три почты подрядчиков в столбце email, team пустой.

FAQ

Вопросы об объединении CSV, заголовках и кодировках.

CSV загружается на сервер?

Нет. Файлы читаются File API браузера на вашем устройстве. Загрузки нет; закрытие вкладки всё стирает.

Как объединить CSV с разными столбцами?

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

Строка заголовка повторяется?

Нет. Если включено «Первая строка — заголовок», он пишется один раз сверху. Последующие файлы дают только строки данных.

Что с полями в кавычках, где есть запятые или переносы?

Они остаются целыми. Перенос внутри двойных кавычек — часть поля, а "" — экранированные кавычки.

Какие разделители поддерживаются?

Запятая, точка с запятой, табуляция и вертикальная черта. Разделитель каждого файла определяется по первой строке и его можно сменить. Результат берёт разделитель первого файла.

Excel откроет файл правильно?

Да. Если у входа был UTF-8 BOM, он останется. Окончания CRLF первого файла тоже сохраняются.

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

Включите «Добавить столбец исходного файла». Исходное имя ставится в начало каждой строки данных.

Чем это отличается от разделения CSV?

Разделитель режет один файл на части. Эта страница делает обратное. После разбиения части можно снова склеить здесь; оставьте заголовок включённым, чтобы заголовки не копились.