PHP 将日期 xlsx 转换为 csv

PHP value date xlsx to csv

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

我需要像 XLSX (13/04/2015) 一样两个文件中的值相同

这是我的转换脚本

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');

是的,会的

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

当你使用

$objReader->setReadDataOnly(true); 

你告诉 PHPExcel 从单元格中读取原始数据值,并忽略单元格的任何数字格式掩码(或实际上任何样式),所以你就是这样得到.

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