Как стать автором
Обновить

Комментарии 15

TortoiseSvn умеет сравнивать excel файлы по-ячейкам, кроме того, если используется только эксель и все-таки нужно написать скрипт, то уместнее написать скрипт на VBA чем на питоне.

Вы правы.

НЛО прилетело и опубликовало эту надпись здесь

По моему проще допилить эксельку, чем городить такой огород.

Там же есть много прекрасных функций перевода текста в диапазоны.

Ну или просто использовать сводные таблицы

Причем для офиса 2013 и новее можно можно не подключать COM-надстройку, а запускать как отдельное приложение

[ WIN+S ]: Spreadsheet Compare

Самое смешное, что в excel есть встроенный механизм сравнения 2х версий документа.

Но, в последнее время, людям проще написать скрипт на питон, чем выучить инструмент в котором они работают.

Эта функция доступна только в Office для бизнеса

Spreadsheet Compare is only available with Office Professional Plus 2013, Office Professional Plus 2016, Office Professional Plus 2019

>Решим достаточно тривиальную задачу
А потом выясняется, что и порядок столбцов, и порядок строк разные, и на самом деле задача вообще не такая, какую решает стандартное средство сравнения таблиц в Excel.

В общем, мне кажется автор просто ввел всех в заблуждение, недостаточно четко описав задачу. И стандартное средство тут похоже не применимо совсем.

Какие предложения от excel ?

с 2013 версии там это делается в power query в пяток кликов.

Оба варианта работают и в принципе лучше ковыряния в excell мышкой . Есть и третий вариант ещё более простой - выгнать данные в csv файлы, их прочитать в структуру словаря, собрать ключи в 2 множества и собрать результирующий csv. Над множествами python умеет выполнять арифметические операции.

Отвечу фразой одного героя из к/ф «Тени исчезают в полдень»: «Сомневаюсь я».
Операции чтения-записи не прибавят скорости,
— прогон в csv сам по себе может поселить ошибки, например, если имеются столбцы с пробелами в содержимом,
— при сборе в словари надо учесть, что меняться могут не только ключи, но и значения.
А при вычитании множеств надо иметь в виду, что вычитать придется так же(как и в задаче) дважды, т.к. множества могут оказаться неоднородными (количество ключей-значений может быть разным).
Да и на выходе из csv собирать затем excel таблицу?

Строки с пробелами выгоняются как раз нормально. Проверено на довольно больших таблицах.

При сборе с в словари, нужно представлять характер данных. Если существует главный ключ, то вообще задача заметно упрощается. При загрузке в словарь как раз можно и проверить на повторение ключей. Можно и типы полей при этом проверить. На всё - про всё примерно строк 20-40 кода.

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

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

Результирующую таблицу ( или несколько, если необходимы отчёты по плохим записям) можно тоже) в csv вывести. Ну или сразу в Excel.

Вообще, подобные задачи(анализ корректности данных) считаются довольно сложными и, конечно, Excel для подобных задач подходит плохо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории