Я работаю над экспортом в 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
, число отображается так, как я хочу,но поскольку он печатается в виде строки, его нельзя использовать для дальнейших вычислений.
Можно ли вообще всегда отображать десятичное число после экспорта?