您的位置:首页 > 编程语言 > PHP开发

php导出数据到excel

2010-11-18 11:10 357 查看
系统在台湾,香港,大陆都使用,录入资料的时候有繁体,简体,英文.所以在开发的时候页面编码和数据库编码都统一为utf-8.但数据导出excel时候却出现了乱码~~~环境为PHP=>5.2.5,mysql=>5.0,Apache 2.0,excel2003.解决过程如下:

<?php

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:attachment;filename=test_data.xls"); //在此设置导出数据文件名称

header("content-Type=text/html;charset='utf-8'");

$th= "姓名"."\t"."年龄"."\t"."学历"."\t\n"; //输出表头.这里的\t \n 要写在双引号里面,单引号的放PHP会直接输入里面的字符.\t表示一个单元格.\n表示换行.

$tr1='张三'."\t".'20'."\t".'本科'."\t\n";

$tr2='李四'."\t"."24\t".'在讀研究生'."\t\n"; //这里有繁体内容

//不作任何处理,直接输出内容将整个文件都是乱码

echo $th.$tr1.$tr2;

//将编码转换为gb2312,简体中文内容正常,但繁体内容会被截断。

echo iconv('UTF-8','gb2312',$th);

echo iconv('UTF-8','gb2312',$tr1);

echo iconv('UTF-8','gb2312',$tr2);

//将编码转换为UTF-8,这纯属是本人蛋疼之举,结果可想而知,问题依然在O(∩_∩)O哈哈~。

echo iconv('UTF-8','UTF-8',$th);

echo iconv('UTF-8','UTF-8',$tr1);

echo iconv('UTF-8','UTF-8',$tr2);

//经过以上蛋疼之后,不再转big5了,但为什么在excel中UTF8都显示为乱码呢?最后想审判结果为 excel不支持UTF8编码。。。法官是本人哈哈,那么如何在excel中兼容繁简体呢?直接在excel中打繁体和简体都显示正常的啊,肯定有办法解决的。在愣几分钟后,偶敲下了如下代码,额的神啊 居然解决鸟\(^o^)/~

echo iconv('UTF-8','GBK',$th);

echo iconv('UTF-8','GBK',$tr1);

echo iconv('UTF-8','GBK',$tr2);

//这样解决的话,以后兼容繁简体网页时,能不能用GBK替代UTF-8呢?如果可以的话是不是可以直接输出就可以了呢?

?>
本文出自 “ezonemax--胡侃出真知” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: