Здравствуйте! Меня зовут Максим — я Senior Data Engineer, и мне нравится максимально автоматизировать все в своей работе. Последние несколько лет я активно перевожу проекты с устаревшей системы SAS на Databricks. Мне часто приходится сравнивать разные таблицы, и у меня уже есть многочисленные наработки для этого.
Однако недавно возникла необходимость сравнить данные в двух файлах Excel или файле Excel и CSV. Поскольку результатом работы скрипта в SAS был Excel, а по умолчанию таблица из Databricks может быть выгружена в CSV. Прототип был на Databricks, с помощью Python можно загружать Excel в таблицы и также сравнивать.
Из минусов — получаем таблицу, в которой невозможно выделить отличающиеся ячейки. Поэтому возникла идея: а что если создать простой сайт сравнения, который будет более удобен для этой задачи и может использоваться также бизнес пользователями.
Меня вдохновил продукт с открытым исходным кодом PondPilot, который может легко открывать различные файлы таблиц в браузере, но мне не хватало функциональности, и к тому же нужно было понимать синтаксис Duck SQL.
Так родился мой довольно простой, но удобный проект MaksPilot, который на данный момент решает следующие задачи:
Можно сравнивать Excel и Excel или Excel и CSV. Есть поддержка Excel с вкладками.
Обработка файлов полностью в браузере (ни один байт не уходит на сервер).
Распознает разные разделители (
;
,,
,\t
) и кодировкиРаспознает разные форматы дат (01-May-2025, 01.01.25, 01/01/25, 2025–01–01 и т. д.) и приводит их к единому формату.
Приводит числа 17 и 17.0 к единому формату.
Округляет десятичные числа до двух знаков после запятой для сравнения.
Переводит все столбцы в верхний регистр перед сравнением.
Возможно исключить столбцы из сравнения.
Как сравнить два файла Excel или CSV с помощью MaksPilot
1 - Откройте сайт MaksPilot в любом современном браузере на вашем компьютере.
2 - Выберите два файла Excel или CSV; если в Excel несколько вкладок, выберите нужную. В настоящее время существует ограничение на количество строк и столбцов, так как ресурсы браузера ограничены, но если проект востребован, то можно увеличить размеры файлов для сравнения.

3 - Под файлом отображаются несколько строк из файла, чтобы убедиться, что вы выбрали нужный файл.

4 - Нажмите на кнопку - Compare.
5 - Вверху находится итоговая сводная таблица, в которой отображается количество строк в каждом файле, количество строк, которые совпадают и не совпадают, а также столбцы, которые есть в одном файле, но отсутствуют в другом.

6 - Ниже находится поле, в которое можно ввести список столбцов и исключить их из сравнения.

7 - Ниже мы видим таблицу с подробными результатами. Строки сгруппированы, а различия выделены, что позволяет быстро находить несоответствия.

Оранжевые линии — это те, которые есть только в одной таблице. Красные — те, которые имеют различия; они сгруппированы, а зеленые показывают то, что похоже. Белые — те, которые присутствуют в двух таблицах.
8 - Под заголовком каждого столбца есть фильтр.

9 - Также есть фильтр для строк, которые можно скрыть в нижней таблице:

Я сделал простой инструмент с понятным интерфейсом, который помогает экономить время при сравнении файлов Excel и CSV. Буду рад, если он также будет полезен для вас.
Оставляйте свои пожелания и комментарии под этим постом.