最近用 PHP 輸出 Excel 檔案,為了偷懶沒有採用 Excel API (像是phpExcel) 進行處理。而是利用 <Tab> 與換行來產生 Excel 能夠開啟的檔案,但是遇到一個問題,就是中文會變成亂碼。原因是這種偷懶的方法必須在檔頭自行加入 BOM,然而加入 BOM 可以在資料輸出以前加入 EF BB BF 即可。如此便可以解決中文亂碼的問題,程式範例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Header('Content-Description: File Transfer');
Header('Content-type: application/vnd.ms-excel');
Header('Content-Disposition: attachment; filename=result.xls');
Header('Content-Transfer-Encoding: binary');
Header('Expires: 0');
Header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
Header('Pragma: public');
$cloumns=array('中文欄位(1)','中文欄位(2)','中文欄位(3)');
$rows=array(
array('Row_1_1','Row_1_2','Row_1_3'),
array('Row_2_1','Row_2_2','Row_2_3'),
);
//加入 BOM 送出 EF BB BF
echochr(239).chr(187).chr(191);
//產生標頭
foreach($cloumnsas$name){
echo$name."\t";
}
echo"\r\n";
//產生欄位
foreach($rowsas&$row){
foreach($rowas$value){
echo$value."\t";
}
echo"\r\n";
}
echo"\r\n";
exit(0);
|
文章標籤
全站熱搜