php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
使用phpexcel類庫導出excel文件,文件名為中文時,在chrome瀏覽器下導出正常,在IE內核瀏覽器下導出文件名顯示亂碼,解決辦法就是通過iconv函數轉換編碼,從utf-8轉為gb2312,具體代碼如下:
publicfunctionexportExcel($expTitle,$expCellName,$expTableData){ ????$xlsTitle=iconv('utf-8','gb2312',$expTitle);//文件名稱,防止中文亂碼 ????$fileName=$expTitle.date('_YmdHis');//自定義導出文件的中文名稱 ????$fileName=iconv('utf-8','gb2312',$fileName);//顯示的導出文件名稱,如果不加這句則中文文件名亂碼 ????$cellNum=count($expCellName); ????$dataNum=count($expTableData); ????$objPHPExcel=newPHPExcel(); ????$cellName=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ'); ????$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'); ????$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$expTitle.'?Exporttime:'.date('Y-m-dH:i:s')); ????for($i=0;$isetActiveSheetIndex(0)->setCellValue($cellName[$i].'2',$expCellName[$i][1]); ????} ????//Miscellaneousglyphs,UTF-8 ????for($i=0;$igetActiveSheet(0)->setCellValue($cellName[$j].($i+3),$expTableData[$i][$expCellName[$j][0]]); ????????} ????} ????ob_end_clean();//用來清除緩沖區防止導出的excel文件內容亂碼 ????header('pragma:public'); ????header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"'); ????header("Content-Disposition:attachment;filename=$fileName.xls"); ????$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); ????$objWriter->save('php://output'); ????exit; }
總結
以上是生活随笔為你收集整理的php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 使用 go函数指针,golang
- 下一篇: 语音聊天室 html,聊天室 - HTM