2013-07-12 4 views
1

나는 출력으로 웹에서 내 엑셀 파일의 데이터를합니다.내가 어떻게 PHPExcel에서 날짜로 셀 값의 형식을합니까?

A000001 | John Doe  | DR | 41456 | 41465<-- // this should be date 
A000002 | Philip Moris | CP | 41456 | 41465  // formatted as yyyy-mm-dd 



require_once("controller/xls/Classes/PHPExcel/IOFactory.php"); 
$objPHPExcel = PHPExcel_IOFactory::load($filer); 
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) 
{ 
    $worksheetTitle  = $worksheet->getTitle(); 
$highestRow   = $worksheet->getHighestRow(); // e.g. 10 
$highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
$nrColumns = ord($highestColumn) - 64; 

echo '<table>'; 
for ($row = 5; $row <= $highestRow; ++ $row) 
{ 
echo '<tr>'; 
    for ($col = 1; $col < $highestColumnIndex; ++ $col) 
    { 
    $cell = $worksheet->getCellByColumnAndRow($col, $row); 
    $val = $cell->getValue(); 
    echo '<td>'.$val.'</td>'; 
    } 
echo '</tr>'; 
} 
echo '</table>'; 
} 

는 유닉스 시간 : 출력 할 때 엑셀에서 셀 하나는이 같은 날짜와 반환으로 포맷? 그렇다면 getCellByColumnAndRow를 사용할 때 어떻게 포맷합니까? 나는 또한 이것을 mysql db에 저장할 것이다. Tnx.

답변

4

그것은 엑셀 타임 스탬프 값이다, (스프레드 시트 파일이 맥 달력이 아닌 윈도우 캘린더를 사용하도록 설정하거나 1904년 1월 1일 경우) 1900 년 이후의 일 수를 포함하는 float. 세포 형식 마스크에 따라 날짜로 포맷 된 문자열로 값을 반환합니다

$cell->getFormattedValue(); 

를 사용

.

다른 방법으로는 유닉스 타임 스탬프 또는 PHP 날짜 시간 객체입니다 PHPExcel_Shared_Date::ExcelToPHP() 또는 PHPExcel_Shared_Date::ExcelToPHPObject() 방법을 사용하여, 다음이

을 선호하는 어떤 날짜 형식의 문자열을 생성하기 위해 적절한 PHP 함수/메소드를 사용하여 엑셀 float 값을 변환 할 수 있습니다
+0

당신에게 감사 매우 굉장합니다! :) – mmr

+1

PHPExcel – periback2

관련 문제