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

Сравнение CSV-файлов

Исходный файл
orders.csv· ПРИМЕР15 строк · 8 столбцов
Обновлённый файл
orders-updated.csv· ПРИМЕР15 строк · 8 столбцов
Сопоставлять строки
Ключевые столбцы
Столбцы, по которым строка узнаётся в обоих файлах, например номер заказа.
Не сравнивать столбцы
  • Строки: добавлено 1, удалено 1, изменено 2, без изменений 12. Изменённых значений: 2.
  • 1 ключ встречается больше одного раза (первый: 001043). Повторы сопоставляются по порядку.
  • Изменена001042исходная строка 2 обновлённая строка 2
    statuspendingshipped
  • Изменена001044исходная строка 4 обновлённая строка 4
    quantity612
  • Удалена001046исходная строка 6
  • Добавлена001099 обновлённая строка 15

В скачанном файле — по строке на каждое изменённое значение, а также добавленные и удалённые строки.

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

Как сравнить два CSV-файла

  1. Откройте исходный файл в первом поле, а обновлённый — во втором. У каждого поля свои параметры импорта для разделителя, заголовка и кодировки, так что выгрузку с точкой с запятой можно сравнить с выгрузкой через запятую.
  2. В поле «Сопоставлять строки» выберите «По ключевым столбцам» и отметьте один или несколько ключевых столбцов из тех, что есть в обоих файлах. Если ни один столбец сам по себе не уникален, возьмите несколько, например order_id и line.
  3. Задайте нужные параметры сравнения, просмотрите сводку и список различий — при желании только добавленные, удалённые или изменённые — и скачайте отчёт об изменениях.

Если в файлах нет столбца с идентификатором, а строки заведомо идут в одном порядке, выберите «По номеру строки»: строка 1 сравнивается со строкой 1 и так далее. Но тогда одна вставленная строка делает изменёнными все строки после неё, поэтому, если ключ есть, используйте его.

Параметры сравнения

Не учитывать регистр буквDesk Lamp равно desk lamp. Действует и на ключевые столбцы, и на значения.
Не учитывать лишние пробелыПеред сравнением удаляет пробелы по краям и считает любую последовательность пробелов, табуляций или переносов строк внутри значения одним пробелом. Действует и на ключи.
Допуск для чиселЕсли оба значения — числа, они считаются равными, когда различаются не больше чем на эту величину, например 0.01. Вычисления точные десятичные, без плавающей точки, а при допуске 0 значения 45.0 и 45.00 считаются одним числом. Числами считаются только значения с десятичной точкой и без разделителя разрядов: 1,000 остаётся текстом, а 1e3 читается как 1000. При заданном допуске 007 тоже равно 7, потому что оба читаются как числа. Оставьте поле пустым, чтобы сравнивать текст в точности.
Не сравнивать столбцыСтолбцы, которые совсем не участвуют в сравнении, например updated_at или метка времени выгрузки, которая каждый раз новая.

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

Повторяющиеся и пустые ключи

Ключ должен определять одну строку. Если это не так, ничего не скрывается: сводка считает повторяющиеся ключи и называет первый из них, а строки с общим ключом сопоставляются в порядке появления. Первая строка исходного файла с ключом 1 сравнивается с первой строкой обновлённого файла с ключом 1, вторая — со второй, а лишние строки с любой стороны отмечаются как удалённые или добавленные.

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

Как читать результаты и отчёт

Сводка показывает число добавленных, удалённых, изменённых и неизменённых строк и общее число изменённых ячеек. В списке различия идут в порядке исходного файла, а за ними — строки, которые есть только в обновлённом. Для каждого различия указаны ключ и номер строки в каждом файле; строки данных считаются от 1, без заголовка. На странице показываются первые 500 различий, в отчёте — все.

changeadded (добавлена), removed (удалена) или changed (изменена).
Ключевые столбцыЗначение ключа. Если включено «Не учитывать регистр букв» или «Не учитывать лишние пробелы», ключ показывается в том виде, в каком сравнивался, — строчными буквами или без лишних пробелов. При сопоставлении по номеру строки здесь один столбец row с номером строки.
original_row, updated_rowНомера строк данных в каждом файле; пусто для той стороны, где строки нет.
column, original_value, updated_valueПо одной строке на изменённую ячейку. Для добавленных и удалённых строк — пусто, такие строки занимают по одной строке отчёта.

Отчёт — CSV в кодировке UTF-8, названный по обновлённому файлу, например feb-changes.csv. Откройте его в просмотре CSV, чтобы сортировать изменения и искать по ним.

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

  • Все строки отмечены как добавленные и удалённые. Ключи в двух файлах записаны по-разному, например 00123 и 123 или с пробелом в конце. Включите «Не учитывать лишние пробелы» или исправьте столбец в очистке CSV. Ведущие нули в ключах учитываются всегда, потому что ключи сравниваются как текст.
  • Равные числа отмечены как изменённые. 45.00 и 45.0 — разный текст; задайте допуск, например 0 или 0.005, чтобы сравнивать их как числа. Числа с десятичной запятой или разделителями разрядов всегда сравниваются как текст.
  • Ключевого столбца нет в списке. Ключом может быть только столбец, который есть в обоих файлах, и названия должны совпадать в точности. Если весь заголовок попал в один столбец, проверьте параметры импорта.
  • Все строки начиная с какого-то места изменены. Вы сопоставляете по номеру строки, а строку вставили или удалили. Переключитесь на сопоставление по ключу.

Ограничения и конфиденциальность

Каждый файл может занимать до 25 МБ, 100 000 строк, 250 столбцов и 2 млн ячеек. Сравнение не потоковое: оба файла хранятся в памяти, а различия обновляются при смене параметров.

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

Пример

Два списка товаров с ключом sku, сравнённые со стандартными точными настройками. Строки идут в другом порядке, но это не важно. Если включить «Не учитывать регистр букв» и «Не учитывать лишние пробелы» и задать допуск 0.001, останется только изменение stock у 00456.

CSV
jan.csv (original)
sku,name,price,stock
00123,Desk lamp,19.90,4
00456,Shelf,45.00,2
00789,Stool,12.00,9

feb.csv (updated)
sku,name,price,stock
00456,Shelf,45.0,0
00123,Desk Lamp ,19.90,4
01010,Bench,80.00,1
feb-changes.csv
change,sku,original_row,updated_row,column,original_value,updated_value
changed,00123,1,2,name,Desk lamp,"Desk Lamp "
changed,00456,2,1,price,45.00,45.0
changed,00456,2,1,stock,2,0
removed,00789,3,,,,
added,01010,,3,,,

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

Важен ли порядок строк?

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

Какой файл считать исходным?

Более старый. Строки, которые есть только во втором файле, отмечаются как добавленные, а только в первом — как удалённые, поэтому, если поменять файлы местами, поменяются местами и эти списки, и значения «до» и «после».

Можно ли сравнить столбцы с разными названиями?

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

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