Язык программирования для работы с Excel?

Здравствуйте! Есть необходимость программирования рутинной работы в Excel. Сам любитель, раньше пробовал писать в VBA. Решил создать сайт (для друзей) и обрабатывать Excel файлы. Есть ли VBA запускается внутри файла Excel, то встал вопрос о внешнем обработчики / редакторе файла.
Искал в сети и сделал выбор на Python - библиотека - Openpyxl.
Пользуюсь 3 дня и пока что по ощущениям библиотека ужасна, не подточена под excel. Гемор в том что постоянно ошибки типов данных (кортеж кортежей, тип итерации не подлежит и тд.). Даже сложность в указании заранее неизвестных диапазонов.
Мои задачи в основном в создании бухгалтерских алгоритмов, выборка данных, раскидывание в определенные ячейки, арифметические действия и т.д.

На что можно заменить openpyxl? Думал о Pandas, но он вроде для анализа в основном, подходит ли он для моих задач и проще ли им пользоваться?
Я понимаю что плохому танцору.......... Но какое есть оптимальное решения для прогера любителя?
  • Вопрос задан
  • 1959 просмотров
Пригласить эксперта
Ответы на вопрос 10
самое лучшее = отказаться от Excel
Ответ написан
sim3x
@sim3x
Если ексель, тот формат с которого все начинается и заканчивается требуется раскрашивание листа, формулы и тд и тп, то альтернативы VBA - нет. Можно попробовать шарп, но он также потребует включенного екселя.

Если в екселе только данные, то практически любой ЯП нормально делает импорт и експорт csv
Ответ написан
@CH1979
Я использовал связку XlsxWriter + Pandas. Вполне рабочее решение. Но, увы только для xlsx. Поддержки xls - нет.
Ответ написан
saboteur_kiev
@saboteur_kiev
build engineer
Формат excel проприетарный.

Существующие библиотеки созданы в основном для красивого экспорта данных в эксель, а не полноценную работу с этим форматом.

Поэтому действительно нужно уходить от того, чтобы писать в эксель формулы. Делайте все расчеты в вашем софте, а в эксель делайте экспорт только статических данных для печати или просмотра юзером. Без интерактивности. Максимум - простые фильтры.
Ответ написан
@OlegPyatakov
В качестве альтернативы можно рассмотреть вызов VBA макросов из внешних к обрабатываемому файлу источников:
  • Любая запущенная программа из MS Office. Например, у меня есть опыт создания внутрикорпоративного сервиса на Outlook. Т.е. можно использовать почту как внутренний интерфейс.
  • Вызывать VBA макросы из Command Line/Powershell. Такой вариант позволяет на Windows связать web-бэкенд на Python с бизнес-логикой на VBA.
Ответ написан
@v_m_smith
лучше бы я пил и курил
Попробуйте бесплатный плагин PowerQuery. В нем функциональный язык M из PowerBI, куда более мощный, чем VBA
Ответ написан
@prosto_mimo_prohodil
Java + Apache POI. Я работал на такой связке с excel таблицами. По ощущениям очень удобно, библиотека понятная.
Ответ написан
Мне кажется тут с экселем смешивается мягкое и теплое. Если вам надо "обертку" для работы с эксель, то это один вариант (тут можно долго искать и выбирать, что позволит решать те или иные задачи и какие есть мануалы). Если же вам главное получить доступ к объектной модели, то тут все равно, какая библиотека и что она может, лишь бы создавался объект (в том числе и приложение эксель), а методы и функции - полный набор от майкрософт ("через точку", можно даже подсмотреть в офисном VBE) с описанием "от производителя".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы