Задача
Бухгалтерия регулярно получала общий Excel-файл с расчётами. Сведения из него вручную распределяли по сотрудникам: для каждого готовили отдельный файл, а затем собирали общий сводный отчёт. Одни и те же действия отнимали время, а исключение в исходных данных можно было не заметить. Нужен был локальный инструмент, который обработает файл по заданным правилам и отдельно покажет записи для проверки.
Что разработали
Мы написали на Python скрипт для обработки общего Excel-файла. Он читает исходные данные, распределяет их по сотрудникам и создаёт для каждого отдельный файл. Из того же набора получается сводный отчёт. Если запись не подходит под заданные правила или её нельзя обработать однозначно, она попадает в файл исключений.
С таблицами работают openpyxl и pandas. Скрипт запускается локально в Windows и macOS. Входной и выходные форматы привязаны к конкретному шаблону, поэтому один набор правил применяется при каждом запуске. Ручное преобразование больше не нужно, но исходные данные и готовые документы по-прежнему проверяет сотрудник.
Как работает
Сотрудник передаёт скрипту общий Excel-файл нужной структуры. Программа проходит по строкам, распределяет данные по настроенным правилам и за один запуск создаёт отдельные файлы вместе со сводным отчётом. Всё, что не удалось обработать по основному сценарию, сохраняется в файле исключений. После завершения сотрудник проверяет исключения и выборочно просматривает готовые документы. Сценарий работает локально в Windows и macOS.
Результат
Бухгалтерия получает из общего Excel-файла комплект документов по сотрудникам и сводный отчёт. Строки распределяются по одним и тем же программным правилам. Неоднозначные записи не теряются среди остальных: они сохраняются отдельно, чтобы бухгалтер мог их проверить вместе с итоговыми данными.
Ограничения и зависимости
Результат зависит от структуры и качества исходного Excel-файла и от актуальности правил распределения. Если изменятся колонки или формат данных, скрипт может потребовать доработки. Файл исключений и готовые документы нужно проверять перед использованием. Скрипт преобразует таблицы, но не подтверждает правильность исходных расчётов.