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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
PHP 事件机制(2)
Mar 23 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
php中spl_autoload详解
Oct 17 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
详解PHP PDO简单教程
May 28 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
实例解析php的数据类型
2018/10/24 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python随机生成彩票号码的方法
2015/03/05 Python
Python抓取百度查询结果的方法
2015/07/08 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
Python生成数字图片代码分享
2017/10/31 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
浅谈django的render函数的参数问题
2018/10/16 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
优秀员工自荐书
2013/12/19 职场文书
反邪教标语
2014/06/23 职场文书
店面出租协议书范本
2014/11/28 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL