Здравствуйте! Меня зовут Максим — я 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. Буду рад, если он также будет полезен для вас.
Оставляйте свои пожелания и комментарии под этим постом.
Vilos
Уууух.....меня бомбит от фраз a la:
Враньё в чистом виде! Браузер - сам по себе клиент серверное приложение и без сервера вроде Apache (или какой-либо аналог) - браузер примерно как тыква. Так что байты точно уходят на сервер, иначе бы ты ничего в своем браузере не увидел.
дальше - больше: идем на сайт....
Это как??? Как ваша эта фраза коррелируется с вашим первым пунктом:
Я может быть чего-то не понимаю, но в офлайне я не смогу открыть ваш сайт.
Едем дальше....
Это мне вам на слово верить или хоть какие-то пруфы будут что это правда? Кстати и немедленно возникает следующий вопрос:
Я искренне хотел посмотреть на код,...но так и не нашел ссылок на Git мне как код то ваш посмотреть? Или вы предлагаете HTML код в браузере глянуть? :) Дак опять же джентельменам мы верим на слово....типа: "мамой клянусь ваши данные мы не смотрим".
Короч...сомнений много....
А сама задумка на 5+....нужная штука, только вот реализация на 2-
Зачем в браузер пихать? Ну возьми ты сделай утилиту, выложи исходник....вопросов много.
p/s/ И ну ё-мае....рисовать англоязычную версию и не делать русскоязычную, ну не знаю, если твой родной язык русский, то наверное первично должен быть русский язык, с другой стороны допустим твой родной язык не русский, допустим грузинский или армянский....ну сделай ты на родном языке. Я понимаю что в среде IT английский базовый, но видя от вас статью на русском языке при этом не заложив в сайт русскую версию, опять же.....вопросов много.
protmaks Автор
Спасибо большое за замечания, это мой первый продукт такого плана, не судите строго.
Я постараюсь учесть их и внести больше информации. Вся информация погружается в оперативную память. Вы можете прогрузить страницу, отключить интернет, загружать и сравнивать файлы.
Что-то скачать, установить, лишнее сложности, но возможно подумаю над таким вариантом.
Я в первую очередь делал для личного пользователя, но решил кинуть в общее обозрение, возможно кому-то пригодится, также я буду рад любой критике, предложениям и замечаниям. И еще раз спасибо.