phpspreadsheet setFormatCode无效

时间:2017-12-19 09:25:15

标签: php phpspreadsheet

有时我无法使用$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);
  }

1 个答案:

答案 0 :(得分:0)

如果$date无效(例如。()),之前的代码会失败,并且在所有后续条件中都会失败。

我的解决方案是

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工作在moste中的setFormatCode的情况......我不知道为什么。