PHPExcel Formula не работает на производстве, но работает локально - PullRequest
0 голосов
/ 12 января 2019

Я использую Laravel 5.4 и PHPExcel 1.8.1.

В своем коде я добавил следующую формулу для расчета НДС для этой строки:

    $vatPercent = $invoiceManager->getVatPercent($iData);
    $worksheet->setCellValueByColumnAndRow(22, $row, sprintf('=V%d*%f', $row, ($vatPercent / 100)));

$vatPercent = целое число, например 20, например.

это приводит к этой формуле Excel локально:

=V7*0,19

Но когда я развернул и хочу экспортировать тот же Excel (те же данные в реальном времени и локально), я получаю следующую ошибку:

PHPExcel_Calculation_Exception: Verkäufe! W7 -> Ошибка формулы: Неожиданно, в /var/app/current/vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell.php:291

Мое первое предположение было, что это связано с языковой версией

4.6.4. Запишите формулу в ячейку

Внутри файла Excel формулы всегда сохраняются так, как они выглядят в английской версии Microsoft Office Excel и PHPExcel обрабатывает все формулы внутренне в этом формате. Это означает, что следующее правила соблюдены:

• Десятичный разделитель - «.» (Период) * 1 025 *

• Разделителем аргумента функции является ',' (запятая)

• Матричный разделитель строк - это ';' (Точка с запятой)

• Должны использоваться английские названия функций

Это не зависит от языковой версии Microsoft Office Excel. возможно, использовался для создания файла Excel.

Поэтому я безуспешно попробовал следующее:

$vat = $invoiceManager->getVatPercent($iData);
$vatPercent = number_format(((float) $commissionVat) / 100, 2, '.', '');

$worksheet->setCellValueByColumnAndRow(22, $row, sprintf('=V%d*%f', $row, $vatPercent));

У кого-нибудь есть идеи, в чем еще может быть проблема?

спасибо, Майкл

...