[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Некорректные данные в сформированном Excel доке
natalina
При формировании Excel документа, используя класс PHPExcel номера телефонов, например 380931111111, отображаются примерно так: 3,80931E+11.
Игорь_Vasinsky
попробуйте привести к типу (string)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
natalina
Игорь_Vasinsky
Не, там формат ячейки нужно ставить Текст.
Я давно тоже намучался.

До вечера если не решишь, я дома посмотрю пример.

_____________
[продано копирайтерам]
Xpund
Цитата (AllesKlar @ 17.02.2014 - 10:46)
формат ячейки нужно ставить Текст.

В дальнейшем, при работе в таблице именно в экселе, могут появиться проблемы.

Пару месяцев назад тоже самое было, сейчас нет экселя на компе, и точно не скажу как, но исправить можно по другому.

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
AllesKlar
Цитата
точно не скажу как, но исправить можно по другому.

Класс! smile.gif
Можно я на баш запостю?

_____________
[продано копирайтерам]
Игорь_Vasinsky
попробовал в excel

если формат поля числовой - то без проблем
если общий или текстовый - то такая беда.

нужно формат ячейки в числовой поставить

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Пока что в манах нарыл:
$aSheet->getStyleByColumnAndRow(row,column)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);


Если не пройдет, можно попробовать переменной с номером телефона впереди поставить пробел.
$phone = '380931111111';
$phone = ' ' . $phone;


_____________
[продано копирайтерам]
natalina
Цитата (AllesKlar @ 17.02.2014 - 15:37)
Пока что в манах нарыл:
$aSheet->getStyleByColumnAndRow(row,column)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);


Если не пройдет, можно попробовать переменной с номером телефона впереди поставить пробел.
$phone = '380931111111';
$phone = ' ' . $phone;

Спасибо, буду пробовать. К стрингу приводила, без результата. Да и они и так там gettype() даёт стринг. Кстати пример нашла, что можно прописать настройки для формата данных ячейки таки образом:

'numberformat'=>array(
'code' => PHPExcel_Style_NumberFormat::FORMAT_TEXT,
),


В общем ничего не изменилось.
natalina
Цитата (AllesKlar @ 17.02.2014 - 15:37)
Пока что в манах нарыл:
$aSheet->getStyleByColumnAndRow(row,column)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);


Если не пройдет, можно попробовать переменной с номером телефона впереди поставить пробел.
$phone = '380931111111';
$phone = ' ' . $phone;

Спасибо! Вариант с пробелом отлично сработал. Если можете поясните почему? И интересно стоит ли остановиться на нём или всё таки лучше узнать, как именно средствами класса PHPExcel установить текстовый формат для ячеек
AllesKlar
natalina
Цитата
Спасибо! Вариант с пробелом отлично сработал. Если можете поясните почему?

Оно как-бы пытается автоматически распознать тип данных. И если из строки возможно сделать число, то делает число.
А пробел впереди - это уже гарантировано символ, а не число.

Примерно так.
Но, естественно, это черте-что, потому, как данные должны быть в том виде, в котором они есть.

Поэтому:
Цитата
стоит ли остановиться на нём или всё таки лучше узнать, как именно средствами класса PHPExcel установить текстовый формат для ячеек

если есть время и желание, то однозначно стОит, а потом сюда решение запостишь.
Спустя время поисковики страницу проиндексируют, кто-то потом о тебе хорошо подумает smile.gif

Вот такой вот фен-шуй smile.gif

_____________
[продано копирайтерам]
Xpund
Цитата
если формат поля числовой - то без проблем
если общий или текстовый - то такая беда.

нужно формат ячейки в числовой поставить

Я и имел ввиду, что нужно не текстовый, а числовой.


Цитата
Класс! smile.gif
Можно я на баш запостю?

Да хоть в твиттер)

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
zelenuy
Я так понимаю PHPExcel это не стандартная библиотека пхп?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.