在php中格式化csv(excel)单元格

时间:2014-12-22 13:19:48

标签: php excel csv format

有没有办法用PHP格式化csv文件的单元格?例如,我有一个csv文件,我需要在导出之前格式化其单元格的大小。另一件事是,对于具有多个数字的数字,excel以其他格式显示它之前我dobule点击它我想要摆脱这也是。

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=export.csv');

我知道我必须展示我已经尝试过的东西,但我找不到任何关于此的信息,所以我无处可去......

编辑:该文件是csv,但我将其用作excel文件,excel单元格是需要格式化的文件

3 个答案:

答案 0 :(得分:1)

CSV格式只包含原始值;无法存储格式或数据类型信息。这就是为什么大多数(如果不是全部)电子表格应用程序允许用户在导入CSV文件时手动设置列类型的原因。

如果你想让你的用户省去这样做的麻烦,你最好的选择是生成xls / xlsx而不是CSV。 PHPExcel是一个用于生成Excel文件的流行PHP库,您可能需要尝试一下。

答案 1 :(得分:1)

自从接受的答案写于2014年以来,PHPExcel库已被放弃。它的最新版本1.8.1于2015年发布。它于2017年正式弃用,permanently archived于2019年正式弃用。它的直接后继版本是PhpSpreadsheet

答案 2 :(得分:0)

PHP可以使用str_getcsvhttp://php.net/str_getcsv)将CSV字符串解析为数组。从那里开始只需要编辑数组的值。

对于更高级的功能,CSV格式本身并不支持它们,因为它是纯文本格式,PHP和CSV文件都不能决定Excel应该如何解析文件。

我已成功导出Excel XML文件(旧的纯文本XML文件;而不是新的,压缩的文件),如果数据显示对您来说很重要,那么这可能是最佳选择。