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 字符串函数收集
Mar 29 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
php面向对象值单例模式
May 03 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
PHP扩展安装方法步骤解析
Nov 24 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
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
js函数般调用正则
2008/04/08 Javascript
jQuery 使用手册(二)
2009/09/23 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
js单例模式的两种方案
2013/10/22 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
python+selenium开发环境搭建图文教程
2017/08/11 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
实习自我鉴定模板
2013/09/28 职场文书
追悼会子女答谢词
2014/01/28 职场文书
装配出错检讨书
2014/09/23 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
佛光寺导游词
2015/02/10 职场文书
教你如何用cmd快速登录服务器
2022/06/10 Servers