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

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

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

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

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

Поэтому действительно нужно уходить от того, чтобы писать в эксель формулы. Делайте все расчеты в вашем софте, а в эксель делайте экспорт только статических данных для печати или просмотра юзером. Без интерактивности. Максимум - простые фильтры.
Ответ написан
@OlegPyatakov
IT-энтузиаст
В качестве альтернативы можно рассмотреть вызов 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) с описанием "от производителя".
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 140 000 до 190 000 руб.
Cashwagon Москва
от 150 000 руб.
от 60 000 до 150 000 руб.
23 мая 2019, в 18:18
600 руб./в час
23 мая 2019, в 18:11
800 руб./в час
23 мая 2019, в 16:17
500 руб./в час