LibXL: как заставить формулы пересчитываться при открытии файла MS Excel? - PullRequest
0 голосов
/ 29 октября 2019

В файле MS Excel пользователь установил, что формулы пересчитываются вручную. Я хотел бы принудительно выполнить автоматический пересчет с LibXL, после того, как я записал данные в файл. Возможно ли это как-то?

Я искал документацию и не смог найти ничего связанного. LibreOffice автоматически пересчитывает формулы после открытия файла, созданного с помощью LibXL, но Microsoft Office этого не делает.

Нет смысла показывать мой код. Либо у LibXL есть флаг / способ сделать это, либо нет.

После того, как я закончу с созданием файла в LibXL и открою файл в MS Office, я ожидаю, что формулы будут выполнены автоматически.

Примечание: я использую PHP

1 Ответ

0 голосов
/ 06 ноября 2019

Если пользователь открывает файл в первый раз и на компьютере пользователя не открываются окна, режим расчета по умолчанию установлен на «Авто» в MS Excel. Но до открытия вашей книги, если пользователь каким-то образом активировал режим ручного расчета на других своих книгах, ваш файл будет открыт и в ручном режиме.

Я не уверен, как PHP участвует в этом. Но для принудительного автоматического вычисления вы можете добавить в свой файл простой макрос события открытия.

Sub Workbook_Open()
 Calculate
End Sub

Скопируйте это в объект рабочей книги в окне Visual Basic. Этот макрос будет выполняться каждый раз, когда файл открывается.

Надеюсь, это поможет

...