Как вычислить формулу CSE с помощью PhpSpreadsheet?

#excel #excel-formula #phpspreadsheet

#excel #excel-формула #phpspreadsheet

Вопрос:

Я использую PhpSpreadsheet (1.15.0) для создания документа XLSX с формулами. Одной из этих формул является формула Ctrl Shift Enter (CSE).

При создании документа и последующем его открытии вычисляются простые формулы (например, ‘= SUM (A1: A2)’). Пользователям нечего делать с формулами, им просто нужно заполнить ячейки.

Однако я не знаю, как заставить мою формулу CSE оцениваться при открытии. Прямо сейчас формула действительна и правильно переведена с именами локализованных функций, но пользователям все равно приходится оценивать ее вручную, перейдя в ячейку, затем в строку формул и, наконец, нажав Ctrl Shift Enter.

Нет ли какого-либо способа сообщить Excel через PhpSpreadsheet, чтобы он оценивал эту формулу при открытии?

Например, вот моя формула CSE: =SUM(--(FREQUENCY(IF(E14:E25="CREDIT_CARD",MATCH(F14:F25,F14:F25,0)),ROW(F14:F25)-ROW(F14) 1)>0))

Ответ №1:

Кажется, PhpSpreadsheet не может этого сделать прямо сейчас, я не знаю почему. В этом должны быть некоторые сложности.

Но я нашел запрос на извлечение, который соответствует моим потребностям, путем обработки формул массива: https://github.com/PHPOffice/PhpSpreadsheet/pull/1591