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--胡侃出真知” 博客,转载请与作者联系!
<?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--胡侃出真知” 博客,转载请与作者联系!
相关文章推荐
- PHPExcel导出mysql数据库数据
- PHP----从数据库导出数据到表格:PHPExcel
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- PHP将Excel导入数据库及数据库数据导出至Excel的方法 亲测
- PHPexcel数据库导出数据实例
- PHP将数据导出Excel表中(投机型)
- PHP将操作数据库得到的数据生成Excel导出
- PHP导出数据到EXCEL,防止以0开头的大数字变成科学计数
- php 导出数据到 Excel
- 使用PHP导入Excel和导出数据为Excel文件
- PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1
- PHPExcel导出大量数据超时及内存错误解决方法
- php导出数据到excel, 防止0开头的数字掉失
- php、mysql导出excel数据
- phpexcel导出数据,用数组遍历导出表头
- PHPExcel数据导出
- laravel框架实现excel表格数据导入导出-php
- PHP导出MySQL数据到Excel文件
- PHPEXCEL 导出数据加图片
- PHP 导出 Excel 表格数据 方法