Серия «MaksPilot.com»

24

Инструмент для быстрой проверки отличий между файлами Excel (добавлен экспорт результата)

После публикации первой части и полученного опыта, а также волны хейта я немного доработал свой онлайн-инструмент для сравнения двух Excel-файлов.

Сначала немного о том, почему я сделал этот инструмент. Я работаю инженером данных и многое уже автоматизировал в своей работе. Сейчас я занимаюсь переносом разных скриптов из старых офлайн систем в облако. Чтобы сравнивать таблицы, есть разные инструменты, но речь не об этом. В них всё просто — можно преобразовать любые форматы и сравнить. Но появилась задача сравнивать Excel, который получается после работы скрипта, и CSV-файл, выгруженный из Databricks. У кого-то это могут быть также две таблицы из разных систем.

Есть несколько вариантов, как это сделать:

  • Для продвинутых хейтеров. Можно загрузить Excel в python через pandas и сравнить две таблицы, но там нужно правильно настраивать форматы, и это долго и не очень удобно. Ещё результат выводится в виде таблицы, и приходится самому искать отличия глазами.

  • Для тех, кто знает формулы в Excel и любит рутину. Можно открыть оба файла в Excel, привести даты к одному формату, прописать формулы для сравнения и так далее. Но это долго, и каждый раз для новых файлов нужно всё делать заново. Приходится создавать дополнительные таблицы с результатами.

В итоге я решил попробовать сделать сайт, который сравнивает файлы прямо в браузере, не загружая их никуда на сервер, а используя только память вашего компьютера. Мне встречались советы в прошлом посте сделать офлайн-инструмент — но, во-первых, в exe-файле может быть всё что угодно, и вы не всегда знаете, что именно он делает. А во-вторых, на работе часто запрещено устанавливать новое ПО.
У моего сайта нет сервера — весь код лежит в открытом GitHub, который подключён к домену.

Какие задачи сейчас решает мой инструмент:

  • Можно сравнить два Excel-файла или Excel с CSV.

  • Можно выбрать, какие листы (вкладки) сравнивать.

  • Все даты перед сравнением автоматически приводятся к одному формату.

  • Названия колонок приводятся к верхнему регистру, чтобы не было ошибок из-за разного регистра.

  • Порядок строк в файлах не важен — инструмент их сравнит правильно.

  • Колонки могут идти в разном порядке — это не проблема.

  • В конце показывается итоговая таблица с отличиями.

  • Есть подробная таблица с цветной подсветкой, где видно, в чём конкретно разница.

  • Можно исключать отдельные колонки из сравнения, чтобы проверить, именно ли в них проблема.

  • Теперь можно экспортировать (сохранить) итоговую таблицу с подсветкой различий.

Вот пример двух файлов, которые я сейчас сравню:

Как видно, даты там в разных форматах, а колонки — в разном порядке. Выбираем файлы, нажимаем «Сравнить» — и получаем результат:

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

Заранее спасибо за ваши советы и комментарии.

Показать полностью 5
224

Как сравнить два Excel-файла и не сойти с ума (сделал мини инструмент, теперь 30 секунд)

Недавно у меня возникла задача, с которой, наверное, сталкивался каждый, кто хоть раз работал с таблицами. Я выгрузил из разных систем два Excel-файла, а точнее один из них был в CSV формате, вроде бы должны были быть похожими, но не совсем. Нужно было понять сходятся ли они или есть расхождения. Звучит как что-то простое, но когда я начал разбираться, стало понятно — это не 5 минут работы, а, скорее всего ни один час.

Что я пробовал, и почему это не помогло

Иногда если в файле мало строк, можно было сделать и глазами, но не в этот раз.

Обычно если нужно сравнить всего-то один столбец, то отлично подходит ВПР (VLOOKUP), но тут необходимо было сверить все столбцы.

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

Решение: сделал простую штуку, чтобы не страдать больше

Когда я понял, что готовых решений, которые бы меня устраивали, нет, я решил просто сделать своё. Также мне очень хотелось сделать подсветку расхождений, что не вглядываться в каждый столбец.

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

Как сравнить два Excel-файла и не сойти с ума (сделал мини инструмент, теперь 30 секунд)

Буду рад отзывам или пожеланиям.

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

Показать полностью 1
Отличная работа, все прочитано!