Связыватель значений в PHP Excel не распознает дату - PullRequest
1 голос
/ 16 марта 2012

пример кода

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 обрабатывает данные как строки, поэтому не сортировать: (

1 Ответ

4 голосов
/ 17 марта 2012

Эта проблема связана с тем, что метод PHPExcel_Shared_Date :: stringToExcel () не может распознать строки, содержащие / как потенциально допустимые даты .... проблема, которая была решена в версии 1.7.5.

Маска формата даты по умолчанию для AdvancedValueBinder - «гггг-мм-дд». Вы не ограничены форматами, перечисленными в PHPExcel_Style_NumberFormat; но затем вы можете установить формат на все, что принято в Excel. так:

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