Откройте исходный и обновлённый файлы, выберите столбец, который однозначно определяет строку, например номер заказа или артикул, — и различия появятся сразу: строки, которые есть только в обновлённом файле, считаются добавленными, только в исходном — удалёнными, а строки из обоих файлов с разными значениями — изменёнными, с показом значения «до» и «после». Строки могут переместиться в любое место файла, и это не считается изменением. Результат можно скачать как CSV-отчёт, где каждой изменённой ячейке соответствует одна строка. Оба файла сравниваются в вашем браузере и никогда не загружаются на сервер.
Как сравнить два CSV-файла
- Откройте исходный файл в первом поле, а обновлённый — во втором. У каждого поля свои параметры импорта для разделителя, заголовка и кодировки, так что выгрузку с точкой с запятой можно сравнить с выгрузкой через запятую.
- В поле «Сопоставлять строки» выберите «По ключевым столбцам» и отметьте один или несколько ключевых столбцов из тех, что есть в обоих файлах. Если ни один столбец сам по себе не уникален, возьмите несколько, например
order_idиline. - Задайте нужные параметры сравнения, просмотрите сводку и список различий — при желании только добавленные, удалённые или изменённые — и скачайте отчёт об изменениях.
Если в файлах нет столбца с идентификатором, а строки заведомо идут в одном порядке, выберите «По номеру строки»: строка 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 различий, в отчёте — все.
change | added (добавлена), 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.
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
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.