2012-03-16 3 views
1

코드 샘플 인식하지 못하는PHP 엑셀 값 바인더는 날짜

require_once 'excel/PHPExcel.php'; 
require_once 'excel/PHPExcel/Cell/AdvancedValueBinder.php'; 

PHPExcel_Cell::setValueBinder(new PHPExcel_Cell_AdvancedValueBinder()); 
$objPHPExcel->setActiveSheetIndex(0) 
           ->setCellValue('A1', '12/08/2010') 
           ->setCellValue('A2', '14/12/2013'); 

왜 그 값 바인더는 날짜의 것을 인식하지 않는다는 것입니다? 따라서 Excel에서는 데이터를 문자열로 처리하므로 정렬 할 필요가 없습니다. (

+0

정확히 무슨 일이 일어 났습니까? 셀이 인식되지 않습니다 - 두 번째 셀 또는 두 번째 셀 모두 –

+0

문자열처럼로드합니다. 셀 서식을 설정하면 데이터가 일반이 아닌 날짜임을 알 수 있습니다. (Excel 2010을 사용하여 ...) – Peter

+0

그리고 PHPExcel 1.7.3을 사용하고 있습니다. 새 1.7.6이 더 나빠집니다. 예를 들어, 2010-08-12와 같이 셀에 날짜를 씁니다. 나는 gmmktime 등의 시간을 능가 해 보았습니다 ... 아무것도 작동하지 않습니다. – Peter

답변

4

PHPExcel_Shared_Date :: stringToExcel() 메서드와 관련된 문제로 잠재적으로 유효한 날짜가 포함 된 문자열을 인식하지 못했습니다. ... 버전에서 해결 된 문제 1.7.5.

AdvancedValueBinder의 기본 날짜 형식 마스크는 'yyyy-mm-dd'입니다. PHPExcel_Style_NumberFormat에 나열된 형식에 국한되지 않지만 다음 형식에 따라 허용되는 형식으로 설정할 수 있습니다. Excel : so.

$objPHPExcel->getActiveSheetIndex() 
      ->getStyle('A1') 
      ->getNumberFormat()->setFormatCode('dd-mm-yyyy'); 
+0

도움에 감사드립니다. 베드로 – Peter