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的5个入手程序
Nov 23 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
phpstudy2020搭建站点的实现示例
Oct 30 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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 正则 过滤html 的超链接
2009/06/02 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
php自动加载代码实例详解
2021/02/26 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
Python语言进阶知识点总结
2019/05/28 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
Python colormap库的安装和使用详情
2020/10/06 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
学校消防安全制度
2014/01/30 职场文书
产品发布会策划方案
2014/05/12 职场文书
社区创先争优承诺书
2014/08/30 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
Python制作春联的示例代码
2022/01/22 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle