您好,登錄后才能下訂單哦!
這篇文章主要講解了“php導(dǎo)出excel格式數(shù)據(jù)中文亂碼怎么解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“php導(dǎo)出excel格式數(shù)據(jù)中文亂碼怎么解決”吧!
解決2個問題:
1.身份證之類的文本數(shù)據(jù)自動轉(zhuǎn)為科學(xué)計數(shù)法的問題。
2.中文亂碼的問題
excel從web頁面上導(dǎo)出的原理。當(dāng)我們把這些數(shù)據(jù)發(fā)送到客戶端時,我們想讓客戶端程序(瀏覽器)以excel的格式讀取 它,所以把mime類型設(shè)為:application/vnd.ms-excel,當(dāng)excel讀取文件時會以每個cell的格式呈現(xiàn)數(shù)據(jù),如果cell沒有規(guī)定的格式,則excel會以默認的格式去呈現(xiàn)該cell的數(shù)據(jù)。這樣就給我們提供了自定義數(shù)據(jù)格式的空間,當(dāng)然我們必須使用excel支持的格式。 下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 數(shù)字:vnd.ms-excel.numberformat:#,##0.00
4) 貨幣:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
這些格式你也可以自定義,比如年月你可以定義為:yy-mm等等。那么知道了這些格式,怎么去把這些格式添加到cell中呢?很簡單,我們只需要把樣式添 加到對應(yīng)的標(biāo)簽對(即閉合標(biāo)簽)即可。如<td></td>,給標(biāo)簽對<td></td>添加樣式,如 下: <td >410522198402161833</td>
同樣,我們也可以給<div></div>添加樣式,也可以給<tr>< /tr>,<table></table>添加樣式;當(dāng)我們在父標(biāo)簽對和子標(biāo)簽對都添加樣式時,數(shù)據(jù)會以哪一個樣式呈現(xiàn) 呢?經(jīng)過測試,會以離數(shù)據(jù)最近的樣式呈現(xiàn).
例如身份證列的<td>的樣式:
echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>\n";
復(fù)制代碼 代碼如下:
$filename=iconv("UTF-8", "GB2312//IGNORE","會員名.xls");//date('Y-m-d-H-i-s').".xls";
header("Content-type:application/vnd.ms-excel");
Header("Accept-Ranges:bytes");
Header("Content-Disposition:attachment;filename=".$filename); //$filename導(dǎo)出的文件名
header("Pragma: no-cache");
header("Expires: 0");
echo '<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>';
echo "<table><tr>
<th>".iconv("UTF-8", "GB2312//IGNORE","會員名")."</th>
<th>".iconv("UTF-8", "GB2312//IGNORE","賬號")."</th>
<th>".iconv("UTF-8", "GB2312//IGNORE","聯(lián)系人")."</th>
</tr>";
foreach ($list as $v)
{
echo "<tr>";
echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["user_name"])."</td>";
echo "<td style='vnd.ms-excel.numberformat:@'>".$v["account_id"]."</td>";
echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["contact_name"])."</td>";
echo "</tr>";
}
echo "</table>";
感謝各位的閱讀,以上就是“php導(dǎo)出excel格式數(shù)據(jù)中文亂碼怎么解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對php導(dǎo)出excel格式數(shù)據(jù)中文亂碼怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。