PHPExcel字符串到时间

问题描述 投票:2回答:3

我创建了一个Excel电子表格。在第二列中,我有像0:11:232:03:33这样的值,数千行值。使用PHP我将格式设置为:

    $sheet->getStyle($colRange)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

但细胞仍然只是弦乐。如果您将0:11:22中的单元格编辑为0:11:33之类的其他内容,则单元格将转换为时间。在顶部它从0:11:220:11:33 AM这个自动添加AM似乎是一个巨大的变化,然后我可以做我想要的文件。

如何将成千上万的细胞从0:11:22改为0:11:22 AM

php time phpexcel
3个回答
0
投票

那是因为您必须将日期/时间转换为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);

1
投票

这是一个老帖子,但也许它可以帮助某人......

$objPHPExcel->getActiveSheet()
->setCellValue('E5', '=TEXT(TIMEVALUE("'. $the_str_Time . '"),"[h]:mm")');

TIMEVALUE函数将字符串转换为时间,TEXT函数为它们提供所需的格式。我的测量时间超过24小时


0
投票

试试这个

$sheet
    ->getStyle($colRange)
    ->getNumberFormat()
    ->setFormatCode('[$-C09]d mmm yyyy;@');
© www.soinside.com 2019 - 2024. All rights reserved.