@rudejah

Как заставить PHPExcell вернуть правильное поле?

Доброго утра, наверное.

После чтения файла с помощью PHPExcel столкнулся с проблемой, что банковский счет (20 цыфер) он преобразует в экспоненту (так как эксель любит только 15-ти циферные строчки)

Пытался и getFormattedValue, но как-то всё без успешно.

Может подскажете в какую сторону ковырять?
  • Вопрос задан
  • 3131 просмотр
Пригласить эксперта
Ответы на вопрос 3
@rudejah Автор вопроса
Поломав голову, посмотрев что выдает var_dump при разных конфигурациях.
Не нашел ничего лучше как в файле PHPExcel/Cell.php поменять немного кода:

Ищем public function setValueExplicit, в ней меняем

case PHPExcel_Cell_DataType::TYPE_NUMERIC:
$this->_value = (float)$pValue;

на

case PHPExcel_Cell_DataType::TYPE_NUMERIC:
$this->_value = (string)$pValue;

Но это только для моего случая и не является панацеей.
Ответ написан
Комментировать
thewind
@thewind
php программист, front / backend developer
getCalculatedValue не пробовали?
Ответ написан
@Kamaz541
можно сделать так:
$number = 0012;
$sheet->setCellValue("B1", $number);
$sheet->getStyle("B1")->getNumberFormat()->setFormatCode('0000');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы