解決 PHPExcel 長數字串顯示為科學計數


解決 PHPExcel 長數字串顯示為科學計數

在excel中如果在一個默認的格中輸入或復制超長數字字符串,它會顯示為科學計算法,例如身份證號碼,解決方法是把表格設置文本格式或在輸入前加一個單引號。

使用PHPExcel來生成excel,也會遇到同樣的問題,解決方法有三種:
1、設置單元格為文本

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//設置A3單元格為文本
$objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()
	->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//也可以設置整行或整列的style
/*
//E 列為文本
$objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()
	->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//第三行為文本
$objPHPExcel->getActiveSheet()->getStyle('3')->getNumberFormat()
	->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
*/

更多的格式可以在PHPExcel/Style/NumberFormat.php中找到。注意:上述的設置對長數字字符串還是以文本方式來顯示科學計數法的結果,原因可能php在處理大數字時采用的科學計數法。

2、在設置值的時候顯示的指定數據類型

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Simple');

$objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',
                                 123456789033, 
                                 PHPExcel_Cell_DataType::TYPE_STRING);

3、在數字字符串前加一個空格使之成為字符串

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Simple');

$objPHPExcel->getActiveSheet()->setCellValue('D1', ' ' . 123456789033);

推薦使用第二、三種,第一種沒有根本解決問題。

轉自:http://www.netingcn.com/phpexcel-big-number-display.html

 

這幾種方法經實驗,方法一必須要雙擊一下單元格,才能顯現效果;方法二提示語法錯誤,而方法三,雙擊單元格后文本格式會消失,所以把方法一和方法三同時應用可得到想要的效果。

這篇博文就是這樣處理的:http://xlyztbz.blog.163.com/blog/static/63673452011090155873/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM