Причина :
Для обновления каждого результата формулы в существующий файл Excell.
Почему :
Комуиметь возможность извлекать самую актуальную информацию из файла Excell, так как в противном случае программа отображает только результат, который был сохранен вручную в последний раз, когда был открыт файл Excell.
Цель :
Пожалуйста, кто-нибудь может привести пример того, как выполнить это действие:
Open
-> Save
-> Close
Позволяет назвать этот Excell File: Test.xlsm
Решение :
В конце я нашел удивительное решение для моей проблемы. Вероятно, лучше, чем Apache, так как в моем xlsm-файле было много пользовательских формул , что приводило к любым попыткам оценки формул с помощью Apache для создания ошибок и сбоев.
Я создал сценарий VBS, написанный в файле .vbs.
Set x_Application = CreateObject("Excel.Application")
Set x_Open_application = x_application.Workbooks.Open("C:\User\Documents\Project\Test.xlsm")
x_application.Calculate
x_Open_application.Save
x_Open_application.Close False
Этот скрипт будет открыт / выполнен в любое время, прежде чем я начну извлекать информацию из моего файла xlsm. Это гарантирует, что результаты всех формул в xlsm будут актуальными .
Мои функции Java открывают / запускают файл VBS Script перед извлечением информации:
Desktop.getDesktop().open(new File("./" + VBS_File_Name + ".vbs")); //Run VBS File
Преимущества этого метода:
* Формулы файла Excel, обновленные / обновленные с помощью этого метода, не будут видны пользователю - работа выполняется в фоновом режиме.
* Работает на 100% без Apache.
* Простота реализации.