原文链接地址:http://www.oschina.net/code/snippet_212240_21885

标注:在使用时一定要屏蔽掉//$bodyVal = $this->charset($bodyVal);,不然传到里面的中文变量输不出来,这个应该是转换编码格式的。

 <?php

 /**

  * 导出到excel文件(一般导出中文的都会乱码,需要进行编码转换)

  * 使用方法如下

  * $excel = new Excel();

  * $excel->addHeader(array('列1','列2','列3','列4'));

  * $excel->addBody(

             array(

                 array('数据1','数据2','数据3','数据4'),

                 array('数据1','数据2','数据3','数据4'),

                 array('数据1','数据2','数据3','数据4'),

                 array('数据1','数据2','数据3','数据4')

             )

         );

  * $excel->downLoad();

  */

 class Excel{

     private $head;

     private $body;

     /**

      * 

      * @param type $arr 一维数组

      */

     public function addHeader($arr){

         foreach($arr as $headVal){

             $headVal = $this->charset($headVal);

             $this->head .= "{$headVal}\t ";

         }

         $this->head .= "\n";

     }

     /**

      * 

      * @param type $arr 二维数组

      */

     public function addBody($arr){

         foreach($arr as $arrBody){

             foreach($arrBody as $bodyVal){

                 //$bodyVal = $this->charset($bodyVal);

                 $this->body .= "{$bodyVal}\t ";

             }

             $this->body .= "\n";

         }

     }

     /**

      * 下载excel文件

      */

     public function downLoad($filename=''){

         if(!$filename)

             $filename = date('YmdHis',time()).'.xls';

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

         header("Content-Disposition:attachment;filename=$filename"); 

         header("Content-Type:charset=gb2312");

         if($this->head)

             echo $this->head;

         echo $this->body;

     }

     /**

      * 编码转换

      * @param type $string

      * @return string

      */

     public function charset($string){

         return iconv("utf-8", "gb2312", $string);

     }

 }

 ?>

最新文章

  1. Java上等价类划分测试的实现
  2. H5(二)
  3. 传输层协议TCP和UDP
  4. 10款最新流行的 jQuery 插件,值得你收藏
  5. 对于C(n,k)取模
  6. 【poj1112】 Team Them Up!
  7. 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
  8. 你需要知道的Sass插值
  9. 【学习笔记】Xcode常见设置
  10. PHP session过期时间
  11. SQL Server 存储过程分页
  12. 单线多拨,傻瓜式openwrt单线多拨叠加速率教程
  13. Direct3D 光照和材质
  14. HDU1506(单调栈或者DP) 分类: 数据结构 2015-07-07 23:23 2人阅读 评论(0) 收藏
  15. ThinkPHP创建应用的一般开发流程
  16. 从java1到java9每个版本都有什么新特性?
  17. 了解 Python 语言中的时间处理
  18. CentOS 7 Squid代理服务器正向代理-透明代理
  19. VIM快速复制多行
  20. Python-HTML转义字符

热门文章

  1. Python之浅谈运算符
  2. 线程的创建方式以及synchronize的使用
  3. Linux 文件类型 ,文件权限
  4. Docker中提交任务到Spark集群
  5. Mybatis架构相关的知识
  6. 每日一题 - 剑指 Offer 30. 包含min函数的栈
  7. css自动省略号...,通过css实现单行、多行文本溢出显示省略号
  8. 「树形DP」洛谷P2607 [ZJOI2008]骑士
  9. Windows下的Linux系统
  10. 微信网页授权access_token和普通access_token爬坑