我创建了一个Excel电子表格。在第二列中,我有像0:11:23
和2:03:33
这样的值,数千行值。使用PHP我将格式设置为:
$sheet->getStyle($colRange)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
但细胞仍然只是弦乐。如果您将0:11:22
中的单元格编辑为0:11:33之类的其他内容,则单元格将转换为时间。在顶部它从0:11:22
到0:11:33 AM
这个自动添加AM似乎是一个巨大的变化,然后我可以做我想要的文件。
如何将成千上万的细胞从0:11:22
改为0:11:22 AM
?
那是因为您必须将日期/时间转换为MS Excel序列化时间戳,并将该值存储在单元格中;如PHPExcel Documentation中所述,并在02types.php文件夹中的/Examples
中显示。
一旦存储了实际的MS Excel时间戳值,就可以对其应用格式
$objPHPExcel->getActiveSheet()->setCellValue('A12', 'Date/Time')
->setCellValue('B12', 'Time')
->setCellValue('C12', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
$objPHPExcel->getActiveSheet()
->getStyle('C12')
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
这是一个老帖子,但也许它可以帮助某人......
$objPHPExcel->getActiveSheet()
->setCellValue('E5', '=TEXT(TIMEVALUE("'. $the_str_Time . '"),"[h]:mm")');
TIMEVALUE函数将字符串转换为时间,TEXT函数为它们提供所需的格式。我的测量时间超过24小时
试试这个
$sheet
->getStyle($colRange)
->getNumberFormat()
->setFormatCode('[$-C09]d mmm yyyy;@');