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实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
php插件Xajax使用方法详解
Aug 31 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 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实例根据邮编自动完成地址信息
2008/11/23 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
DWR Ext 加载数据
2009/03/22 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
ptyhon实现sitemap生成示例
2014/03/30 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
Python中list初始化方法示例
2016/09/18 Python
python 实现多维数组转向量
2019/11/30 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
python try...finally...的实现方法
2020/11/25 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
市场营销计划书
2019/04/24 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
Django中session进行权限管理的使用
2021/07/09 Python