一、导入部分
//PHP部分
public function btnImport(){
//引入文件
$objPHPExcel = new \PHPExcel();
//获取表单上传文件
$file = request()->file('file');
$savename = \think\facade\Filesystem::putFile( 'topic', $file);
//上传文件的地址
$filename = ROOT_PATH . 'public/uploads/'. $savename;
$extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );
if ($extension =='xlsx') {
$objReader = new \PHPExcel_Reader_Excel2007();
$objExcel = $objReader ->load($filename);
} else if ($extension =='xls') {
$objReader = new \PHPExcel_Reader_Excel5();
$objExcel = $objReader->load($filename);
}
$excel_array=$objExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
for ($i=0;$i<count($excel_array);$i++){
//循环写入数据库
Db::name("")->insert();
}
return json(['code'=>0,'msg'=>"导入成功"]);
}
//js部分
//声明变量
var func = layui.function
, $ = layui.$
,form = layui.form
,upload = layui.upload;
//主函数内调用PHP的接口
upload.render({
elem: '#uploadExcel'
,url: "/food/btnImport"
,accept: 'file' //普通文件
,multiple: true
,done: function(res){
console.log(res)
if (res.code == 0) {
layer.msg(res.msg,{icon:1,time:1500},function(){
window.location.reload();
});
}
}
});
//html部分
//加入一个点击按钮 点击调用js的方法
<button type="button" class="layui-btn" id="uploadExcel"><i class="layui-icon"></i>导入数据</button>
二、导出部分
//PHP部分
/**
* 导出Excel
*/
public function deriveExcel(){
//根据自己的业务查询数据
$data = Db::name('pop_weight')->alias('p')
->join('user u', 'p.uid = u.id')
->join('weight_msg w','p.uid = w.uid')
->field('p.id,p.uid,u.nickname,p.height,p.weight,w.waistline,w.thigh_circumference,w.calf_circumference,w.hipline,w.chest_circumference,w.arm_width,p.create_time')
->order('p.id','desc')
->select()
->toArray();
foreach ($data as $k => &$v){
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
}
//导出文件命名 字段名称要和data数据对应上
$file_name = date('Y-m-d H:i:s', time());
//export_excel('文件名称.xlsx',[字段名称],$data)
export_excel($file_name . '.xlsx', ['主键id','用户id','用户昵称','身高','体重','腰围','大腿围','小腿围','臀围','胸围','手臂围','记录时间'], $data);
}
//js部分 一个点击事件调用接口
$(document).on('click',"#deriveExcel",function(){
// layer.msg("按钮点击");
window.location.href='https://healthygut.cn/userexercise/deriveExcel';
});
//html部分 一个按钮 触发js的点击事件
<button type="button" class="layui-btn" id="deriveExcel"><i class="layui-icon"></i>导出数据</button>
没戳 就是这么简单