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
一个PHP模板,主要想体现一下思路
Dec 25 PHP
在任意字符集下正常显示网页的方法一
Apr 01 PHP
PHP数据类型的总结分析
Jun 13 PHP
sql注入与转义的php函数代码
Jun 17 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
Laravel实现短信注册的示例代码
May 29 PHP
php命令行写shell实例详解
Jul 19 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
PHP 文件缓存的性能测试
2010/04/25 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PDO::errorInfo讲解
2019/01/28 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
jquery处理json对象
2014/11/03 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
小程序自定义日历效果
2018/12/29 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
flask框架路由常用定义方式总结
2019/07/23 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
企业理念标语
2014/06/09 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
四则混合运算教学反思
2016/02/23 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS