天天看點

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

之前:

<a href="http://s3.51cto.com/wyfs02/M01/54/4D/wKiom1R-lPuztDEAAADAlKgsV3E616.jpg" target="_blank"></a>

之後:

<a href="http://s3.51cto.com/wyfs02/M02/54/4C/wKioL1R-lY-QIbvAAADuf6qS_9I167.jpg" target="_blank"></a>

phpexcel導出excel長數字串顯示為科學計數怎麼辦?

本人在用phpexcel導出的excel中長字元串數字,例如***号碼,銀行卡号會顯示為科學計算法

下面說一下解決辦法:

1、在數字字元串前加一個空格使之成為字元串

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValueByColumnAndRow(14, $i, ' '.$v['ex_zjhm']);

2、在設定值的時候顯示的指定資料類型

$objPHPExcel = new PHPExcel();

$objPHPExcel-&gt;setActiveSheetIndex(0);

$objPHPExcel-&gt;getActiveSheet()-&gt;setTitle('Simple');

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValueExplicit('D1',

                                 123456789033,

                                 PHPExcel_Cell_DataType::TYPE_STRING);

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

在excel中如果在一個預設的格中輸入或複制超長數字字元串,它會顯示為科學計算法,例如***号碼,解決方法是把表格設定文本格式或在輸入前加一個單引号。

使用PHPExcel來生成excel,也會遇到同樣的問題,解決方法有三種:

1、設定單元格為文本

<code>$objPHPExcel</code> <code>= </code><code>new</code> <code>PHPExcel();</code>

<code>$objPHPExcel</code><code>-&gt;setActiveSheetIndex(0);</code>

<code>$objPHPExcel</code><code>-&gt;getActiveSheet()-&gt;setTitle(</code><code>'Simple'</code><code>);</code>

<code>//設定A3單元格為文本</code>

<code>$objPHPExcel</code><code>-&gt;getActiveSheet()-&gt;getStyle(</code><code>'A3'</code><code>)-&gt;getNumberFormat()</code>

<code>    </code><code>-&gt;setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);</code>

<code>//也可以設定整行或整列的style</code>

<code>/*</code>

<code>//E 列為文本</code>

<code>$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('E')-&gt;getNumberFormat()</code>

<code>//第三行為文本</code>

<code>$objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('3')-&gt;getNumberFormat()</code>

<code>*/</code>

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

<code>$objPHPExcel</code><code>-&gt;getActiveSheet()-&gt;setCellValueExplicit(</code><code>'D1'</code><code>,</code>

<code>                                 </code><code>123456789033, </code>

<code>                                 </code><code>PHPExcel_Cell_DataType::TYPE_STRING);</code>

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

<code>$objPHPExcel</code><code>-&gt;getActiveSheet()-&gt;setCellValue(</code><code>'D1'</code><code>, </code><code>' '</code> <code>. 123456789033);</code>

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

<a href="http://my.oschina.net/jyb2014/blog/300089" target="_blank">http://my.oschina.net/jyb2014/blog/300089</a>

   本文轉自許琴 51CTO部落格,原文連結:http://blog.51cto.com/xuqin/1585876,如需轉載請自行聯系原作者