账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    【求助】vue element的后台管理系统中,怎么实现,点击按钮下载excel文件?
    31
    0

    想要实现效果的主要流程:
    1、后台系统中,根据数据表格,先选择的数据
    2、点击导出成为excel文件
    3、把选中的数据ID请求到php后端
    4、后端根据ID查询数据,并生成excel文件下载


    但目前的后端代码如下:

    public function excel_export($name='测试表', $data=[], $head=[], $keys=[]){
            $count = count($head);  //计算表头数量
    
            $spreadsheet = new Spreadsheet();
            $sheet = $spreadsheet->getActiveSheet();
    
            for ($i = 65; $i < $count + 65; $i++) {     //数字转字母从65开始,循环设置表头:
                $sheet->setCellValue(strtoupper(chr($i)) . '1', $head[$i - 65]);
            }
    
            /*--------------开始从数据库提取信息插入Excel表中------------------*/
    
    
            foreach ($data as $key => $item) {             //循环设置单元格:
                //$key+2,因为第一行是表头,所以写到表格时   从第二行开始写
    
                for ($i = 65; $i < $count + 65; $i++) {     //数字转字母从65开始:
                    $sheet->setCellValue(strtoupper(chr($i)) . ($key + 2), $item[$keys[$i - 65]]);
                    $spreadsheet->getActiveSheet()->getColumnDimension(strtoupper(chr($i)))->setWidth(20); //固定列宽
                }
    
            }
    
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="' . $name . '.xlsx"');
            header('Cache-Control: max-age=0');
            $writer = new Xlsx($spreadsheet);
            $writer->save('php://output');
    
            //删除清空:
            $spreadsheet->disconnectWorksheets();
            unset($spreadsheet);
            exit;
        }
       
       // 导出excel
       public function excel(){
    
            //设置表头:
            $head = ['ID','标题'];
    
            //数据中对应的字段,用于读取相应数据:
            $keys = ['id', 'title'];
            
            $info=Db::name('info')
                     ->field('id,title')
                     ->order('id asc')
                     ->select();
            $this->excel_export('测试表', $info, $head, $keys);
       }

    问题:
    直接请求excel方法是可以在浏览器中下载excel文件的
    不知道怎么与vue结合,在vue点击按钮后,在浏览器中下载这个excel文件,求助大家了

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部