Таблица PHPS не отображает десятичные числа, несмотря на использование форматирования - PullRequest
0 голосов
/ 31 октября 2019

Я работаю над экспортом в Excel, где каждая строка должна иметь процентное значение, округленное до одного десятичного знака. После экспорта электронной таблицы пользователи должны иметь возможность использовать эти значения для расчетов внутри электронной таблицы, поэтому я не могу просто отформатировать их как строки (или проценты, Excel по каким-то причинам не любит вычисления с использованием процентов). Я пробовал несколько разных вещей, но ни одна из них не работает:

$sheet->getCell($coord)->setValueExplicit(
    $amount['percentage'],
    DataType::TYPE_NUMERIC
);

, в которой $coord - необходимая ячейка (например, 'A1'), а $amount['percentage'] - как float, как * 1007. *.

Еще одна вещь, которую я попробовал (и получил прямо из документации PHPSpreadsheet);

$sheet->setCellValue($coord, $amount['percentage']);
$sheet->getStyle($coord)
    ->getNumberFormat()
    ->setFormatCode(NumberFormat::FORMAT_NUMBER_00);

В обоих случаях число добавляется как целое число без десятичных разрядов (поэтому 45 вместо 45.2), десятичное число отображается только при нажатии кнопки «Увеличить десятичное число» в Excel.

Если я изменяю DataType::TYPE_NUMERIC на DataType::TYPE_STRING, число отображается так, как я хочу,но поскольку он печатается в виде строки, его нельзя использовать для дальнейших вычислений.

Можно ли вообще всегда отображать десятичное число после экспорта?

1 Ответ

0 голосов
/ 31 октября 2019

Попробуй так?

$sheet->getStyle($coord)
    ->getNumberFormat()
    ->setFormatCode('0.000000');

Excel поддерживает максимум 15 значащих цифр

...