PhpSpreadsheet #ЗНАЧ! в формуле =SUMPRODUCT(E8:E15,F8:F15)

236
12 октября 2017, 12:56

Добрый день!

В ячейках E8:E15 и F8:F15 записаны числа. При записи формулы =SUMPRODUCT(E8:E15,F8:F15) в ячейку C4 с помощью PhpSpreadsheet, в Microsoft Excel 2010 появляется ошибка #ЗНАЧ!. Если нажать в выпадающем меню на пункт "Изменить в строке формул" и просто нажать Enter, то ошибка исчезает, и на ее месте появляется верное значение. В LibreOffice и OpenOffice все работает нормально.

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("tmpl.xls");
$worksheet = $spreadsheet->getActiveSheet();
for($i = 8; $i < 16; $i++) {
    $worksheet->getCell('F'.$i)->setValue(1);
    $worksheet->getCell('E'.$i)->setValue(2);
}
$worksheet->getCell("C4")->setValue('=SUMPRODUCT(E8:E15,F8:F15)');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="file.xls"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save('php://output');

Также все верно работает, если записываю в формат xlsx или записываю в формулу не диапазоны, а отдельные ячейки.

Может кто-нибудь знает, как это исправить?

UPD.

Попробовал добавить значение

$val = $worksheet->getCell("C4")->getCalculatedValue();
$worksheet->getCell("C4")->setCalculatedValue($val);
$worksheet->getCell("D4")->setValue($val);

В соседней ячейке D4 записывается верное значение, а в C4 все равно выводится ошибка.

READ ALSO
Подсчет кол-ва дней и форматирование результата между двумя датами

Подсчет кол-ва дней и форматирование результата между двумя датами

Я работаю над реализацией графика продажУ меня есть ось Х

289
Проверка наличия таблицы в БД

Проверка наличия таблицы в БД

Итак, я от пользователя получаю название таблицы, из которой он хочет получить данные, и я должен проверить наличие этой таблицыКак я понял,...

552
MVC или Фреймворк?

MVC или Фреймворк?

Есть шаблон MVC на с которым я разобрался и могу делать простенькие задачки используя MVCНо проблема в роутере, он так прописан, что не запускается...

228
Ошибка: Parse error: syntax error, unexpected &#39;)&#39; in /home/user167/devildrop.ru/html/epicdrop/connector.php on line 7 [требует правки]

Ошибка: Parse error: syntax error, unexpected ')' in /home/user167/devildrop.ru/html/epicdrop/connector.php on line 7 [требует правки]

Выдает ошибку: Parse error: syntax error, unexpected ')' in /home/user167/devildropru/html/epicdrop/connector

231