PHPはExcelの少しの小さい経験を書き出して文字化けの問題を解決します
5986 ワード
私はPHPプロジェクトでデータをExcelにエクスポートするように要求し、データには中国語が含まれています.
ネット上で大体理解してしかしPHPExcelを使って、しかし私の需要に対して、このフレームワークはとても複雑です.そこでやはり简単な方法を探したいです.
ネット上で発見して実は最も簡単にこのように書くことができて、しかし問題はこのようなやり方の中国語の符号化が信頼できないことです..
一部の学生はヘッダーに文字セットを追加したいと思っています
質問:ここでは、ブラウザがどの文字セットを選択して表示するか、最終的に私のニーズはxlsファイルを生成するかを示すだけです.
もちろんです.一部の学生はiconvでコードを転送したいと思っています.
質問:これでファイルの漢字コードはGB 18030ですが、Excelはどんなコードで開くか知っていますか.OSのデフォルトに完全に依存するしかない.しかし、繁体字BIG 5に遭遇すると、やはり文字化けしてしまいます.だから頼りにならない.
最後にphpMyAdminのやり方を採用しました.HTML Excelで、HTMLはよく知っています.フォーマットは以下の通りです.
これで直接echoできるし、iconvトランスコードもいらないし、HTMLのContent-type(ここではUTF-8を使っています)をセットすれば、気持ちがいいのではないでしょうか.もちろんヘッドには
少しの小さい経験は各位の学友と少し分かち合います...
原文住所:http://fghost.iteye.com/blog/859325
ネット上で大体理解してしかしPHPExcelを使って、しかし私の需要に対して、このフレームワークはとても複雑です.そこでやはり简単な方法を探したいです.
ネット上で発見して実は最も簡単にこのように書くことができて、しかし問題はこのようなやり方の中国語の符号化が信頼できないことです..
01
<?php
02
header(
"Content-type:application/vnd.ms-excel"
);
03
header(
"Content-Disposition:attachment;filename=export_data.xls"
);
04
05
echo
" "
.
"\t"
;
06
echo
" "
.
"\t"
;
07
echo
" "
.
"\t"
;
08
echo
"
"
;
09
echo
"jason"
.
"\t"
;
10
echo
"@"
.
"\t"
;
11
echo
"javaeye"
.
"\t"
;
12
?>
一部の学生はヘッダーに文字セットを追加したいと思っています
1
header(
"Content-type:application/vnd.ms-excel;charset=UTF-8"
);
質問:ここでは、ブラウザがどの文字セットを選択して表示するか、最終的に私のニーズはxlsファイルを生成するかを示すだけです.
もちろんです.一部の学生はiconvでコードを転送したいと思っています.
1
echo
iconv(
" "
,
"GB18030"
,
" javaeye,by jason"
);
質問:これでファイルの漢字コードはGB 18030ですが、Excelはどんなコードで開くか知っていますか.OSのデフォルトに完全に依存するしかない.しかし、繁体字BIG 5に遭遇すると、やはり文字化けしてしまいます.だから頼りにならない.
最後にphpMyAdminのやり方を採用しました.HTML Excelで、HTMLはよく知っています.フォーマットは以下の通りです.
01
<
html
xmlns:o
=
"urn:schemas-microsoft-com:office:office"
02
xmlns:x
=
"urn:schemas-microsoft-com:office:excel"
03
xmlns
=
"http://www.w3.org/TR/REC-html40"
>
04
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
05
<
html
>
06
<
head
>
07
<
meta
http-equiv
=
"Content-type"
content
=
"text/html;charset=UTF-8"
/>
08
<
style
id
=
"Classeur1_16681_Styles"
></
style
>
09
</
head
>
10
<
body
>
11
<
div
id
=
"Classeur1_16681"
align
=
center
x:publishsource
=
"Excel"
>
12
<
table
x:str
border
=
0
cellpadding
=
0
cellspacing
=
0
width
=
100
%
style
=
"border-collapse: collapse"
>
13
<
tr
><
td
class
=
xl2216681
nowrap>1234</
td
><
td
class
=
xl2216681
nowrap>Robbin </
td
></
tr
>
14
<
tr
><
td
class
=
xl2216681
nowrap>5678</
td
><
td
class
=
xl2216681
nowrap>javaeye </
td
></
tr
>
15
</
table
>
16
</
div
>
17
</
body
>
18
</
html
>
これで直接echoできるし、iconvトランスコードもいらないし、HTMLのContent-type(ここではUTF-8を使っています)をセットすれば、気持ちがいいのではないでしょうか.もちろんヘッドには
1
header(
"Content-type:application/vnd.ms-excel"
);
2
header(
"Content-Disposition:attachment;filename=export_data.xls"
);
少しの小さい経験は各位の学友と少し分かち合います...
原文住所:http://fghost.iteye.com/blog/859325