這篇文章將為大家詳細講解有關(guān)php導(dǎo)出excel亂碼的解決方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)專注于大英企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。大英網(wǎng)站建設(shè)公司,為大英等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)php導(dǎo)出excel亂碼的解決辦法:首先打開相應(yīng)的PHP代碼文件;然后在處理完數(shù)據(jù)之后,以及輸出excel文件之前添加ob_end_clean函數(shù)即可解決亂碼問題。
php導(dǎo)出excel亂碼
使用PHP導(dǎo)出excel文檔,有時候莫名其妙就會出現(xiàn)導(dǎo)出的數(shù)據(jù)亂碼,現(xiàn)在推薦一個萬能修補大法
話不多說,直接上代碼
核心就是在處理完數(shù)據(jù)之后,輸出excel文件之前 添加 ob_end_clean()函數(shù);具體見示例代碼,此處只羅列部分代碼
foreach ($licenseList as $key => $item) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A' . ($key + 2), $item["company_name"]) ->setCellValue('B' . ($key + 2), $item["user_name"]) ->setCellValue('C' . ($key + 2), $item["order_number"]) ->setCellValue('D' . ($key + 2), $item['apply_type']==2 ? 'official':'trial') ->setCellValue('E' . ($key + 2), $item["license_key"]) ->setCellValue('F' . ($key + 2), $statusArr[$item['license_status']])->setCellValue('G' . ($key + 2), $item["user_email"]) ->setCellValue('H' . ($key + 2), date('y/m/d H:i:s', strtotime($item['insert_time']))); } $objPHPExcel->getActiveSheet()->setTitle('Simple'); $objPHPExcel->setActiveSheetIndex(0); ob_end_clean();//解決亂碼核心 就在此處添加此函數(shù) header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="test_list.xls"'); header('Cache-Control: max-age=0'); header('Cache-Control: max-age=1'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: cache, must-revalidate'); header('Pragma: public'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;
關(guān)于php導(dǎo)出excel亂碼的解決方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。