首頁 >後端開發 >php教程 >PHP導出excel時數字變成科學計數的解決方法

PHP導出excel時數字變成科學計數的解決方法

PHP中文网
PHP中文网原創
2017-03-30 17:48:563966瀏覽

在資料匯出到excel時數字格式不對,一般分為以下兩種情況。

1、excel單元格設定長度不夠 

解決方法:

//在excel.php文件中 
$objActSheet = $objPHPExcel->getActiveSheet(); 
// 设置 栏目名称 
$objActSheet->setCellValue("b1", "卡号"); 
// 设置列的宽度 
$objActSheet->getColumnDimension('b')->setWidth(20);//改变此处设置的长度数值

2、字符被理解成數字了,一般就是把那個字段設定成文字或想辦法加入一些空格一類的。
解: 

//添加数据处,主要是把要显示数据以chunk_split()函数处理以下,此函数的具体用法可以自己查看 
$objActSheet->setCellValue ( "b$i", chunk_split("123456789 ",4," ") );
//当然,如果不想让用户看到数字间有空格,那就把要分割的字段值设大一些,如例子中的4设为大于等于9的即可。

我匯出EXcel的主要程式碼前面的部分: 

<? 
if(count($data)>40000){ 
$filename_type=&#39;csv&#39;; 
}else{ 
$filename_type=&#39;xls&#39;; 
} 
header("Content-Type: application/vnd.ms-excel"); 
Header("Accept-Ranges:bytes"); 
Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名 
header("Pragma: no-cache"); 
header("Expires: 0"); 
if($filename_type==&#39;xls&#39;){ 
echo &#39;<html xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns="http://www.w3.org/TR/REC-html40"> 
<head> 
<meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT"> 
<meta http-equiv=Content-Type content="text/html; charset=gb2312"> 
<!--[if gte mso 9]><xml> 
<x:ExcelWorkbook> 
<x:ExcelWorksheets> 
<x:ExcelWorksheet> 
<x:Name></x:Name> 
<x:WorksheetOptions> 
<x:DisplayGridlines/> 
</x:WorksheetOptions> 
</x:ExcelWorksheet> 
</x:ExcelWorksheets> 
</x:ExcelWorkbook> 
</xml><![endif]--> 

</head>&#39;; 
}

後面就是以



後面就是以

的格式輸出資料 

查了大半天終於查到了一點有用的資料,現在摘抄如下: 

“首先,我們了解excel從web頁面匯出的原理。 application/vnd.ms-excel,當excel讀取檔案時會以每個cell的格式呈現數據,如果cell沒有規定的格式,則excel會以預設的格式去呈現該cell的資料。了自訂資料格式的空間,當然我們必須使用excel支援的格式。 .ms-excel.numberformat:yyyy/mm/dd 
3) 數字:vnd.ms-excel.numberformat:#,##0.00 
4) 貨幣:vnd.ms-excel.numberformat:¥#, ##0.00 
5) 百分比:vnd.ms-excel.numberformat: #0.00% 這些格式你也可以自訂,例如年月你可以定義為:yy-mm等等。格式,怎麼去把這些格式加到cell中呢? 新增樣式,如下: 410522198402161833 

同樣,我們也可以為

新增樣式,也可以為,
新增樣式;當我們在父標籤對和子標籤對都新增樣式時,資料會以哪一個樣式呈現呢?最近的樣式呈現.以上就是PHP導出excel時數字變為科學計數的解決方法 的內容,更多相關內容請關注PHP中文網(www.php.cn)!
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn