我已經創建了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