phpExcel xls 到 csv 的转换正在将日期更改为原始日期
phpExcel xls to csv conversion is changing the date to raw
我使用 phpExcel 将 xls 文件转换为 csv 的函数正在将日期字段中的值更改为原始值。我该如何避免这种情况发生?
函数如下
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';
但这并没有起到什么作用
你的问题是
$objReader->setReadDataOnly(true);
它明确告诉 PHPExcel 将单元格数据作为原始数据读取,没有任何样式信息(例如数字格式屏蔽)。
只需注释掉该行
我使用 phpExcel 将 xls 文件转换为 csv 的函数正在将日期字段中的值更改为原始值。我该如何避免这种情况发生?
函数如下
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';
但这并没有起到什么作用
你的问题是
$objReader->setReadDataOnly(true);
它明确告诉 PHPExcel 将单元格数据作为原始数据读取,没有任何样式信息(例如数字格式屏蔽)。
只需注释掉该行