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 相关文章推荐
如何开发一个虚拟域名系统
Oct 09 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
laravel批量生成假数据的方法
Oct 09 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
TP5框架简单登录功能实现方法示例
Oct 31 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
解析php入库和出库
2013/06/25 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
JS实现星星海特效
2019/12/24 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python游戏地图最短路径求解
2019/01/16 Python
Django stark组件使用及原理详解
2019/08/22 Python
python用Configobj模块读取配置文件
2020/09/26 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
初中校园广播稿
2014/02/02 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书