使Excel识别从PHP发送的日期格式

时间:2015-12-21 20:04:54

标签: php excel

这里的简单问题,我正在使用PHPExcel将数据网格导出到Excel文件。在我的数据网格中,我有几个包含日期的列,格式为'Y-m-d'。当我提取网格数据时,Excel不会将数据识别为这些列中的日期(Excel表示它们具有常规格式,并且它们没有特定的数字格式)。

我是否可以格式化日期,以便Excel可以在将数据发送到Excel之前将其识别为日期?

提前致谢

2 个答案:

答案 0 :(得分:1)

PHPExcel具有内置包,可将数字数据设置为Excel日期。 如果你说得对,那么你只是将数字值作为日期传递并获得类型错误。

尝试:$date = PHPExcel_Style_NumberFormat::toFormattedString($data, "d-M-Y");

或参考文档链接了解更多详情:http://www.cmsws.com/examples/applications/phpexcel/Documentation/API/PHPExcel_Style/PHPExcel_Style_NumberFormat.html#constFORMAT_DATE_DDMMYYYY

答案 1 :(得分:0)

PHPExcel documentationExamples中所述,例如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);