phpspreadsheet setFormatCode无效

问题描述 投票:1回答: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);
  }
php phpspreadsheet
1个回答
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);
     }
  }

设置和取消设置粗体仍然保持在moste中运行setFormatCode的情况......我不知道为什么。

© www.soinside.com 2019 - 2024. All rights reserved.