PHPExcel導出手機號成科學計數法問題

今天在將erp裏面的數據導出爲excel的時候,發現訂單id(一長串數字)變成了科學計數格式。

如下這樣的格式:

字符串63114825259831409顯示成爲6.3114825259831E+16這樣的了。

方法一

小編第一想到的就是將對應單元格的格式改爲文本。

於是加上如下代碼:

$objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

的確是成功改成了文本格式,但是問題依舊。

原因是什麼呢?

因爲php在處理大數字時超出了當前環境int型的最大值,於是將其以科學計數法進行存儲。

那麼在這裏又要解決php在處理大數字的問題:在賦值是對其加上引號。

<?php

$num="63114825259831409";

echo $n;

?>

但是應用到phpexcel中,導出並不理想。

方法二

在導出的對應代碼的時候,指定數據類型。

$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1',63114825259831409,PHPExcel_Cell_DataType::TYPE_STRING);

方法三

在大數字前面加上空格,使其成爲字符串

$objPHPExcel->getActiveSheet()->setCellValue('A', ' '.63114825259831409);

總結

解決PHPExcel導出長數字被轉爲科學計數的方法,小編推薦使用方法一和方法二,因爲小編導出數據是循環的,爲了方便就直接使用的在前面加空格的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章