RXThinkCMF实现Excel导入导出

一、导入部分

//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>

没戳 就是这么简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值