【发布时间】:2015-04-20 21:48:02
【问题描述】:
我有一个简单的脚本,可以将数据库中的数据输出到 CSV 文件。
我的问题是,当我导出手机号码时,excel 将它们视为长整数并以科学计数法显示。
如果我去格式化单元格并将其更改为数字,它们都显示正常。
有没有办法将列设置为整数而不在excel中更改它。
这是我的代码:
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('Book Reference','Company','Type','Site Name', 'Date', 'Time', 'Name', 'Email', 'Mobile', 'Team ID'));
下面是我的 while 循环中的代码
// THIS IS WHERE I SET VARIABLES
fputcsv($output, array($booking_reference,$company,$type,$site_name,$date,$time,$name,$email,$mobile,$team_id));
【问题讨论】:
-
不能用 CSV 做很多事情,因为 csv 绝对无法指示字段的格式。如果您希望将“大”数字视为文本,您可能应该考虑使用 excel 库生成本机 .xls 文件,您可以在其中强制将大数字视为文本。
-
将文件导入 excel,然后您可以从那里定义字段属性。问题更多在于 excel 如何默认 CSV 导入。
-
我喜欢 PHPExcel 生成带有格式化单元格的 xls 文件。这个 SO 线程有更多建议:stackoverflow.com/questions/3133357/…