php - PHPSpreadsheet 不显示十进制数字,尽管使用了格式
问题描述
我正在处理 Excel 导出,其中每一行都需要有一个百分比值,四舍五入到小数点后一位。导出电子表格后,用户需要能够在电子表格中使用这些值进行计算,因此我不能简单地将它们格式化为字符串(或百分比,Excel 出于某种原因不喜欢使用百分比进行计算)。我尝试了一些不同的方法,但没有一个有效;
$sheet->getCell($coord)->setValueExplicit(
$amount['percentage'],
DataType::TYPE_NUMERIC
);
其中$coord
是所需的单元格(例如'A1'
),并且$amount['percentage']
是像45.2
.
我尝试过的另一件事(直接来自 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
我想要的方式显示,但由于它被打印为字符串,它不能用于进一步计算。
导出后是否可以始终显示十进制数?
解决方案
推荐阅读
- c# - 如何在 Xamarin 中制作自定义库并导入到单独的应用程序?
- reactjs - 我如何降级博览会版本?
- typo3-9.x - 如何迁移扩展以使用 TYPO3 10.x
- javascript - 为什么我在 javascript 中的 reduce() 函数不起作用?
- java - 如何查看和编辑我的 Android 应用程序创建和使用的文件?
- c# - 如何将二进制 XML 数据从 Postgresql 字段转换为 C#
- php - 构建复杂字符串的最佳方法
- r - 有没有办法查看 geom_smooth 统计细节?
- android-studio - 在项目目录中找不到“Podfile”
- terraform - terraform 计划错误:不支持的参数:此处不应使用名为“point_in_time_recovery_enabled”的参数