# 1、PHPExcel导入
### **一.前期准备工作**
![](https://box.kancloud.cn/bb0488c76946022524dc02e8d2eead22_486x264.png)
1.首先去PHPExcel官网下载PHPExcel类库,地址:[https://github.com/PHPOffice/PHPExcel](https://github.com/PHPOffice/PHPExcel),我们只要Classes文件夹就行了
2.首先将我们下好的Classes文件夹改名为PHPExcel(这个根据个人喜好命名),放到我们tp5的vendor文件夹下面。
### 二、功能实现
前台代码展示:
~~~
<form action="{:url('daoru')}" enctype="multipart/form-data" method="post">
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-normal" id="test8">选择文件</button>
<button type="button" class="layui-btn" id="test9">开始导入到数据库</button>
</div>
</form>
~~~
js代码:
~~~
<script>
layui.use('upload', function(){
var $ = layui.jquery
,upload = layui.upload;
//选完文件后不自动上传
upload.render({
elem: '#test8'
,exts: 'xlsx' //只允许上传压缩文件
,url: '{:url('admin/chengji/daoru')}'
,auto: false
//,multiple: true
,bindAction: '#test9'
,done: function(res){
console.log(res)
if(res.code == 1) {
layer.msg(res.msg, {'icon': 1});
setTimeout(function () {
parent.window.location.reload();
}, 1000);
} else {
layer.msg(res.msg);
}
}
});
});
</script>
~~~
后台代码展示:
~~~
//批量导入
public function daoru(){
if($this->request->isPost()){
$file = $this->request->file('file');
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' .DS.'upload'. DS . 'excel');
if($info){
//获取文件所在目录名
$path=ROOT_PATH . 'public' . DS.'upload'.DS .'excel/'.$info->getSaveName();
//加载PHPExcel类
vendor('PHPExcel.PHPExcel');
//实例化PHPExcel类(注意:实例化的时候前面需要加'\')
$extension = $info->getExtension();
if( $extension =='xlsx' )
{
$objReader = new \PHPExcel_Reader_Excel2007();
}else
{
$objReader = new \PHPExcel_Reader_Excel5();
}
$objPHPExcel = $objReader->load($path,$encode='utf-8');//获取excel文件
$sheet = $objPHPExcel->getSheet(0); //激活当前的表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$a=0;
//将表格里面的数据循环到数组中
for($i=2;$i<=$highestRow;$i++)
{
//*为什么$i=2? (因为Excel表格第一行应该是姓名,年龄,班级,从第二行开始,才是我们要的数据。)
$data[$a]['cj_munuid'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//届数id
$data[$a]['zhunkaozheng'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();//准考证号码
$data[$a]['sfz'] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();//身份证号码
$data[$a]['xueyuanname'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();//姓名
$data[$a]['zhiye'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();//鉴定职业
$data[$a]['jiebie'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();//级别
$data[$a]['kemu'] = $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();//科目
$data[$a]['lilun'] = $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();//理论成绩
$data[$a]['lilunzhuang'] = $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue();
$data[$a]['shicao'] = $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue();
$data[$a]['shicaozhuang'] = $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
$data[$a]['pingding'] = $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue();
$data[$a]['baomingjigou'] = $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
// 这里的数据根据自己表格里面有多少个字段自行决定
$a++;
}
//往数据库添加数据
//dump($data);
$aa = Db('chengji')->insertAll($data);
if($aa){
$res['code']=1;
$res['msg'] = '导入成功!';
}else{
$res['code']=0;
$res['msg'] = '导入失败!';
}
return $res;
}
}
return $this->fetch();
}
~~~
- tp5图片上传
- 文件上传到七牛云
- 上传到阿里云
- 富文本编辑器
- phpexcel和spreadsheet
- phpexcel导出
- phpexcel导入
- spreadsheet
- tp5_api接口
- 跨域请求
- JWT
- 图片和视频上传接口
- 验证码
- tp5小程序登录
- tp5小程序支付
- tp5基础架构
- 验证层
- 模型层Model
- 控制器构找
- tp5.0支付宝
- 海报二维码
- 轮播图
- echarts柱状图
- layui的图片弹窗
- p标签显示指定行数(全部)
- jquery和layerdate调用日期
- ajax发送文件和图片的坑啊
- JS日期点击上一天和下一天
- 百度分享js
- POST请求
- 商品数据表
- tp5.0支付宝最全
- tp5路由的坑
- 二维数组排序
- tp5模型分组group错误
- 二维变一维数组
- 无限树形结构
- json对象转数组
- 模型关联查询
- tp5的模型获取器和字段设定
- 经纬度获取距离排序