我使用phpExcel将xls文件转换为csv的函数正在将日期字段中的值更改为raw。我该如何避免这种情况发生?
功能如下
function convertXLStoCSV($infile,$outfile)
{
$fileType = PHPExcel_IOFactory::identify($infile);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($infile);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->save($outfile);
}
xls文件中的日期格式为:16.01.2017 00:00:00
输出csv文件的日期格式为:42751.0104166667
我试图更改文件/Classes/PHPExcel/Style/NumberFormat.php
self::$_builtInFormats[22] = 'm/d/yy h:mm';
changed to
self::$_builtInFormats[22] = 'mm.dd.yyyy hh:mm:ss';
但这不是魔术
答案 0 :(得分:1)
你的问题是
$objReader->setReadDataOnly(true);
明确告诉PHPExcel将单元格数据作为原始数据读取,没有任何样式信息(例如数字格式屏蔽)。
只需注释掉该行