Серия «MaksPilot.com»

22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Инструмент для быстрой проверки отличий между файлами Excel (добавлен экспорт результата) Microsoft Excel, Сравнение, Аналитика, Гайд, Длиннопост
Показать полностью 5
221

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

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

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

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

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

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

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

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

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

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

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

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

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