PHPExcel下载地址 https://github.com/PHPOffice/PHPExcel
将下载下来PHPExcel中的Classes里的文件复制到项目里(这个博主放到了vender目录中并重新起名PHPExcel)
直接上代码
<button type="button" class="layui-btn" id="importExcel" style="float: right" ><i class="layui-icon"></i>导入Excel</button>
//导入excel
var uploadInst = upload.render({
elem: '#importExcel'
,url: "" //接口地址
,accept: 'file' //普通文件
,exts: 'csv|xlsx|xls'
,before: function(obj){
layer.msg('表格导入中...', {
icon: 16,
shade: 0.01,
time: 0
})
}
,done: function(res){
layer.msg(res.msg,{time:1500},function () {
if(res.code ==1){
table.reload('LAY-user-manage');
}
})
}
});
后台代码
public function importExcel(){
$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();
vendor('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(); // 取得总列数
$data = array();
$a = 0;
for($i=2;$i<=$highestRow;$i++){
//读取表中内容
$data[$a]['nickname'] = $sheet->getCell("A".$i)->getValue();
$data[$a]['mobile'] = $sheet->getCell("B".$i)->getValue();
$a++;
}
$status = Db::name('users')->insertAll($data);
if ($status) {
return json(['code' => 1, 'msg' => '导入成功!']);
} else {
return json(['msg' => '导入失败!']);
}
}
}