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函数
Oct 09 PHP
smtp邮件发送一例
Oct 09 PHP
PHP性能优化 产生高度优化代码
Jul 22 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php比较两个绝对时间的大小
Jan 31 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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守护另一个php进程的例子
2015/02/13 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
$()JS小技巧
2007/07/21 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
一份文言文检讨书
2014/09/13 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
化工见习报告范文
2014/10/31 职场文书
初二数学教学反思
2016/02/17 职场文书
高中数学教学反思范文
2016/02/18 职场文书
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android