一:   PHP将数据导出Excel表中(投机型)

二: PHPExcel: Github上可以下载此插件包,用法如下:

前端:

//上传阅卷员Excel文件
$("#upload_member").click(function (e) {
    e.preventDefault();
    var members_form = document.getElementById("members_form");
    var formData = new FormData(members_form);
    $.ajax({
        url: "/marking_manage/ajax_upload_members",
        method: "post",
        data: formData,
        dataType: "JSON",
        success: function (data) {
      //这里显示php脚本读取excel文件处理后返回的值
        },
//jquery使用FormData时必须设置下面两项,否则不会成功
        processData: false,  // 不处理数据
        contentType: false   // 不设置内容类型
    })
});

//下载导入阅卷员模板
$("#download_excel").click(function (e) {
    self.location.href = "/marking_manage/ajax_download_members"
});

后端:

public function ajax_upload_members()
    {
        require_once(APPPATH . 'libraries/PHPExcel.php');
        require_once(APPPATH . 'libraries/PHPExcel/IOFactory.php');

        date_default_timezone_set("PRC");
        $file = $_FILES;
        $fileName = $file['members']["tmp_name"];
        $inputFileType = PHPExcel_IOFactory::identify($fileName);
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($fileName);

        // 确定要读取的sheet
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();

        //读取帐号
        $accounts = array();//保存文件中的所有帐号,实际就是A列中的所有以t开头的帐号
        for ($row = 1; $row <= $highestRow; $row++) {
            $rowData = $sheet->rangeToArray('A' . $row . ':' . "A" . $row);
            $account = strtolower($rowData[0][0]);
            if (preg_match("/^t\d+/", $account)) {
                $accounts[] = $account;
            }
        }

        $accounts = array_unique($accounts);
        //过滤帐号并返回
        $this->load->model("school_admin_model");
        $retval = array();//返回值
        foreach ($accounts as $account) {
            $teacher_info = $this->school_admin_model->get_admin_by_where(array("account"=>$account));
//            $retval[$teacher_info["school_id"]][] = array("account"=>$teacher_info["account"], "teacher_name"=>$teacher_info['teacher_name']);
            $retval[$teacher_info["school_id"]][] = $teacher_info["id"];
        }
        dexit($retval);
    }

    //下载阅卷员模板
    public function ajax_download_members()
    {
        require_once(APPPATH . 'libraries/PHPExcel.php');
        require_once(APPPATH . 'libraries/PHPExcel/IOFactory.php');

        date_default_timezone_set("PRC");

        $objPHPExcel = new PHPExcel();

        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '帐号')
            ->setCellValue('B1', '姓名')
            ->setCellValue('C1', '学校');

        // 设置第一个sheet为工作的sheet
        $objPHPExcel->setActiveSheetIndex(0);

        // 保存Excel 2007格式文件
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//如果第二个参数是"Excel5"则生成2003版本的excel文件
        browser_export('xxx','browser_excel07.xls');//输出到浏览器
        $objWriter->save('php://output');

    }

function browser_export($type, $filename)
{
    if ($type == "Excel5") {
        header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
    } else {
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器数据excel07文件
    }
    header('Content-Disposition: attachment;filename="' . $filename . '"');//告诉浏览器将输出文件的名称
    header('Cache-Control: max-age=0');//禁止缓存
}

PHP与Excel 笔记的更多相关文章

  1. Excel 笔记目录

    前言 Excel 是微软(Microsoft)公司推出的 Office 办公系列软件的一个重要组成部分,主要用于电子表格处理,可以高效地完成各种表格和图表的设计,进行复杂的数据计算和分析. 一句科普 ...

  2. 【JAVA】使用Aphache poi操作EXCEL 笔记

    1 下载poi,地址 http://poi.apache.org/ 选择3.9版本. 2 刚开始尝试 把poi.jar放在D:\Program Files\java\jdk1.6.0_20\lib(不 ...

  3. .NET操作Excel笔记

    如果你新建一个项目的话,首先要添加Microsoft.Office.Core 与Microsoft.Office.Interop.Exce这两个应用,然后就能很方便的操作了,示例代码(只实现了简单的读 ...

  4. 【PYTHON】操作excel笔记

    import xlrd book = xlrd.open_workbook('..//data//case1.xls') # 获取excel对象 print(book.sheets()) # 获取ex ...

  5. excel笔记

    提取单元格中的数字部分 =MID(LOOKUP(1,-(1&MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1/17)),ROW($1:$15)))) ...

  6. 王佩丰第一讲 认识excel笔记

    改变工作表表浅颜色 批量插入工作表 选择多张工作表然后插入 找到表格边界区域快捷键(找到表格的最后一行):快速到达最上下左右端 点击边框上下左右双击 从指定的位置开始冻结窗格 输入今天的日期 快捷键c ...

  7. excel 笔记

    1.复制公式到整列(至文件尾): 当你想复制公式到整列(至文件尾)可选中有公式的单元格,待出现黑色填充柄时,双击即可

  8. Dynamic CRM 2013学习笔记(三十一)自定义用excel批量导入实体数据

    有一个实体的子表数据量太大,于是客户想用execel来导入实体数据.首先想到的是用系统自带的Import Data,客户嫌太麻烦,比如lookup字段要做map等. 下面是具体的实现步骤: 一.定义e ...

  9. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

随机推荐

  1. git 创建新项目 本地仓库和远程仓库的合并

    1.$ git pull origin master --allow-unrelated-histories 告诉系统允许合并不相关历史的内容 2.git branch --set-upstream ...

  2. mac 环境搭建

    安装homebrew jdk 也可以官网下载 maven 官网下载tar.gz包 也在homebrew下安装git,java,mysql.

  3. 关于如何登陆oracle 18c pdb 的问题

    server 上输入  sqlplus username/password@lP:port/service name 登陆提示 no listener 的时候, 在另外一台机器上 直接连接 哈哈哈.. ...

  4. Django启动报错笔记

    NO.1: You have 15 unapplied migration(s). Your project may not work properly until you apply the mig ...

  5. LocalDate的使用

    LocalDate的一些使用方法 今天半天的时间都用在了LocalDate上,然后呢,也是自己的第一次写博客. 首先来看看会用上的方法吧. 两个构造器,用的是静态工厂方法 static   Local ...

  6. Exp4 恶意代码分析 20165110

    Exp4 恶意代码分析 20165110 一.实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生 ...

  7. innodb 关键特性(insert buffer)

    一.insert buffer 性能改善 insert buffer和数据页一样,也是物理页的一个组成部分. 在innodb存储引擎中,主键是行唯一的标识符.通常应用程序中行记录的插入顺序是按照主键递 ...

  8. 求数组中两数之和等于target的两个数的下标

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...

  9. Git实际操作

    1.基本操作 git init 初始化仓库 git status 查看仓库状态 git add XXX.XX 向暂存区中添加文件XXX.XX git commit 保存仓库的历史记录 git log ...

  10. ROS零门槛学渣教程系列前言

    为什么选择ROS: 1.ROS是开放源码的,在该平台上可以找到非常很多免费开源的代码包,并且这些例程还带wiki说明文档: 2.机器人领域最新的算法直接支持ROS,简单几个步骤就能运行: 3.ROS工 ...