Codeigniter+PHPExcel实现导出数据到Excel文件

   2015-10-13 0
核心提示:PHPExcel是用来操作OfficeExcel文档的一个PHP类库,Codeigniter是一个功能强大的PHP框架。二者结合就能起到非常棒的效果,需要的朋友可以参考下

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文件了。

 
标签: Codeigniter PHPExcel
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Codeigniter中禁止A Database Error Occurred及
    页面出现如下两种错误提示:A PHP Error was encounteredSeverity: NoticeMessage: Trying to get property of non-objectFilename: XXXXXLine Number: 67A Database Error OccurredError Number: 1064You have an error in your SQL syntax; check the manua
    02-09
  • CodeIgniter 3.1.3 发布,PHP 的 MVC 框架
    CodeIgniter 3.1.3 发布了,CodeIgniter 是一个简单快速的 PHP MVC 框架。该版本带来了一些关键的安全性修复,以及许多的错误修复。安全:修复了电子邮件的处理问题,XSS 漏洞以及一些 CSRF 强化 Bug 修复:针对数据库,电子邮件,文件上传,图像处理,输入,
  • 管理你的应用程序
    管理你的应用程序http://codeigniter.org.cn/user_guide/general/managing_apps.html默认情况下,CodeIgniter 假设你只有一个应用程序,被放置在application/目录下。但是,你完全可以拥有多个程序并让 它们共享一份 CodeIgniter 。你甚至也可以对你的应用程
  • CodeIgniter源码阅读笔记
    入口文件index.php中主要定义了一些全局路径变量如BASEPATH和APPPATH这种常用的变量并且可以配置代码的部署环境,最后require真正的核心文件CodeIgniter.phpCodeIgniter.php位于system/core/目录下,该文件是最主要的核心文件,他负责引入全局需要用到的一些
  • CodeIgniter 3.1.1 发布,PHP 的 MVC 框架
    CodeIgniter 3.1.1 发布了,CodeIgniter 是一个简单快速的PHP MVC 框架。改变: Added E_PARSE to the list of error levels detected by the shutdown handler.BUG修复: Fixed a bug (#4732) - :doc:`Session Library libraries/sessions` triggered errors
  • CodeIgniter 3.1.2 发布,PHP 的 MVC 框架
    CodeIgniter 3.1.2 发布了,CodeIgniter 是一个简单快速的PHP MVC 框架。改进内容:改变:SecurityFixed a number of new vulnerabilities in :doc:`Security Library libraries/security` method xss_clean() . General ChangesAllowed PHP 4-style construc
  • CodeIgniter 4 建议路线图
    CodeIgniter 4 建议路线图
    作者: Lonnie Ezell (CI 理事会成员)翻译: Hex 原文:CodeIgniter 4 Proposed Roadmap原文发表于 2015 年 8 月 5 日 ,截止目前 CI 4 正在开发中,尚未发布 ******************* 分割线 *******************我们综合考虑了社区的愿望和意见后,也对什么样的未
    10-31 CodeIgniter
  • Codeigniter ACL library
    以下是代码片段:以下是代码片段:?phpif(!defined('BASEPATH'))exit('No direct script access allowed');/*** MX_ACL - Access Control Library PHP5** Notes:* $config['cache_path'] must be set** Install this file as application/libraries/MX_ACL.ph
    10-31 CodeIgniter
  • CodeIgniter生成静态页的方法
    本文实例讲述了CodeIgniter生成静态页的方法。分享给大家供大家参考,具体如下:现在我们来开发如何让CI框架生成静态页面.下面直接帖代码:$this-output-get_output();使用这个方法,你可以可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型
    09-08 CodeIgniter
  • 翻译:CodeIgniter框架在PHPStorm中实现自动完
    在使用CI框架的过程中,因为调用的方式不是原生的PHP方式是在CodeIgniter的基础上进行开发。没有自动完成功能,这对编程来说是非常不方便的。如代码:$this-load-view('index'); 这时候我们把鼠标移动到load上并没有智能提示和查看定义的功能。为了解决这个问
点击排行