【发布时间】:2014-01-27 12:49:05
【问题描述】:
在我的项目中,我生成了一个 CSV 文件供用户下载。在其中一列中有可以从 0 开始的值。 但是,当用户下载文件并打开它时,零就会消失。
【问题讨论】:
-
看看PHPExcel类!易于用于生成 csv 或 excel 文件。 phpexcel.codeplex.com
-
您是否尝试过将单元格值放入引号内?
在我的项目中,我生成了一个 CSV 文件供用户下载。在其中一列中有可以从 0 开始的值。 但是,当用户下载文件并打开它时,零就会消失。
【问题讨论】:
如果写入正确,csv 文件可能会保存带有前导零的值(通过在文本编辑器中打开它很容易检查);但 MS Excel(或 Gnumeric 或 Open/Libre Office)在导入 CSV 文件时始终将数字格式化为标准化格式,因此无法在 CSV 格式文件中存储前导零等掩码细节。
一种选择是将格式化的数字用引号括起来,以便将它们视为字符串,例如
"001234.56"
但如果您希望在电子表格程序中打开格式一致,您确实需要使用原生格式,例如 BIFF、OfficeOpenXML 或 OASIS
【讨论】:
您需要将输出“定义”为字符串而不是数字。
我假设你现在有类似的东西:
field1,01245254,field3
结果:
field1 | 1245254 | field3
如果您将 csv 格式化为:
"field1","01245254","field3"
这会导致:
field1 | 01245254 | field3
【讨论】:
例如,原始文件中的零是否已消失。 excel 删除了前导零,但它们仍在原始文件中。
【讨论】: