您好,登錄后才能下訂單哦!
小編給大家分享一下php導出mysql到excel亂碼的解決方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
php導出mysql到excel亂碼的解決辦法:首先設置時區以及head頭信息;然后通過“ob_end_clean();”清除緩沖區;接著設置表格信息;最后查詢內容導出數據庫數據即可。
PHP查詢數據庫導出excel并且解決亂碼問題,原生代碼無需插件
近日寫一個信息系統,需要把數據庫的內容導出到excel
下面把我的貼出我的代碼,不需要phpexcel插件
系統要求:php5.6+
<?php date_default_timezone_set('PRC');//設置時區 /*設置head頭信息*/ ob_end_clean();//清除緩沖區,避免亂碼 Header("Content-Type:application/vnd.ms-excel;charset=UTF-8"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename="."導出excel的名字".date('YmdHis').".xls"); Header("Pragma:no-cache"); Header("Expires:0"); $str = $str2 = null; /*設置表格信息*/ $str.= "序號"."\t"; $str.= "學號"."\t"; $str.= "姓名"."\t"; $str.= "性別"."\t"; $str.= "學院"."\t"; $str.= "年級"."\t"; $str.= "班級"."\t"; $str.= "手機號"."\t"; $str.= "報名時間"."\t\r\n"; $info = iconv("UTF-8","GBK",$str); echo $info; /*查詢內容導出數據庫數據*/ $con = new mysqli("localhost", "root", "password", "detabase"); if (!$con) { die(mysqli_error()) ; } //$sql = " select * from bmxx"; //$res = mysqli_query($con, $sql); mysqli_query($con,"SET NAMES utf8");//解決數據庫中有漢字時顯示在前臺出現亂碼問題 $result = mysqli_query($con,"SELECT * FROM `bmxx`"); while($row = mysqli_fetch_assoc($result)){ $list[] = $row; } mysqli_free_result($result); mysqli_close($con); $co = 1; foreach($list as $v){ $str2.= trim($co++)."\t"; $str2.= trim(iconv("UTF-8","GBK","\t".$v['num']."\t"))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['name']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['sex']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['xueyuan']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['grade']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['class']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['phone']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['time']))."\t\r\n"; } echo $str2; ?>
一開始沒有加這行代碼,導致輸出亂碼。在每次生成數據之前,清除一下緩沖區就好了、
ob_end_clean();//清除緩沖區,避免亂碼
以上是php導出mysql到excel亂碼的解決方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。