之前:
之後:
phpexcel導出excel長數字串顯示爲科學計數怎麼辦?
本人在用phpexcel導出的excel中長字符串數字,例如***號碼,銀行卡號會顯示爲科學計算法
下面說一下解決辦法:
1、在數字字符串前加一個空格使之成爲字符串
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(14, $i, ' '.$v['ex_zjhm']);
2、在設置值的時候顯示的指定數據類型
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',
123456789033,
PHPExcel_Cell_DataType::TYPE_STRING);
解決 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://my.oschina.net/jyb2014/blog/300089