php excel 導(dǎo)出亂碼有關(guān)問題
Jun 13, 2016 pm 12:00 PM
php excel 導(dǎo)出亂碼問題
/**<br /> * 用于生成excel文件的函數(shù)<br /> * author:walker<br /> * @param $data 生成excel的數(shù)據(jù)(二維數(shù)組形式)<br /> * @param null $savefile 生成excel的文件名(保不指定,則為當(dāng)前時(shí)間戳)<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 /> //若沒有指定文件名則為當(dāng)前時(shí)間戳<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 /> * 導(dǎo)出Excel<br /> */<br /> function expUser(){//導(dǎo)出Excel<br /> $xlstitle = array('id','商品編碼','模板編號(hào)','商品名稱','總庫存','當(dāng)前庫存','供應(yīng)商');<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框架,第二張圖是導(dǎo)出后的效果,哪里出現(xiàn)的問題,怎么解決?
------解決方案--------------------
既然用的是?thinkphp,那么就應(yīng)該是?utf-8?的了
而?PHPExcel?的默認(rèn)字符集也是?utf-8?的
那么為什么要?
$vv?=?iconv("UTF-8",?"GB2312//IGNORE",$vv);
將?utf-8?轉(zhuǎn)成?gb2312?呢?
------解決方案--------------------
看不懂?我沒說清楚嗎?看來你不能接受啟發(fā)式解答
把所有使用?iconv?轉(zhuǎn)碼的語句刪去!
這應(yīng)該明白了吧?
用?PHPExcel?寫到?excel?的必須是?utf-8?編碼的數(shù)據(jù)
這也應(yīng)該明白了吧?
------解決方案--------------------
轉(zhuǎn)為gbk看下,另iconv轉(zhuǎn)火星文和繁體字會(huì)有問題
$vv?=?mb_convert_encoding($vv?=,?"GBK","UTF-8");
------解決方案--------------------
38不需要?jiǎng)h
還不行的話,就貼個(gè)截圖
------解決方案--------------------
對(duì),有轉(zhuǎn)回去了
我前面說了,我單獨(dú)測(cè)試你的代碼段是沒有問題的。
所以問題可能出在別的地方:比如傳入的數(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
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

如果在打開一份需要打印的文件時(shí),在打印預(yù)覽里我們會(huì)發(fā)現(xiàn)表格框線不知為什么消失不見了,遇到這樣的情況,我們就要及時(shí)進(jìn)行處理,如果你的打印文件里也出現(xiàn)了此類的問題,那么就和小編一起來學(xué)習(xí)下邊的課程吧:excel打印表格框線消失怎么辦?1、打開一份需要打印的文件,如下圖所示?! ?、選中所有需要的內(nèi)容區(qū)域,如下圖所示?! ?、單擊鼠標(biāo)右鍵,選擇“設(shè)置單元格格式”選項(xiàng),如下圖所示?! ?、點(diǎn)擊窗口上方的“邊框”選項(xiàng),如下圖所示?! ?、在左側(cè)的線條樣式中選擇細(xì)實(shí)線圖樣,如下圖所示。 6、選擇“外邊框”

在日常辦公中經(jīng)常使用Excel來處理數(shù)據(jù),時(shí)常遇到需要使用“篩選”功能。當(dāng)我們?cè)贓xcel中選擇執(zhí)行“篩選”時(shí),對(duì)于同一列而言,最多只能篩選兩個(gè)條件,那么,你知道excel同時(shí)篩選3個(gè)以上關(guān)鍵詞該怎么操作嗎?接下來,就讓小編為大家演示一遍。第一種方法是將條件逐步添加到篩選器中。如果要同時(shí)篩選出三個(gè)符合條件的明細(xì),首先需要逐步篩選出其中一個(gè)。開始時(shí),可以先根據(jù)條件篩選出姓“王”的員工。然后單擊【確定】,接著在篩選結(jié)果中勾選【將當(dāng)前所選內(nèi)容添加到篩選器】。操作步驟如下所示?! ⊥瑯樱俅畏謩e執(zhí)行篩選

在我們?nèi)粘5墓ぷ鲗W(xué)習(xí)中,從他人處拷貝了Excel文件,打開進(jìn)行內(nèi)容添加或重新編輯后,再保存的有時(shí)候,有時(shí)會(huì)提示出現(xiàn)兼容性檢查的對(duì)話框,非常的麻煩,不知道Excel軟件,可不可改為正常模式呢?那么下面就由小編為大家?guī)斫鉀Q這個(gè)問題的詳細(xì)步驟,讓我們一起來學(xué)習(xí)吧。最后一定記得收藏保存。1、打開一個(gè)工作表,在工作表的名稱中顯示多出來一個(gè)兼容模式,如圖所示。2、在這個(gè)工作表中,進(jìn)行了內(nèi)容的修改后保存,結(jié)果總是彈出兼容檢查器的對(duì)話框,很麻煩看見這個(gè)頁面,如圖所示?! ?、點(diǎn)擊Office按鈕,點(diǎn)另存為,然

