Codeigniter+PHPExcel实现导出数据到Excel文件


Posted in PHP onJune 12, 2014

PHPExcel是用来操作OfficeExcel文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格。而Codeigniter是一个功能强大的PHP框架。二者结合就能起到非常棒的效果啦!

1.准备工作

下载PHPExcel:http://phpexcel.codeplex.com
这是个强大的Excel库,这里只演示导出Excel文件的功能,其中的大部分功能可能都用不着。

2.安装PHPExcel到Codeigniter

1)解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:
--application\libraries\PHPExcel.php
--application\libraries\PHPExcel(文件夹)
2)修改application\libraries\PHPExcel\IOFactory.php文件
--将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则。
--将其构造函数改为public

3.安装完毕,写一个导出excel的控制器(Controller)

代码如下:

<?php
classTable_exportextendsCI_Controller{
    function__construct()
    {
        parent :: __construct();
        // Hereyoushouldaddsomesortofuservalidation
        // topreventstrangersfrompullingyourtabledata
    }
    functionindex($table_name)
    {
        $query = $this -> db -> get($table_name);
        if(!$query)
            returnfalse;
        // StartingthePHPExcellibrary
        $this -> load -> library('PHPExcel');
        $this -> load -> library('PHPExcel/IOFactory');
        $objPHPExcel = newPHPExcel();
        $objPHPExcel -> getProperties() -> setTitle("export") -> setDescription("none");
        $objPHPExcel -> setActiveSheetIndex(0);
        // Fieldnamesinthefirstrow
        $fields = $query -> list_fields();
        $col = 0;
        foreach($fieldsas$field)
        {
            $objPHPExcel -> getActiveSheet() -> setCellValueByColumnAndRow($col, 1, $field);
            $col++;
            }
        // Fetchingthetabledata
        $row = 2;
        foreach($query -> result()as$data)
        {
            $col = 0;
            foreach($fieldsas$field)
            {
                $objPHPExcel -> getActiveSheet() -> setCellValueByColumnAndRow($col, $row, $data -> $field);
                $col++;
                }
            $row++;
            }
        $objPHPExcel -> setActiveSheetIndex(0);
        $objWriter = IOFactory :: createWriter($objPHPExcel, 'Excel5');
        // Sendingheaderstoforcetheusertodownloadthefile
        header('Content-Type:application/vnd.ms-excel');
        header('Content-Disposition:attachment;filename="Products_' . date('dMy') . '.xls"');
        header('Cache-Control:max-age=0');
        $objWriter -> save('php://output');
        }
    }


4.测试

加入数据库有表名为products,此时可以访问http://www.yoursite.com/table_export/index/products导出Excel文件了。
PHP 相关文章推荐
Email+URL的判断和自动转换函数
Oct 09 PHP
PHP一些常用的正则表达式字符的一些转换
Jul 29 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
php在线代理转向代码
May 05 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
php实现mysql事务处理的方法
Dec 25 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
PHP控制循环操作的时间
Apr 01 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 #PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 #PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 #PHP
You might like
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
PHP 数组教程 定义数组
2009/10/23 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
用Python进行行为驱动开发的入门教程
2015/04/23 Python
编写Python CGI脚本的教程
2015/06/29 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
Python print不能立即打印的解决方式
2020/02/19 Python
python中如何写类
2020/06/29 Python
零基础学python应该从哪里入手
2020/08/11 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
自我评价个人范文
2013/12/16 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
Python函数式编程中itertools模块详解
2021/09/15 Python