写道
Phpexcel导出Excel文件时有两个主要的过程:
1、定义文件名
2、填充Excel数据
这两个过程中可能会出现一些乱码问题,下面我来说一下解决办法:
解决文件名的乱码:
乱码原因:客户使用的中文版Windows系统平台,而Windows平台的文件名编码为gb2312(gbk),而我们网页编码为了跟进现存潮流一般都采用utf-8(国际化)编码,这时当我们:header("Content-Disposition: inline; filename=\"" . $filename . ".xls-:special:1:-")时就会出现乱码,假如你的网页编码就是gb2312那就不用考虑编码问题了。
解决办法:对$filename转码,执行:iconv('utf-8", "gb2312", $filename)。假如你的环境不支持iconv函数可以换别的函数,只要能将$filename的编码转为gbk就行。
但是这样问题又会来了,linux用户又会出现文件名乱码(因为linux平台文件名不是gbk编码)。
考虑到这个问题我采用两个办法:第一:放弃一部分客户,毕竟windows系统用户占绝大部分。第二:像gmail一样,提供两个下载地址。一个文件名gbk编码,一个文件名utf-8编码。
解决Excel内数据乱码:
乱码原因:网页编码与Excel编码不一致。
解决办法:既然编码不一致,那让其一致了就OK了。定义Excel的字符集:header("Content-Type: application/vnd.ms-excel; charset=UTF-8"),看到charset=UTF-8了吧,让其与您网页编码一致即可解决Excel内数据乱码的问题了,这个比较简单!
<?
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Transfer-Encoding: binary");
header("Content-type:application/vnd.ms-excel");
//面向windows用户,linux则乱啦
$fileName = iconv("utf-8", "GBK",'中文名称');
header("Content-Disposition:attachment;filename=".$fileName.".xls");
//正文
echo iconv("utf-8", "GBK","excel正文\t分割\n换行");
个人觉得这不是最终的方法,还得思考寻找... ...
分享到:
相关推荐
PHP导出Excel (注:导出带图片的EXCEL也支持),已修正保存到本地不能打开已经乱码的问题,具体内容可参照文件中demo.php有详细说明。
php导出excel文件
php 导出 excel 类文件(包含使用实例)
php导出excel文件,csv,xls.
介绍一个php导出excel类,设置编码,标题栏,内容栏,页面编码,Excel文件的编码,生成并自动下载Excel,标题栏数组,内容数组。
php 导出excel php导入excel
php根据excel模板导出excel并合并单元格,根据模板导出会少写很多样式的代码,非常方便
后台php读取数据,提供PHP导出csv压缩包文件的表格,提供压缩打包下载
php导出excel实例 一个详细的导出excel2007实例
PHP导出Excel ,已修正保存到本地不能打开已经乱码的问题,具体内容可参照文件中demo.php有详细说明。(注:无法导出图)——
PHP导出数据到excel,直接链接到MYSQL数据库
php导出excel表格,
php导出excel文档,相关代码组建,已经测试通过了。可共学习使用。
php导出excel 一数组的方式 数组的形式导入excel
引用phpexcel 导出带有背景颜色的excel,自定义背景颜色
使用thinkphp导入导出excel数据
本文实例讲述了PHP实现导出excel数据的类库用法,结合实例形式分析了php操作Excel数据的读取与导出操作相关实现技巧,需要的朋友可以参考下,类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。
php输出excel php生成excel_.docx
php电子表格 导入/导出excel实例 php电子表格 导入/导出excel实例 php电子表格 导入/导出excel实例 php电子表格 导入/导出excel实例