php excel 導出亂碼有關(guān)問題
Jun 13, 2016 pm 12:00 PM
php excel 導出亂碼問題
/**<br /> * 用于生成excel文件的函數(shù)<br /> * author:walker<br /> * @param $data 生成excel的數(shù)據(jù)(二維數(shù)組形式)<br /> * @param null $savefile 生成excel的文件名(保不指定,則為當前時間戳)<br /> * @param null $title 生成excel的表頭(一維數(shù)組形式)<br /> * @param string $sheetname 生成excel的sheet名稱(缺省為sheet1)<br /> */<br /> function exportExcel($data,$savefile=null,$title=null,$sheetname='sheet1'){<br /> //若沒有指定文件名則為當前時間戳<br /> if(is_null($savefile)){<br /> $savefile=time();<br /> }<br /> //若指字了excel表頭,則把表單追加到正文內(nèi)容前面去<br /> if(is_array($title)){<br /> array_unshift($data,$title);<br /> }<br /> import('Org.Util.PHPExcel');<br /> import('Org.Util.PHPExcel.IOFactory');<br /> import('PHPExcel.Util.PHPExcel.Reader.Excel5');<br /> $objPHPExcel = new \PHPExcel();<br /> //Excel內(nèi)容<br /> foreach($data as $k => $v){<br /> $obj=$objPHPExcel->setActiveSheetIndex(0);<br /> $row=$k+1;//行<br /> $nn=0;<br /> foreach($v as $vv){<br /> $col=chr(65+$nn);//列<br /> $vv = iconv("UTF-8", "GB2312//IGNORE",$vv);<br /> $obj->setCellValue($col.$row,$vv);//列,行,值<br /> $nn++;<br /> }<br /> }<br /> $objPHPExcel->getActiveSheet()->setTitle($sheetname);<br /> $objPHPExcel->setActiveSheetIndex(0);<br /> header('Content-Type: application/vnd.ms-excel');<br /> header('Content-Disposition: attachment;filename="'.$savefile.'.xls"');<br /> header("Content-Type: application/vnd.ms-excel; charset=UTF-8");<br /> header('Cache-Control: max-age=0');<br /> $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');<br /> $objWriter->save('php://output');<br /> exit;<br /> }<br /> <br /> /**<br /> *<br /> * 導出Excel<br /> */<br /> function expUser(){//導出Excel<br /> $xlstitle = array('id','商品編碼','模板編號','商品名稱','總庫存','當前庫存','供應商');<br /> $xlssql = M('erp_inventory');<br /> $xlsData = $xlssql->getField('id,p_code,mid,pname,banlance,cur_banlance,factory');<br />// show_bug($xlsData);die;<br /> $this->exportExcel($xlsData,time(),$xlstitle);<br /> <br /> }

以上是我代碼,我用thinkphp框架,第二張圖是導出后的效果,哪里出現(xiàn)的問題,怎么解決?
------解決方案--------------------
既然用的是?thinkphp,那么就應該是?utf-8?的了
而?PHPExcel?的默認字符集也是?utf-8?的
那么為什么要?
$vv?=?iconv("UTF-8",?"GB2312//IGNORE",$vv);
將?utf-8?轉(zhuǎn)成?gb2312?呢?
------解決方案--------------------
看不懂?我沒說清楚嗎?看來你不能接受啟發(fā)式解答
把所有使用?iconv?轉(zhuǎn)碼的語句刪去!
這應該明白了吧?
用?PHPExcel?寫到?excel?的必須是?utf-8?編碼的數(shù)據(jù)
這也應該明白了吧?
------解決方案--------------------
轉(zhuǎn)為gbk看下,另iconv轉(zhuǎn)火星文和繁體字會有問題
$vv?=?mb_convert_encoding($vv?=,?"GBK","UTF-8");
------解決方案--------------------
38不需要刪
還不行的話,就貼個截圖
------解決方案--------------------
對,有轉(zhuǎn)回去了
我前面說了,我單獨測試你的代碼段是沒有問題的。
所以問題可能出在別的地方:比如傳入的數(shù)據(jù)、從表中讀取的數(shù)據(jù)、甚至是你使用的phpexcel類
include?'Plugin/PHPExcel/Classes/PHPExcel.php';<br>//????????import('Org.Util.PHPExcel.IOFactory');<br>//????????import('PHPExcel.Util.PHPExcel.Reader.Excel5');<div class="clear"> </div>

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











???? ?? ??? ? ? ?? ?????? ?? ??? ?? ??? ????? ?? ??? ?? ??? ? ????. ??? ??? ???? ???? ???? ?? ??? ???? ???. file ?? ??? ???? ???? ???? ?? ??? ?????. Excel?? ?? ??? ? ??? ?? ???? ??? ?? ???? 1. ?? ??? ?? ??? ??? ???. 2. ?? ??? ?? ??? ??? ??? ?? ?????. 3. ?? ??? ?? ??? ??? ??? ???? "? ??" ??? ?????. 4. ?? ??? ?? ? ??? "???" ??? ?????. 5. ?? ??? ?? ?? ? ????? ?? ?? ??? ?????. 6. '?? ???'? ?????.

??? ???? ???? ???? ???? ? ?? ????, "??" ??? ???? ?? ??? ????. Excel?? "???"? ????? ???? ??? ?? ?? ?? 2?? ??? ???? ? ????. ??? Excel?? ??? 3? ??? ???? ????? ??? ?? ????? ???? ????? ????????. ? ?? ??? ??? ??? ????? ???? ????. ? ?? ?? ????? ??? ?????? ?? ? ? ??? ???? ????? ???. ???? ??? ?? "Wang"??? ??? ?? ???? ? ????. ?? ?? [??]? ??? ? ?? ???? [?? ?? ??? ??? ??]? ?????. ??? ??? ????. ????? ?? ??? ???? ?????.

?? ??? ??? ?? ?? ?? ??? ?? ??? ???? ??? ??? ????? ?? ???? ???? ??? ?? ???, ??? ? ??? ?? ??? ?? ?? ??? ?? ??? ????. ?????, ?? ??? ??? ? ???? ??? ???? ???? ? ??? ???? ?? ??? ??? ???? ????. ?? ???????. ????? ???? ?? ?? ???. 1. ????? ?? ??? ?? ???? ??? ?? ??? ??? ?????. 2. ? ??????? ??? ???? ???? ?? ??? ?? ????? ?????, ??? ?? ? ???? ?? ?? ?? ??????. 3. Office ??? ???? ?? ???? ??? ??? ??

e??? ??? ??? ?? ??? ?? ?? ??? ?????. ??? ???? ?? ??? ? ?? ??? ? ??? ?? ??? ???? ? ?? ????. ?? ??, ????? ?? ??? ??? ?????? ??? ??? ?????: 1. ? ?? ??: 1. ?? Excel? a3(3? ? ??)? ?????. 2. ?? "3"? ???? ??? ??? ??? ??? ? "? ??"? ?????. 3. "???"? ??? ? "??"? ?????. 4. ???, ??? ?????. 2. ?? ?? ??: 1. ? ?? ?? ??? ???? ?? "ln310"(3? ?? ??)? ???? ?? "3"? ??? ? ??? ??? ??? ???? "? ?? ??"? ?????. 2. "?? ??"? ???? "??"? ?????.

???? ???? ?? ??, ?? ? ??? ??? ??? ???? ??? ?? ??? ????. Excel?? ? ??? ???? ??? ?? ????? Excel? ???? ???? ??? ? ? ??? ???? ??? ?? ?? ???? ???? ?? ? ???????. ??? ???? ?? ? ??? ???? ?? ??? ????????. 1. ??, ??? ?? ?? ???? Microsoft Office Excel ??? ?? ? ??? ???? ? ???? ???????. 2. ?? ?? ??? ?? ??? ??? ??? ???? ?? ? ???? ???? "? ??"??? ??????. 3. ???? ???? ???? “? ??” ?? ????

????? ??? ??? ??? ??? ????? ???? ???, ??? ?? ??? ?? ??? ??? ??? ??? ??? ? ??, ??? ????? ?? ????, ??? ?????. ??? ??? ?? ?? ?? ?? ?? ??? ??????. 1. ???? ? ?? Excel ?? ????? ?? ?? ???? ????. 2. Excel?? ?? ??? ???? ???? ? ??? ????. ? ??: Excel?? Excel ????? ??? ??? ?? ??? ?? ????. ?? ??? ??? ?? ?? ?? ????? ????. ?? ?? ??? ?? ???? ?? ?? ???? ?? ?? ??? ????. .

???? ???? ??? ???? ???? ?? Excel? ?????. ??? Excel?? VBA ????? ????. ???? ????? ? ??? ???? ???? ?? ????. iif ??? ??? VBA? ?????. iif ??? ???? ???????. SQL ??? iif ??? ?? Excel?? VBA ??? ????. iif ??? Excel ????? IF ??? ???? ?? ?? ?? ???? ????? ??? ?? ?? ?? ???? ?? ?? ??? ?????. IF ?? ???? (??, ?, ???)???. VBA? IF?? IIF ?? ??? IF?? ??? ?? ?? ???? ??? ? ?? ???? ?? ???

1. PPT? ?? ?? ???? ???? ?? ???? ???? ????. ?? ?? ?????. 2. [??]? ?????. 3. ??? ?? ????? ?????. 4. [???? ??]? ??? ? [????]? ?????. 5. ??? ?? ?? ?????. 6. ??? ???? ?? ???? ?????. 7. [????? ??]? ?????. 8. ??? ?????.
