PHPSReadSheet不显示十进制数字,尽管使用了格式

PHPSReadSheet不显示十进制数字,尽管使用了格式,php,excel,symfony,phpspreadsheet,Php,Excel,Symfony,Phpspreadsheet,我正在处理Excel导出,其中每一行都需要有一个百分比值,四舍五入到小数点后一位。导出电子表格后,用户需要能够在电子表格中使用这些值进行计算,因此我不能简单地将它们格式化为字符串(或百分比,Excel不喜欢使用百分比进行计算)。我试过几种不同的方法,但都不管用 $sheet->getCell($coord)->setValueExplicit( $amount['percentage'], DataType::TYPE_NUMERIC ); 其中,$coord是必需

我正在处理Excel导出,其中每一行都需要有一个百分比值,四舍五入到小数点后一位。导出电子表格后,用户需要能够在电子表格中使用这些值进行计算,因此我不能简单地将它们格式化为字符串(或百分比,Excel不喜欢使用百分比进行计算)。我试过几种不同的方法,但都不管用

$sheet->getCell($coord)->setValueExplicit(
    $amount['percentage'],
    DataType::TYPE_NUMERIC
);
其中,
$coord
是必需的单元格(例如,
'A1'
),而
$amount['percentage']
是一个类似于
45.2
的浮点数

另一件我尝试过的事情(直接从PHPSpreadsheet文档中获得)

在这两种情况下,数字都是作为一个不带小数点的整数添加的(因此
45
而不是
45.2
),只有在单击excel中的“增加小数点”按钮时才会显示小数点

如果我将
DataType::TYPE_NUMERIC
更改为
DataType::TYPE_STRING
则数字将按我想要的方式显示,但由于它打印为字符串,因此无法用于进一步的计算

导出后是否可以始终显示十进制数?

尝试这样做

$sheet->getStyle($coord)
    ->getNumberFormat()
    ->setFormatCode('0.000000');
像这样试试

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

NumberFormat::FORMAT\u NUMBER\u 00
的值是
'0.00'
,与您建议的值几乎相同,但遗憾的是,它不起作用。嗯。。。我认为您最好使用
格式\u数字\u 00
即使excel仅显示有效数字,您也可以设置整个列的格式,并更改数字格式以显示足够的小数。这里有一些信息。您可以通过谷歌搜索找到一种在excel中显示默认小数位数的方法。
NumberFormat::FORMAT\u number\u 00
的值是
'0.00'
,与您建议的值几乎相同,但遗憾的是不起作用。嗯。。。我认为您最好使用
格式\u数字\u 00
即使excel仅显示有效数字,您也可以设置整个列的格式,并更改数字格式以显示足够的小数。这里有一些信息。您可以通过谷歌搜索找到一种在excel中显示默认小数位数的方法。