PHPExcel插件下载地址:
链接:https://pan.baidu.com/s/1jB9KSta0Aq3IM04ZO69pDw
提取码:5oa2
前端使用layui框架
html
<button class="layui-btn" id="ceshi"><i class="layui-icon" ></i>导入</button>
<script>
layui.use('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#ceshi' //绑定元素
,url: "{:url('addExcel')}" //上传接口
,accept: 'file'
,done: function(res){
//上传完毕回调
// layer.closeAll('loading');
console.log(res)
}
,error: function(){
//请求异常回调
}
});
});
</script>
将phpexcel插件放入到/extend
php
namespace app\admin\controller;
import('PHPExcel/PHPExcel',EXTEND_PATH);
class User
{
public function addExcel(){
$file = $_FILES['file']; //获取上传文件
$extension = strtolower(pathinfo($file['name'],PATHINFO_EXTENSION)); //pathinfo()函数以数组的形式返回文件路径的信息
if($extension == "xlsx"){
//2007(相当于是打开接收的这个excel)
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
}else{
return output_error(1, '不是期望的文件');
}
// return output_data($file);
// die;
$objContent = $objReader -> load($file['tmp_name']); //加载缓存文件
$sheetContent = $objContent -> getSheet(0) //获取活动的表格
-> toArray(); // 转换成数组
// $name = explode('.',pathinfo($file['name'],PATHINFO_BASENAME));
// return output_data($sheetContent);
// $name_table= $extension = strtolower($name[0]); //提取文件名
// return output_data($file);
//提取表字段,一维数组
// $field_table = $sheetContent[0]; //0表示excel表格第0行,可用于提取表字段
// return output_data($field_table);
//提取数组,二维数组
$data_table = [];
// $i=1表示从excel第二行开始
for($i=1, $n=count($sheetContent);$i<$n;$i++){
$data_table[$i] = [
'nickname' => $sheetContent[$i][0],
'avatarurl' => $sheetContent[$i][1],
'openid' => $sheetContent[$i][2],
'session_key' => $sheetContent[$i][3],
'grade' => $sheetContent[$i][4]
];
}
$sql = db('user')->insertAll($data_table);
if($sql){
return output_data([]);
}else{
return output_error(1, 'err');
}
}
}
上传的base_user.xlsx文件
参考:https://blog.csdn.net/doubi6/article/details/106188881