# 1、PHPExcel導入
### **一.前期準備工作**

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的模型獲取器和字段設定
- 經緯度獲取距離排序