在excel中如果在一個默認的格中輸入或復(fù)制超長數(shù)字字符串浦马,它會顯示為科學(xué)計算法钦铺,例如身份證號碼,IMEI號等芦疏。
如:數(shù)據(jù)庫中存儲的數(shù)字為:862741032799914 冕杠,導(dǎo)出到Excel后為下圖的樣式。
如果數(shù)字長度超過15位酸茴,則15為之后的都會變成0分预,原因如下:
excel最多支持的數(shù)值型數(shù)據(jù)的長度是15位。當數(shù)據(jù)長度到過15位時薪捍,從第16位開始笼痹,后面的數(shù)字全部被默認修改為0。
網(wǎng)絡(luò)上搜了幾個在PHPExcel對象的方法中添加string參數(shù)酪穿,試用了都沒奏效凳干。
有兩個方法可以使用,如下所示:
- 第一個是在數(shù)字前邊被济,添加一個空格字符串
' '
救赐。如:
$sheet->SetCellValue(PHPExcel_Cell::stringFromColumnIndex(1).$rowIndex, ' '.$val['imei'])
- 第二個是在數(shù)字兩邊,添加制表符
"\t"
只磷。如:
$sheet->SetCellValue(PHPExcel_Cell::stringFromColumnIndex(1).$rowIndex, "\t".$val['imei']."\t");
我使用的是在第二個的基礎(chǔ)上修改了下经磅,將前邊的制表符"\t"去掉了。
$sheet->SetCellValue(PHPExcel_Cell::stringFromColumnIndex(1).$rowIndex, $val['imei']."\t");
如果使用第一種方法“空格”钮追,假如用戶在使用原始數(shù)據(jù)導(dǎo)入的時候预厌,就可能會因為空格的原因?qū)胧 ?br> 沒選第二個,是因為第三個已經(jīng)幫我實現(xiàn)功能了畏陕,多增加一個制表符就可能會多增加一份風(fēng)險配乓。