Excel 스프레드 시트를 만들었습니다. 두 번째 열에서는 0:11:23 및 2:03:33과 같은 값을 가지며 수천 행의 가치가 있습니다. PHP를 사용하여 형식을 다음과 같이 설정했습니다.PHPExcel String to Time
$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 초를 약간 변경하고 12시 1 분 0 초라고 말하면서 변경하면 탁월하다는 것입니다. 그러나 프로그래밍을 통해 프로그래밍을하면 엑셀 공식 바에 "09/20/2016 12:01:03 AM"이 표시됩니다. 원하는 시간뿐 아니라 ... 당신이 질문에 대답했음을 이해합니다.하지만 날짜 부분을 표시하지 않는 방법에 대한 아이디어는 수동으로 시간을 변경할 때처럼 발생합니까? – Sparfy
그리고 Excel 날짜의 날짜 부분을 제거하여 내 "09/20/2016 12:01:03 AM"문제를 수정했습니다. 12345.6789 -> 0.6789 $ val = $ objPHPExcel-> getActiveSheet() -> getCell ($ cell) -> getValue(); $ timestamp = DateTime :: createFromFormat ('H : i : s', $ val); $ excelTime = PHPExcel_Shared_Date :: PHPToExcel ($ timestamp); $ excelTime = $ excelTime - (int) $ excelTime; $ objPHPExcel-> getActiveSheet() -> setCellValue ($ cell, $ excelTime); – Sparfy