PHPExcel setCellValueByColumnAndRow()到datetime单元格格式

时间:2018-01-30 09:50:23

标签: php date datetime phpexcel

如果我在php变量中有数据时间,有人可以告诉我如何将phpexcel单元格格式设置为datetime吗?我这样使用它,但它只是字符串:

$list->setCellValueByColumnAndRow( ++$column, $row, $survey->task->closed->format(DateTimeUtils::DATE_FORMAT_NO_SPACES) );

修改 现在我有了这段代码:

$list->setCellValueByColumnAndRow( ++$column, $row, \PHPExcel_Shared_Date::PHPToExcel( $survey->task->closed ) )
->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);

但它将单元格格式设置为数字,日期似乎在结果中,如浮点数43098.4755671296

1 个答案:

答案 0 :(得分:0)

似乎流畅的调用 getStyle()不起作用,应该在excel表格对象上调用 getStyleByColumnAndRow()

$activeSheet->getStyleByColumnAndRow( $column, $row, $survey)->getNumberFormat()->setFormatCode( \PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY );

我很困惑,并且不明白 getStyle() getStyleByColumnAndRow()之间的区别。 如果有人知道,请告诉我。

编辑:setCellValueByColumnAndRow()方法中有第四个参数来确定返回值。 Fluent getStyle()需要将其设置为TRUE。