我有一个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');
答案 0 :(得分:2)
是的,它会
MS Excel中的日期是一个数字值,如42107,表示自1900年1月1日以来的天数,并且唯一告诉MS Excel(或PHPExcel)应将其视为日期的是数字格式应用于该单元格的蒙版。
使用时
$objReader->setReadDataOnly(true);
您告诉PHPExcel从单元格中读取原始数据值,并忽略单元格的任何数字格式掩码(或实际上任何样式),这样您就可以获得。< / p>
如果您希望PHPExcel将值视为日期,请不要使用$objReader->setReadDataOnly(true);