PHPはExcelの少しの小さい経験を書き出して文字化けの問題を解決します

5986 ワード

私はPHPプロジェクトでデータをExcelにエクスポートするように要求し、データには中国語が含まれています.
ネット上で大体理解してしかし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