博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP与Excel 笔记
阅读量:5922 次
发布时间:2019-06-19

本文共 3320 字,大约阅读时间需要 11 分钟。

一:  

二: 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');//禁止缓存}

 

 

转载地址:http://knivx.baihongyu.com/

你可能感兴趣的文章
从零开始的无人驾驶 2
查看>>
PHP面试之网络协议面试题
查看>>
腾讯云CentOS上机摸索(一)--如何在退出SSL后仍保持程序运行
查看>>
git 本地仓库与远程仓库的强制合并 refusing to merge unrelated histories
查看>>
使用midi.js写一个可视化钢琴
查看>>
【EOS】cleos命令
查看>>
吴恩达Coursera机器学习 - Chapter 2 单变量线性回归
查看>>
服务计算 - 5 | GraphQL简单web服务与客户端开发
查看>>
编写git commit信息的最佳实践
查看>>
flask 蓝图总结
查看>>
浅析java内存模型--JMM
查看>>
JavaWEB开发06——XML&tomcat
查看>>
你不知道的层叠样式表
查看>>
webpack-demos:全网最贴心webpack系列教程和配套代码
查看>>
Vue 全家桶实现一个移动端酷狗音乐
查看>>
为你的网站添加 htpps
查看>>
巨杉数据库 MySQL兼容项目正式开源
查看>>
Redux专题:实用
查看>>
React入门0x005: React Component和props
查看>>
第二十二天到第二十四天:JavaScript 里面的居民们-IFE
查看>>