首先:下载好PHPExcel类库文件

视图层:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title></title>
</head>
<body>
    <form action="<?php echo site_url('admin/excel/import_pro') ?>" method='post' enctype="multipart/form-data" >
     <input type="file" name='file_stu' />
     <input type="submit" value='导入' />
    </form>
</body>
</html>

控制器:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Excel extends CI_Controller{
    function __construct()
    {
        parent::__construct();
        //$this->load->library('PHPExcel');
        //$this ->load ->library('PHPExcel/IOFactory');
    }
    //从数据表导出到excel
    public function export($table_name){
        $query = $this -> db -> get($table_name);
        //print_r($query);
        if(!$query)return false;
        // StartingthePHPExcellibrary
        //加载PHPExcel类
        $this->load->library('PHPExcel');
        $this ->load ->library('PHPExcel/IOFactory');
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getProperties()-> setTitle("export") -> setDescription("none");
        $objPHPExcel -> setActiveSheetIndex(0);
        // Fieldnamesinthefirstrow
        $fields = $query -> list_fields();
        $col = 0;
        foreach($fields as $field){
            $objPHPExcel -> getActiveSheet() -> setCellValueByColumnAndRow($col, 1,$field);
            $col++;
        }
            // Fetchingthetabledata
         $row = 2;
         foreach($query->result() as $data)
         {
             $col = 0;
             foreach($fields as $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('Content-Disposition:attachment;filename="Brand_' . date('Y-m-d') . '.xls"');
        header('Cache-Control:max-age=0');
        $objWriter -> save('php://output');
    }
    //从excel导入到数据表
    function import(){
        $this->load->view('excel_import.html');
    }
    //从excel导入到数据表
    function import_pro(){
       //要处理的excel文件
       //$filename = './sampleData/example2.xls';//指定文件
       //用用选择excel文件
       //print_r($_FILES);exit;
       $tmp_file = $_FILES ['file_stu'] ['tmp_name'];
       $file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );
       $file_type = $file_types [count ( $file_types ) - 1];
       /*判别是不是.xls文件,判别是不是excel文件*/
       if (strtolower ( $file_type ) != "xls"){
           $this->error ( '不是Excel文件,重新上传' );
       }
       $savePath = "Public/uploads/excel/";
       /*以时间来命名上传的文件*/
       $str = date ( 'Ymdhis' );
       $file_name = $str . "." . $file_type;
       /*是否上传成功*/
       if(!copy($tmp_file,$savePath.$file_name)){
           $this->error ( '上传失败' );
       }
       //要获得新的文件路径+名字
       $fullpath = $savePath.$file_name;
       //echo $fullpath;
       $re = $this->read($fullpath,'utf-8');
       //var_dump($re);
       return $re;
    }

public function read($filename,$encode='utf-8'){
        $this ->load ->library('PHPExcel/IOFactory');
        $objReader = IOFactory::createReader('Excel5');
        $objReader->setReadDataOnly(true);
        $objPHPExcel = $objReader->load($filename);
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow();
        //echo $highestRow;
        $highestColumn = $objWorksheet->getHighestColumn();
        $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
        $excelData = array();
        for($row = 1; $row <= $highestRow; $row++) {
            for ($col = 0; $col < $highestColumnIndex; $col++) {
                $excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
                }
        }
        return $excelData;
        }
}

具体内容,自己操作便知!

php导入导出的更多相关文章

  1. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

    一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...

  3. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  4. Oracle 数据库导入导出 dmp文件

    转自: http://hi.baidu.com/ooofcu/blog/item/ec5d1f9580d41f007af48077.html 首先询问对方数据库的表空间名称和大小,然后在你的oracl ...

  5. Oracle导入导出

    Oracle 10g 已经引入了数据泵(点击Data Dump)技术,这项技术和之前的exp/imp有哪些好处呢,简单的来说就是恢复和备份速度非常快: 在说明数据泵的使用方法之前,我们先来了解二者的区 ...

  6. csv表格处理(上)-- JS 与 PHP 协作导入导出

    CSV简介 在开发后台管理系统的时候,几乎无可避免的会遇到需要导入导出Excel表格的需求.csv也是表格的一种,其中文名为“逗号分隔符文件”.在Excel中打开如下图左边所示,在记事本打开如下图右边 ...

  7. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  8. excel的导入导出的实现

    1.创建Book类,并编写set方法和get方法 package com.bean; public class Book { private int id; private String name; ...

  9. 利用反射实现通用的excel导入导出

    如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...

  10. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

随机推荐

  1. QT多线程及通过事件进行通信(通过自定义事件,然后QApplication::postEvent给主界面,我之前用的是信号槽)

    可以通过QThread实现跨平台的多线程开发,Qt库负责在特定平台上的特定多线程实现.要采用QThread进行多线程开发,首先需要包含头文件: #include <QThread> 然后需 ...

  2. SIP学习(实例详解)

    本文摘自:http://blog.chinaunix.net/uid-20655530-id-1589483.html 学习 SIP 协议最快捷的方法是通过范例来学习, 找到了一个完整的呼叫流程,le ...

  3. 探讨mvc下linq多表查询使用viewModel的问题

    最近在开发mvc3的时候发现了一个问题,就是如何在view页面显示多表查询的数据,最简单的办法就是使用viewmodel了,以下本人使用viewmodel来实现多表查询的3中方法, 先贴代码再说: 1 ...

  4. linux root不能用

    在操作查看vi /etc/passwd 查看用户信息时,不小心修改了root的用户名改成了eoot,这样在切换到普通用户后,就切不回root,即使明明知道用户名是eoot,也知道原来的root密码,但 ...

  5. C#中派生类调用基类构造函数用法分析

    这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 ...

  6. 打造安全的App!iOS安全系列之 HTTPS

    如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多 ...

  7. LeetCode Meeting Rooms II

    原题链接在这里:https://leetcode.com/problems/meeting-rooms-ii/ Given an array of meeting time intervals con ...

  8. JQuery:JQuery遍历详解

    JQuery:遍历一.什么是遍历?jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素.以某项选择开始,并沿着这个 ...

  9. JQuery:JQuery操作CSS类

    JQuery:CSS类jQuery - 获取并设置 CSS 类,通过 jQuery,可以很容易地对 CSS 元素进行操作.jQuery 操作 CSSjQuery 拥有若干进行 CSS 操作的方法.我们 ...

  10. XtraBackup2.3.3安装配置使用(innobakupex)

    通过使用percona公司的xtrabackup备份还原数据库,并完成搭建mysql主从数据库. 一.XtraBackup下载安装部分. 1.安装依赖软件. [root@localhost ~]# y ...