2013-12-02 2 views
2

Я экспортирую некоторые данные в Excel с помощью PHPExcel. Все работает нормально, кроме какого-то странного поведения, что экспорт заменяет последние три цифры числа нулями.PHPExcel заменяет последние три номера

Например, у меня есть этот номер: 876685900060999549

Но при экспорте это нравится: 876685900060999000

Как вы можете видеть только последние три цифры заменяются нулями. Я уже пытался использовать setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER), но, к сожалению, это не сработало.

Кто-нибудь знает, почему только последние три цифры заменяются нулями и как это можно предотвратить?

ответ

1

Эти цифры слишком велики для представления в виде 32-разрядного целого числа в PHP (или в MS Excel), поэтому они преобразуются в float с соответствующей потерей точности.

Чтобы обойти это, вам нужно, чтобы заставить их рассматривать как строковые значения: вы не покажете свой код, но попробуйте использовать setCellValueExplicit(), чтобы заставить тип данных в строку

+0

Я не думал, что число слишком велико. Большое вам спасибо! – Joey

0

Может быть, это может помочь: phpExcel write long number in cell

Вы также можете взглянуть на настройки INI для точности: ini_set ("точность", "20");

Смежные вопросы