基于PHP导出Excel的小经验 完美解决乱码问题


Posted in PHP onJune 10, 2013

我在PHP项目里要求把数据导出为Excel,并且数据中包含中文.
网上大概了解一下可是使用PHPExcel,可是相对我的需求,这个框架太复杂了.于是还是想找找简单做法.
网上发现其实最简单可以这样写,但问题是这种做法中文的编码不可靠..

<?php 
 header("Content-type:application/vnd.ms-excel"); 
 header("Content-Disposition:attachment;filename=export_data.xls"); 
 echo   "姓名"."\t";  
 echo   "繁?"."\t";  
 echo   "博客"."\t";  
 echo   "\n";  
 echo   "jason"."\t";  
 echo   "@"."\t";  
 echo   "javaeye"."\t";  
 ?>

有些同学会想到header加入字符集
header("Content-type:application/vnd.ms-excel;charset=UTF-8");

问题: 这里只是告诉浏览器要选什么字符集查看,最终我的需求还是要生成xls文件.
当然.有些同学还会想到用iconv转码.
echo iconv("当前编码","GB18030","此博客来源于javaeye,by jason");

问题: 这样文件里的汉字编码就GB18030,可是Excel这么知道用什么编码打开呢?只能完全依赖OS默认.可是如果碰到繁体BIG5这么办,还是会乱码. 所以还是不靠谱.
最后我采用phpMyAdmin的做法.用HTMLExcel, HTML我们比较熟悉,格式如下.
<html xmlns:o="urn:schemas-microsoft-com:office:office" 
 xmlns:x="urn:schemas-microsoft-com:office:excel" 
 xmlns="http://www.w3.org/TR/REC-html40"> 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html> 
     <head> 
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> 
         <style id="Classeur1_16681_Styles"></style> 
     </head> 
     <body> 
         <div id="Classeur1_16681" align=center x:publishsource="Excel"> 
             <table x:str border=0 cellpadding=0 cellspacing=0 width=100% style="border-collapse: collapse"> 
                 <tr><td class=xl2216681 nowrap>1234</td><td class=xl2216681 nowrap>Robbin会吐口水</td></tr> 
                <tr><td class=xl2216681 nowrap>5678</td><td class=xl2216681 nowrap>javaeye网站</td></tr> 
             </table> 
         </div> 
     </body> 
 </html>

这下可以直接echo了,又不需要iconv转码,只要设置好HTML里的Content-type(这里用的是UTF-8),是不是有舒服的感觉呢? 当然header还是要加上
header("Content-type:application/vnd.ms-excel"); 
 header("Content-Disposition:attachment;filename=export_data.xls");

一点小经验和各位同学分享一下..
PHP 相关文章推荐
PHP的面向对象编程
Oct 09 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
php 常用算法和时间复杂度
Jul 01 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
php生成验证码函数
Oct 20 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
php实现的中文分词类完整实例
Feb 06 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 #PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 #PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 #PHP
php防注入,表单提交值转义的实现详解
Jun 10 #PHP
PHP获取当前页面完整URL的实现代码
Jun 10 #PHP
如何判断php数组的维度
Jun 10 #PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 #PHP
You might like
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php include,include_once,require,require_once
2008/09/05 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
express.js中间件说明详解
2019/03/19 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
python线程池threadpool使用篇
2018/04/27 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
ASP.NET Core中的配置详解
2021/02/05 Python
大学生学年自我鉴定
2014/02/10 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
建议书范文
2015/02/05 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python