我已经创建了Excel电子表格。在第二列中,我有像0:11:23和2:03:33这样的值,几千行值。使用PHP我设置格式为:PHPExcel字符串到时间
$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”?
嗨,马克,我切换到FORMAT_DATE_TIME8,您也正确,因为它需要时间戳格式。这大约是他们想要的方式的90%。现在唯一的一点是,如果你稍微改变0:01:02,并且excel改变它说12:01:03 AM - 他们喜欢那样。但是通过编程实现,它会在excel公式栏中显示“09/20/2016 12:01:03 AM”,而不仅仅是他们想要的时间......我知道你回答了这个问题,但是你有没有关于如何不显示日期部分的任何想法,就像手动更改时间时发生的一样? – Sparfy
而且,我还通过删除日期部分的Excel日期修复了我的“09/20/2016 12:01:03 AM”问题datetime:12345.6789 - > 0.6789 $ val = $ objPHPExcel-> getActiveSheet() - > getCell($细胞) - >的getValue(); $ timestamp = DateTime :: createFromFormat('H:i:s',$ val); $ excelTime = PHPExcel_Shared_Date :: PHPToExcel($ timestamp); $ excelTime = $ excelTime - (int)$ excelTime; $ objPHPExcel-> getActiveSheet() - > setCellValue($ cell,$ excelTime); – Sparfy