PHP值日期xlsx到csv

时间:2015-04-13 20:24:04

标签: php date csv phpexcel xlsx

我有一个XLSX文件,其中一些单元格的日期值如下:13/04/2015当我将XLSX转换为CSV时,我的CSV中的日期值变为其值:42107

我需要两个文件中的值相同,如XLSX(2015年4月13日)

这是我的转换脚本

include ('./PHPExcel/Classes/PHPExcel.php');
$TypeFile="Excel2007";
$FilePath= "./assets/uploads/files/prf.xlsx";
$objReader = PHPExcel_IOFactory::createReader($TypeFile);
$objReader->setReadDataOnly(true);   
$objExcel = $objReader->load($FilePath);
$objCSV = PHPExcel_IOFactory::createWriter($objExcel, 'CSV');
$objCSV->setPreCalculateFormulas(false);
$objCSV->setDelimiter(','); 
$objCSV->setEnclosure('"');    
$objCSV->save('./assets/uploads/files/prf.csv');

1 个答案:

答案 0 :(得分:2)

是的,它会

MS Excel中的日期是一个数字值,如42107,表示自1900年1月1日以来的天数,并且唯一告诉MS Excel(或PHPExcel)应将其视为日期的是数字格式应用于该单元格的蒙版。

使用时

$objReader->setReadDataOnly(true); 

您告诉PHPExcel从单元格中读取原始数据值,并忽略单元格的任何数字格式掩码(或实际上任何样式),这样您就可以获得。< / p>

如果您希望PHPExcel将值视为日期,请不要使用$objReader->setReadDataOnly(true);