Я использую библиотеку PHPExcel: https://github.com/PHPOffice/PHPExcelPHPExcel с операторами
Я whant установить формулу для ячейки С1:
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 5)
->setCellValue('B1', 6)
->setCellValue('C1', "=SUM(A1,B1)");
Это работает отлично.
После того, как я изменить формулу на тот, который имеет + или - операторы, например:
->setCellValue('C1', "=A1-B1");
вместо
->setCellValue('C1', "=SUM(A1,B1)");
Я получаю следующее сообщение об ошибке:
Illegal string offset 'value' в \ phpexcel \ PHPExcel \ Calculation.php в строке 2976
, а затем
Массив для преобразования строки в \ PHPExcel \ PHPExcel \ Calculation.php на линии 3010
Глядя на код Calculation.php - Я считаю, что это сокращает ссылки A1 и B1 - A и B.
Любая идея, как исправить это? Спасибо!
Remark1: Похоже, это не имеет значения, но я предпочитаю, чтобы сказать, что я быть_наст испанские версии Excel, установленные на компьютере.
Замечание2: В примерах, которые я нашел на PHPExcel GitHub, все формулы не имеют операторов, используются только функции.
Невозможно повторить: Я только что протестировал против версии 1.7.0 до 1.7.9, используя ваш пример. Является ли ваша формула действительно такой простой? Можете ли вы определить, где вычислительный механизм сокращает эти значения от A1 и B1 до A и B? –
05FeatureDemo содержит ряд формул с использованием операторов, включая '= E11 + E12', а также' = E11 * 0.21' и более сложные формулы с операторами, такими как '= IF (D6 <>" ", C6 * D6," ") ' –
Какую версию PHPExcel вы используете? строка 2976 Calculation.php в версии 1.79 должен быть доступен только в том случае, если вы указали диапазон ячеек (например, 'A1: B1'), но не имеете никакого доступа к' value' каким-либо образом (хотя строка 2974 делает) –