这里的简单问题,我正在使用PHPExcel将数据网格导出到Excel文件。在我的数据网格中,我有几个包含日期的列,格式为'Y-m-d'。当我提取网格数据时,Excel不会将数据识别为这些列中的日期(Excel表示它们具有常规格式,并且它们没有特定的数字格式)。
我是否可以格式化日期,以便Excel可以在将数据发送到Excel之前将其识别为日期?
提前致谢
答案 0 :(得分:1)
PHPExcel具有内置包,可将数字数据设置为Excel日期。 如果你说得对,那么你只是将数字值作为日期传递并获得类型错误。
尝试:$date = PHPExcel_Style_NumberFormat::toFormattedString($data, "d-M-Y");
答案 1 :(得分:0)
如PHPExcel documentation和Examples中所述,例如02types.php
你需要转换那些"格式化的"日期到MS Excel序列化日期/时间戳
$dateString = '2015-12-21';
$excelTimestamp = PHPExcel_Shared_Date::PHPToExcel($dateString);
然后将$ excelTimestamp设置为单元格值
$objPHPExcel->getActiveSheet()->setCellValue('C9', $excelTimestamp);
然后,您应该设置单元格的格式掩码
$objPHPExcel->getActiveSheet()
->getStyle('C9')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);