phpexcel — PHP: Как я могу получить данные в виде строкового формата из данных Excel с научным обозначением / экспоненциальным форматом?

У меня есть проект в Yii2, который использует библиотеку PHPExcel для чтения файла Excel.
У меня есть Номер транзакции столбец, содержащий данные в генеральный форматировать ячейку
Снимок экрана моего файла Excel:
введите описание изображения здесь

Вы можете видеть выше, если я введу 15 символов числа и вставлю две точки внутри него. Он будет отображаться как номер.

Первый Экс: Input => 800.003.151476962 в ячейке, показанной как
образ
И в Панель формул показал как
образ

Но если ввести 15 символов числа без точек внутри, оно будет отображаться как Научная нотация / Экспоненциальная.

Второй Экс: Input => 800003151476925 в ячейке показано как
образ => Научная нотация / Экспоненциальная формат данных
И в Панель формул показал как
образ

Когда я пытаюсь прочитать данные в моем PHP, мой PHP будет читать Второй Экс данные как Научная нотация / Экспоненциальная формат не как строка / число / десятичное число.

Как я могу получить Второй Экс данные как 800003151476925(не важно, строка или число или десятичный формат) нет 8.00003E + 14 в моем PHP?

Спасибо 🙂

НОТА: На самом деле я прочитал и попробую предложение в Преобразование экспоненциального в целое число в PHP, Преобразовать экспоненциальное число в десятичное в php, Преобразовать экспоненциальное число в десятичное в php но я ничего не получил

4

Решение

Если вы поместите 2 точки (десятичные точки) в значение, то это может быть только строка; поэтому MS Excel отформатирует его General (форматирование ячейки по умолчанию для MS Excel) в виде строки. С одной точкой (десятичная точка) PHPExcel будет обрабатывать его как число и соответственно устанавливать тип данных; и MS Excel увидит его как число с плавающей запятой, и MS Excel General правила форматирования будут форматировать его с использованием научного форматирования, если оно больше стандартного 32-разрядного целочисленного размера, рассматривая его как число с плавающей точкой.

Если вы хотите принудительно отформатировать строку, вы должны сделать это явно, либо установив его как строковый тип данных, используя setCellValueExplicit() заставить его быть установленным как строка; или установите маску формата, отличную от General такие как 0

$objPHPExcel->getActiveSheet()->getStyle('A9')
->getNumberFormat()
->setFormatCode(
'0'
);
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]