phForpreadsheet setFormatCode не работает

Иногда я не могу отформатировать данные ячейки Excel как дату, используя $date в формате ‘гггг-мм-дд’ (например, 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);
}

0

Решение

Предыдущий код не работает, когда $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 в большинстве случаев … Я не знаю почему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]