Каким образом запустить и провести калькуляции с файлом excel, не открывая excel?
Всем добрый день!
Задача звучит следующим образом: Создать программу, которая будет запрашивать у пользователя некие 3 параметра, далее вставлять их в excel и получать на выходе результат калькуляции excel
Почему задача именно такая: Есть некий калькулятор, который реализован в excel работает 10 лет, калькуляции сложные, расписаны на 15 страниц, который точно работает и проверен некими инженерами 100500 раз, сейчас компания хочет реализовать более презентабельный вид ввода параметров, и автоматизировать создание отчета (некий текстовый файл)
Есть два варианта:
-Первый мне понятный - переписать его целиком, убив на это огромное количество времени как своего, так и людей которые его разрабатывали
-Второй вариант - Неким образом обернуть работу excel в свою программу(пока без выбора платформы, просто хочу узнать возможно ли это), написать модуль(1) ввода параметров и выполнения программы excel и модуль(2) формирование документа. Если говорить про это вариант - я вижу сплошные преимущества: не нужно переписывать сам калькулятор, простые изменения работы калькулятора.
Хотелось бы узнать вообще реализуемо ли это, применима ли такая практика и если да, то может есть ресурсы с реализацией данной задачи?
Я что-то не понимаю проблемы. Что мешает открыть файл Excel в скрытом виде, и спокойно менять исходные ячейки да считывать итоговые? Вроде объектная модель Экселя не секретна...
Изнасилование трупа стюардессы стоя в гамаке.
Есть только один вариант - разобрать этот расчет, надроченный инженеграми в Ёкселе, переписать его на нормальном языке, выкинуть этот 100500 раз устаревший копролит и забыть про него навсегда.
15 страниц Ёкселя - это не "сложные", это "запутанные". Вангую, что при переписывании еще найдутся косяки, которые 10 лет никто не замечал, веруя в этот неприкосновенный файл.
Формулы в Excel это всегда лютый ад, в котором хрен разберёшься.
Алгоритм надо описать текстом или вразумительным кодом с комментариями. Чтобы будущие поколения могли его переписать на любой удобный язык, а не страдали вот этим антипаттерном во веки веков.
Это будет очень "тормозной" вариант. Особенно если запрос пришлют одновременно большое число пользователей. Но если время вычисления не играет роли, то решение Вам уже подсказали.
Загрузить этот Excel в Google Sheets, и если калькуляции там заработают (ну вдруг?), но написать нехитрый Apps Script, который будет отдавать веб-фронт с формой, и обрабатывать запросы с него. Делал такое + телеграм бот для домовой базы автомобильных номеров. Всё в рамках GAS.
Т.ч. слабое звено тут — не потеряется ли калькуляционная способность при импорте?
Сергей Соколов, слабое звено тут - в этом коде вообще никто больше разобраться не сможет.
Пока живы авторы Ёксель-портянки - есть шанс спасти расчет малой кровью, не занимаясь криптоархеологией.
Использовать COM (в питоне это пакет comtypes, в других языках есть свои средства) чтобы обращаться к средствам автоматизации Excel. По сути, это то же самое апи, которое доступно через макросы или скрипты Visual Basic. Но это будет требовать установленного на машине Excel для работы. Так что это скорее костыль, чем решение.
Freeman, ну скажем так, это осложнит развёртывание проги на других машинах. Если прога нужна на трёх с половиной рабочих местах внутри организации, то да, особых проблем не будет.
python + pandas могут реализовать в принципе любые хотелки связанные с excel , а если добавить туда еще какую то графическую либу, то и с удобным вводом данных.
Vindicar, вроде есть либы, которые могут транслировать екселевские формулы в питон - PyCel, xcalculator и другие. Правда неизвестно, сможет ли запуститься данный конкретный калькулятор - надо пробовать.
На delphi7 когда-то делал подобную обертку. Смысл в том, что можно программно открывать xls, а пользователю будет видно только твою программу обертку .