1

有时我无法使用$date格式“yyyy-mm-dd”将 Excel 单元格数据格式化为日期(例如 2017-07-12)

if ($date != '') {
     $t_date   = PhpOffice\PhpSpreadsheet\Shared\Date::stringToExcel($date);
     $sheet->setCellValueByColumnAndRow($column,$row, $t_date);
     $sheet->getStyleByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DDMMYYYY);
  }
4

1 回答 1

0

当 a$date无效时(例如 0000-00-00),前面的代码会失败,并且在所有后续应用中都会失败。

我的解决方案是

if ($date != '') {
     $t_date   = PhpOffice\PhpSpreadsheet\Shared\Date::stringToExcel($date);
     if ($t_date !== false) {
        $sheet->setCellValueByColumnAndRow($column,$row, $t_date);
        $sheet->getStyleByColumnAndRow($column,$row)->getNumberFormat()->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DDMMYYYY);
        $sheet->getStyleByColumnAndRow($column,$row)->getFont()->setBold(true);
        $sheet->getStyleByColumnAndRow($column,$row)->getFont()->setBold(false);
     }
  }

在大多数情况下设置和取消设置粗体 kwwpd 工作 setFormatCode ......我不知道为什么。

于 2017-12-19T09:25:14.940 回答