Здравствуйте! Меня зовут Максим — я 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. Буду рад, если он также будет полезен для вас.


Оставляйте свои пожелания и комментарии под этим постом.

Комментарии (2)


  1. Vilos
    08.07.2025 10:40

    Уууух.....меня бомбит от фраз a la:

    Обработка файлов полностью в браузере (ни один байт не уходит на сервер).

    Враньё в чистом виде! Браузер - сам по себе клиент серверное приложение и без сервера вроде Apache (или какой-либо аналог) - браузер примерно как тыква. Так что байты точно уходят на сервер, иначе бы ты ничего в своем браузере не увидел.

    дальше - больше: идем на сайт....

    Works completely offline

    Это как??? Как ваша эта фраза коррелируется с вашим первым пунктом:

    1 - Откройте сайт MaksPilot в любом современном браузере на вашем компьютере.

    Я может быть чего-то не понимаю, но в офлайне я не смогу открыть ваш сайт.

    Едем дальше....

    • No network requests with file data

    • Auto-cleared when page closes

    • No logging or analytics of content

    Это мне вам на слово верить или хоть какие-то пруфы будут что это правда? Кстати и немедленно возникает следующий вопрос:

    Open Source Code All code is transparent and visible

    Я искренне хотел посмотреть на код,...но так и не нашел ссылок на Git мне как код то ваш посмотреть? Или вы предлагаете HTML код в браузере глянуть? :) Дак опять же джентельменам мы верим на слово....типа: "мамой клянусь ваши данные мы не смотрим".

    Короч...сомнений много....

    А сама задумка на 5+....нужная штука, только вот реализация на 2-

    Зачем в браузер пихать? Ну возьми ты сделай утилиту, выложи исходник....вопросов много.

    p/s/ И ну ё-мае....рисовать англоязычную версию и не делать русскоязычную, ну не знаю, если твой родной язык русский, то наверное первично должен быть русский язык, с другой стороны допустим твой родной язык не русский, допустим грузинский или армянский....ну сделай ты на родном языке. Я понимаю что в среде IT английский базовый, но видя от вас статью на русском языке при этом не заложив в сайт русскую версию, опять же.....вопросов много.


    1. protmaks Автор
      08.07.2025 10:40

      Спасибо большое за замечания, это мой первый продукт такого плана, не судите строго.

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

      Что-то скачать, установить, лишнее сложности, но возможно подумаю над таким вариантом.

      Я в первую очередь делал для личного пользователя, но решил кинуть в общее обозрение, возможно кому-то пригодится, также я буду рад любой критике, предложениям и замечаниям. И еще раз спасибо.