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 相关文章推荐
php学习 字符串课件
Jun 15 PHP
php记录日志的实现代码
Aug 08 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
php获取图片信息的方法详解
Dec 10 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 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 dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
PHP制作万年历
2015/01/07 PHP
PHP常用的小程序代码段
2015/11/14 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
python数据结构之链表详解
2017/09/12 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
博士生入学考试推荐信
2013/11/17 职场文书
医学求职信
2014/05/28 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL