Формула Perl Excel::Writer::XLSX не рассчитывается при открытии книги

Я пишу формулу в xlsx, используя Excel::Writer::XLSX.

Когда я открываю книгу в Excel, в ячейке с формулой стоит 0.

Для параметров расчета в Excel установлено значение «Автоматически». Нажатие на кнопку «Рассчитать сейчас» или нажатие F9 ничего не делает.

Нажатие CTRL+Alt+F9 работает.

Есть ли способ убедиться, что формула вычисляется при открытии книги?

РЕДАКТИРОВАТЬ: Пример содержимого ячейки "=A3+A4".


person Ian    schedule 02.08.2012    source источник
comment
Это определяемая пользователем функция?   -  person Siddharth Rout    schedule 02.08.2012
comment
Это простой расчет =A3+A4. Рабочая книга открывается нормально, но в ячейке, содержащей функцию/вычисление, отображается 0. Если я щелкну ячейку, в строке формул отобразится = A3 + A4. Если я щелкну в строке формул, а затем нажму Enter, вычисление будет выполнено. Расчет также выполняется, когда я нажимаю Ctrl+Alt+F9.   -  person Ian    schedule 02.08.2012
comment
Как вы назначили эту функцию?   -  person simbabque    schedule 02.08.2012


Ответы (2)


В ранних версиях Excel 2007 существовала проблема, которая таким образом затрагивала файлы Excel::Writer::XLSX.

Применение последних пакетов обновления Excel или Office должно исправить это.

Если нет, дайте мне знать.

person jmcnamara    schedule 02.08.2012
comment
Спасибо, Джон. Я использую версию 12.0.6554.5001 MSO.DLL, которая, кажется, находится где-то между версиями SP2 и SP3 MS 2007. Я попытаюсь открыть файл с более поздней версией, если смогу найти ее, и опубликую. - person Ian; 03.08.2012

Excel::Writer::XLSX имеет метод $worksheet->write_formula, который можно использовать в качестве обходного пути. В нем есть поле значения для хранения результата формулы, если у вас есть версия Excel, на которую влияет приведенный выше ответ Джона.

person Ian    schedule 03.08.2012