e我們經(jīng)常會(huì)用excel來制作一些數(shù)據(jù)表之類的,有時(shí)在輸入?yún)?shù)數(shù)值時(shí)需要對(duì)某個(gè)數(shù)字進(jìn)行上標(biāo)或下標(biāo),比如數(shù)學(xué)公式就會(huì)經(jīng)常用到,那么excel下標(biāo)怎么打出來呢?我們一起來看看詳細(xì)操作步驟:一、上標(biāo)方法:1、首先Excel中輸入a3(3為上標(biāo))。2、選中數(shù)字“3”,右鍵選擇“設(shè)置單元格格式”。3、點(diǎn)擊“上標(biāo)”,然后“確定”即可。4、看,效果就是這樣的。二、下標(biāo)方法:1、與上標(biāo)設(shè)置方法類似,在單元格中輸入“l(fā)n310”(3為下標(biāo)),選中數(shù)字“3”,右鍵選擇“設(shè)置單元格格式”。2、勾選“下標(biāo)”,點(diǎn)擊“確定

在處理數(shù)據(jù)時(shí),有時(shí)我們會(huì)遇到數(shù)據(jù)包含了倍數(shù)、溫度等等各種符號(hào)的時(shí)候,你知道excel上標(biāo)應(yīng)該如何設(shè)置嗎?我們?cè)谑褂胑xcel處理數(shù)據(jù)時(shí),如果不會(huì)設(shè)置上標(biāo),這可是會(huì)讓我們的很多數(shù)據(jù)在錄入時(shí)就會(huì)比較麻煩。今天小編就為大家?guī)砹薳xcel上標(biāo)的具體設(shè)置方法。1.首先,讓我們打開桌面上的MicrosoftOfficeExcel文檔,選擇需要修改為上標(biāo)的文字,具體如圖所示。2.然后,點(diǎn)擊右鍵,在點(diǎn)擊后出現(xiàn)的菜單中,選擇“設(shè)置單元格格式”選項(xiàng),具體如圖所示。3.接下來,在系統(tǒng)自動(dòng)彈出來的“單元格格式”對(duì)話框

在軟件的學(xué)習(xí)中,我們習(xí)慣用excel,不僅僅是因?yàn)樾枰奖悖驗(yàn)樗梢詽M足多種實(shí)際工作中需要的格式,而且excel運(yùn)用起來非常的靈活,有種模式是方便閱讀的,今天帶給大家的就是:excel閱讀模式在哪里設(shè)置。1、打開電腦,然后再打開Excel應(yīng)用,找到目標(biāo)數(shù)據(jù)。2、要想在Excel中,設(shè)置閱讀模式,有兩種方式。第一種:Excel中,有大量的便捷處理方式,分布在Excel中布局中。在Excel的右下角,有設(shè)置閱讀模式的快捷方式,找到十字標(biāo)志的圖案,點(diǎn)擊即可進(jìn)入閱讀模式,在十字標(biāo)志的右邊有一個(gè)小的三

大部分用戶使用Excel都是用來處理表格數(shù)據(jù)的,其實(shí)Excel還有vba程序編寫,這個(gè)除了專人士應(yīng)該沒有多少用戶用過此功能,在vba編寫時(shí)常常會(huì)用到iif函數(shù),它其實(shí)跟if函數(shù)的功能差不多,下面小編給大家介紹下iif函數(shù)的用法。Excel中SQL語句和VBA代碼中都有iif函數(shù)。iif函數(shù)和excel工作表中的IF函數(shù)用法相似,執(zhí)行真假值判斷,根據(jù)邏輯計(jì)算的真假值,返回不同結(jié)果。IF函數(shù)用法是(條件,是,否)。VBA中的IF語句和IIF函數(shù),前者IF語句是控制語句可以根據(jù)條件執(zhí)行不同的語句,后者

1、打開PPT,翻頁至需要插入excel圖標(biāo)的頁面。點(diǎn)擊插入選項(xiàng)卡。2、點(diǎn)擊【對(duì)象】。3、跳出以下對(duì)話框。4、點(diǎn)擊【由文件創(chuàng)建】,點(diǎn)擊【瀏覽】。5、選擇需要插入的excel表格。6、點(diǎn)擊確定后跳出如下頁面。7、勾選【顯示為圖標(biāo)】。8、點(diǎn)擊確定即可。
