phpExcel xls到csv转换正在将日期更改为原始

时间:2017-01-27 14:57:02

标签: php phpexcel

我使用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';

但这不是魔术

1 个答案:

答案 0 :(得分:1)

你的问题是

$objReader->setReadDataOnly(true);  

明确告诉PHPExcel将单元格数据作为原始数据读取,没有任何样式信息(例如数字格式屏蔽)。

只需注释掉该行