1html部分
上传按钮
<button class="layui-btn layui-btn-sm" lay-submit="" lay-filter="go7" id="go7">上传成绩模板</button>
2js部分
var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#go7' //绑定元素 ,url: 'uploadExcel.php' //上传接口 ,accept: "file" ,exts: 'xls|excel|xlsx' ,done: function(res){ //上传完毕回调 // console.log(res.data[1][2]); for(i=1;i<res.data.length;i++){ $('input[name="txta'+i+'"]').val(res.data[i][2]==null?'':res.data[i][2]); $('input[name="txtb'+i+'"]').val(res.data[i][3]==null?'':res.data[i][3]); $('input[name="txtc'+i+'"]').val(res.data[i][4]==null?'':res.data[i][4]); $('input[name="txtd'+i+'"]').val(res.data[i][5]==null?'':res.data[i][5]); $('input[name="txte'+i+'"]').val(res.data[i][6]==null?'':res.data[i][6]); $('input[name="txtf'+i+'"]').val(res.data[i][7]==null?'':res.data[i][7]); $('input[name="txtg'+i+'"]').val(res.data[i][8]==null?'':res.data[i][8]); } // console.log($('input[name="txta1"]').val()); layer.msg('上传成功,请先计算总评,再保存',{time:6000}); } ,error: function(){ //请求异常回调 layer.msg("模板格式不正确"); } });
3php部分
uploadExcel.php文件
<?php addExcel(); //接收前台文件 function addExcel() { //接收前台文件 $ex = $_FILES['file']; //重设置文件名 $filename = time() . substr($ex['name'], stripos($ex['name'], '.')); $path = 'upload/' . $filename;//设置移动路径 move_uploaded_file($ex['tmp_name'], $path); //表用函数方法 返回数组 $exfn = _readExcel($path); // 读取内容 upload_file($exfn, $path); // 上传数据 } //创建一个读取excel数据,可用于入库 function _readExcel($path) { //引用PHPexcel 类 include_once('../inc/PHPExcel.php'); include_once('../inc/PHPExcel/IOFactory.php');//静态类 $type = 'Excel2007';//设置为Excel5代表支持2003或以下版本,Excel2007代表2007版 $xlsReader = PHPExcel_IOFactory::createReader($type); $xlsReader->setReadDataOnly(true); $xlsReader->setLoadSheetsOnly(true); $Sheets = $xlsReader->load($path); //开始读取上传到服务器中的Excel文件,返回一个二维数组 $dataArray = $Sheets->getSheet(0)->toArray(); return $dataArray; } //将数据以json格式输出 function upload_file($data, $path) { //global $db; $arr = array(); array_push($arr, $data[0]); //删除第一项 unset($data[0]); //$sql = 'insert into media_platform (user,phone,passwd,head,nickname,platform) values (?,?,?,?,?,?)'; //$stmt = $db->prepare($sql); foreach ($data as $v) { //$result = $stmt->execute(array($v[0] ? $v[0] : '', $v[1] ? $v[1] : '', $v[2] ? $v[2] : '', $v[3] ? $v[3] : '', $v[4] ? $v[4] : '', $v[6] ? $v[6] : '')); // $stmts->execute(array($v[6] ? $v[6] : '')); //if (!$result) { array_push($arr, $v); //} } // 返回json格式 // { // "code": 0 // ,"msg": "" // ,"data": { // "src": "http://cdn.layui.com/123.jpg" // } // } $result=array("code"=>"0","msg"=>"","data"=>$arr); echo json_encode($result); unlink($path); // 上传完文件之后删除文件,避免造成垃圾文件的堆积 } ?>
其中,调用了PHPExcel插件,下载地址:
https://github.com/PHPOffice/PHPExcel
在使用PHPExcel插件是会有一个报错,需要修改 PHPExcel\Reader\Excel2007.php文件,
在首行加入
date_default_timezone_set('PRC');//设置中国时区
参考文章:https://www.ermsg.com/post/10.html
参考文章:https://blog.csdn.net/weixin_43260760/article/details/83021626