原文链接地址: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);

     }

 }

 ?>

php 导出数据到excel类的更多相关文章

  1. C#导出数据到Excel通用的方法类

    导出数据到Excel通用的方法类,请应对需求自行修改. 资源下载列表 using System.Data; using System.IO; namespace IM.Common.Tools { p ...

  2. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  3. 使用Open xml 操作Excel系列之二--从data table导出数据到Excel

    由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...

  4. MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

    导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...

  5. php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法

    而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格 ...

  6. 从数据库导出数据到excel之POI操作

    项目说明: 1:数据库中有两张表,主键关联 2:根据条件查询数据 3:处理为需要的数据封装类型,然后传到导出excel的方法中 <--框架部署就不详谈了,用的spring框架--> 补充: ...

  7. 导出数据到Excel表格

    开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,作者:陈鸿鹏撰写时间:2019年5月25日123下面是我们来学习的导出数据到Excel表格的总结首先在视图层写导出数据的点击 ...

  8. 手把手教你springboot中导出数据到excel中

    手把手教你springboot中导出数据到excel中 问题来源: 前一段时间公司的项目有个导出数据的需求,要求能够实现全部导出也可以多选批量导出(虽然不是我负责的,我自己研究了研究),我们的项目是x ...

  9. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

随机推荐

  1. P2114 [NOI2014]起床困难综合症【二进制运算+优化】

    起床困难综合症[二进制运算+优化] 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过 ...

  2. Python并发编程理论篇

    Python并发编程理论篇 前言 其实关于Python的并发编程是比较难写的一章,因为涉及到的知识很复杂并且理论偏多,所以在这里我尽量的用一些非常简明的语言来尽可能的将它描述清楚,在学习之前首先要记住 ...

  3. 接口&&多态&&构造函数&&关键字

    day06 抽象类的局限性(与接口的区别) 抽象类可以定义非抽象方法,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;jdk1.8之后接口可以包含默认方法. 一个类只能继承一个直接父类 ...

  4. mysql主从搭建操作

    1.搭建说明准备工作:主从库已安装mysql软件以及xtracbackup备份工具.具体操作可参见mysql rpm安装文档. 介质 版本操作系统 Red Hat Enterprise Linux S ...

  5. 03.springboot 整合RabbitMQ

    1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  6. 通过手写服务器的方式,立体学习Http

    前言 Http我们都已经耳熟能详了,而关于Http学习的文章网上有很多,各个知识点的讲解也可说是深入浅出.然而,学习过后,我们对Http还是一知半解.问题出在了哪? Http是一个客户机与服务器之间的 ...

  7. CSS学习之选择器优先级与属性继承

    CSS学习之选择器优先级与属性继承 选择器优先级 其实选择器是具有优先级的,我们来看下面这一组案例: <!DOCTYPE html> <html lang="en" ...

  8. Python split分割字符串

    s = input(); str = s.split("-") print("{}+{}".format(str[0],str[-1]))

  9. 论TEMP临时变量与VAR静态变量

    TEMP临时变量:顾名思义,这种变量类型是临时的,没有固定的存放数据的内存空间.每次扫描结束后则清零,在下个扫描周期开始时,这个变量的值都是不确定的,一般为0.使用临时变量需要遵循一个原则:先赋值再使 ...

  10. 目录(Python基础)

    Python之介绍.基本语法.流程控制 Python之列表.字典.集合 Python之函数.递归.内置函数 Python之迭代器.装饰器.软件开发规范 Python之常用模块学习(一) Python之 ...