在我的项目中,我使用以下代码来格式化数字
$row[$k] = number_format($number, 2, '.', ',');
当我导出 xlsx 文件时,它工作正常,我得到的数据如下
2,607,697.14
但是问题出在 csv 中。当我导出 csv 文件时,我得到的数据如下
2607697.14
如果我使用下面的代码
$row[$k] = '"' . number_format($number, 2, '.', ',') . '"';
对于 csv 和 xlsx,我得到
“2,607,697.14”
我不明白为什么我没有得到 csv 中带逗号的值?我怎样才能得到我想要的值? csv 文件中的数据显示:
总销售额 总金额 总佣金
234 2607697.14 148693.56
xlsx中的数据显示:
总销售额 总金额 总佣金
234 2,607,697.14 148,693.56
CSV和XLS文件格式之间的区别在于,CSV格式是纯文本格式,其中值以逗号分隔,而XLS文件格式是Excel Sheets二进制文件格式,其中保存有关所有工作表的信息在一个文件中。 因此,在 CSV 文件中,您将获得纯文本字符串形式的数值,但在 XLS 文件中,相同的值显示为格式化数字。
在XLS中,您可以导出图像、链接、符号、图表,但不能在CSV中导出。
$objWriter->setDelimiter(','); $objWriter->setEnclosure('');
请评论并尝试。