我在输出带有日期对象的Excel时遇到问题。我在Symfony上使用PHPExcel。我执行了一个SQL,它从我的Symfony控制器中的数据库中获取数据。然后我做了一个for循环来遍历每一行数据。但是,当我添加日期值时,它会给我一个错误:
FatalErrorException: Error: Cannot use object of type DateTime as array in ...\Symfony\vendor\phpoffice\phpexcel\Classes\PHPExcel\Cell\DefaultValueBinder.php line 86
这是我的代码:
$excel = new PHPExcel();
$excel->setActiveSheetIndex(0);
// ..etc
for($results as $result) {
// codes..
->setCellValue('H'.$i, $result['date'])
}
由于这个原因,它不允许我输出excel。我应该将它转换为字符串吗?
答案 0 :(得分:1)
我通过使用日期值循环遍历单元格并按数字格式将其设置为日期来找到解决方案:
$excel = new PHPExcel();
$excel->setActiveSheetIndex(0);
// ..etc
$i = 3;
for($results as $result) {
$excel->getActiveSheet()->getStyle('H'.$i)
->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
$date = \PHPExcel_Shared_Date::PHPToExcel($result['date']);
// codes..
->setCellValue('H'.$i, $result['date'])
}