PHPExcel писатель #NAME? формулы разбора ошибок - PullRequest
0 голосов
/ 06 марта 2020

Я генерирую файл Excel с помощью PHPExcel и каким-то образом формулы разрешают #NAME? ошибка на листе Excel. Когда я выбираю ячейку с формулой, формула отображается на панели формул, и если я делаю правку, например, добавляю произвольное пространство, затем удаляю ее, формула вычисляется правильно. Я пытался использовать setCellValueExplicit с PHPExcel_Cell_DataType:: TYPE_FORMULA в том же случае. В формулах нет ошибки, которая может привести к #NAME? ошибка. Использование setCellValue также приводит к той же проблеме.

  • Я знаю, что PHPExcel был снят с производства, но выполнить полную миграцию нашей базы кода Excel непродуктивно.
  • Я тестировал похожую Ситуация в таблице PHPS с теми же результатами.

Редактировать:

Я приведу минимальную версию формулы, которая дает такую ​​же ошибку.

Код для записи в ячейку:

$objPHPExcel->getActiveSheet()->setCellValue('A8', "=SUM(worksheet!F3:worksheet!G5)");

Ожидаемые результаты: значение типа 100 или 1000

Фактический результат: #NAME?, когда я выбираю ячейку фактической формула фактически отображается на панели формул, добавление произвольного пробела и удаление ее устраняет ошибку.

1 Ответ

0 голосов
/ 06 марта 2020

Вы, кажется, ссылаетесь на ячейки неправильно. Правильный синтаксис:

$objPHPExcel->getActiveSheet()->setCellValue('A8', "=SUM('worksheet'!F3:'worksheet'!G5)");

(обратите внимание, я использую ! вместо .). Одиночные кавычки вокруг worksheet не являются строго говоря необходимыми, но их использование является хорошей привычкой, когда вы называете неловко рабочие листы.

Кроме того, уверены ли вы, что ваш рабочий лист на самом деле называется «рабочим листом»? Вы можете получить список имен со следующим фрагментом:

print_r($objPHPExcel->getSheetNames());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...