У меня есть проект в Yii2, который использует библиотеку PHPExcel для чтения файла Excel.
У меня есть Номер транзакции столбец, содержащий данные в генеральный форматировать ячейку
Снимок экрана моего файла Excel:
Вы можете видеть выше, если я введу 15 символов числа и вставлю две точки внутри него. Он будет отображаться как номер.
Первый Экс: Input => 800.003.151476962 в ячейке, показанной как
И в Панель формул показал как
Но если ввести 15 символов числа без точек внутри, оно будет отображаться как Научная нотация / Экспоненциальная.
Второй Экс: Input => 800003151476925 в ячейке показано как
=> Научная нотация / Экспоненциальная формат данных
И в Панель формул показал как
Когда я пытаюсь прочитать данные в моем PHP, мой PHP будет читать Второй Экс данные как Научная нотация / Экспоненциальная формат не как строка / число / десятичное число.
Как я могу получить Второй Экс данные как 800003151476925(не важно, строка или число или десятичный формат) нет 8.00003E + 14 в моем PHP?
Спасибо 🙂
НОТА: На самом деле я прочитал и попробую предложение в Преобразование экспоненциального в целое число в PHP, Преобразовать экспоненциальное число в десятичное в php, Преобразовать экспоненциальное число в десятичное в php но я ничего не получил
Если вы поместите 2 точки (десятичные точки) в значение, то это может быть только строка; поэтому MS Excel отформатирует его General
(форматирование ячейки по умолчанию для MS Excel) в виде строки. С одной точкой (десятичная точка) PHPExcel будет обрабатывать его как число и соответственно устанавливать тип данных; и MS Excel увидит его как число с плавающей запятой, и MS Excel General
правила форматирования будут форматировать его с использованием научного форматирования, если оно больше стандартного 32-разрядного целочисленного размера, рассматривая его как число с плавающей точкой.
Если вы хотите принудительно отформатировать строку, вы должны сделать это явно, либо установив его как строковый тип данных, используя setCellValueExplicit()
заставить его быть установленным как строка; или установите маску формата, отличную от General
такие как 0
$objPHPExcel->getActiveSheet()->getStyle('A9')
->getNumberFormat()
->setFormatCode(
'0'
);
Других решений пока нет …