成都网站建设设计

将想法与焦点和您一起共享

echarts图表如何导出到excel中

本篇内容介绍了“echarts图表如何导出到excel中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联主要从事做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务华宁,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

1、页面部分

    导出 
         

2、js部分

2.1、echarts生成图表





2.2、把echarts生成的图表获取图片base64编码并提交到后台

    /**
     * 导出excel中
     */
    function export1() {
        //获取echarts图片的base64编码字符串 pixelRatio:图片精度  backgroundColor:背景颜色
       let imgURL=myChart.getDataURL({
            pixelRatio: 2,
            backgroundColor: '#fff'
        });
        //后台请求:传递图表base64编码字符串
        axios.post("/export.do",{'imagesBase64':imgURL}).then((res)=>{
            if(res.data.flag){
                //根据返回路径下载文件
                window.location.href=res.data.message;
            }else{
                alert("导出出错")
            }
        })

    }

注:请求也可以转成ajax,此处使用axios

3、后端poi导出部分

注:后端使用springmvc+poi

  @PostMapping("export")
    public Result ex(@RequestBody Map map,HttpServletRequest request){
        //创建工作簿
        XSSFWorkbook workbook = new XSSFWorkbook();
        //工作表
        XSSFSheet sheet = workbook.createSheet("echarts图表");

        //获取前端图片base64编码
        String base64 = map.get("imagesBase64");
        //去掉标识22位,解码
        byte[] img=decode(base64.substring(22));
        //在工作表中画图
        XSSFDrawing xssfDrawing = sheet.createDrawingPatriarch();
        //画图位置,前四个参数: 单元格位置,距离left,top,right,bottom的像素距离,
        //后四个参数是: 前两个表示 左上角 列号、行号,  右下角 列号、行号
        XSSFClientAnchor clientAnchor=new XSSFClientAnchor(0,0,0,0,0,0,10,20);
        //根据指定位置来画图
        xssfDrawing.createPicture(clientAnchor,workbook.addPicture(img,XSSFWorkbook.PICTURE_TYPE_PNG));
        //获取模板位置
        String templatesPath = request.getSession().getServletContext().getRealPath("templates")+File.separator+"haha.xlsx";
        File file = new File(templatesPath);
        if(file.exists()){
            file.delete();
        }
        //输出到模板中
        BufferedOutputStream out=null;
        try {
            out=new BufferedOutputStream(new FileOutputStream(templatesPath));
            workbook.write(out);
            out.flush();
        }catch (Exception e){
            e.printStackTrace();
            return Result.fail("导出失败");
        }finally {
            //释放资源
            try {
                if(out!=null){
                   out.close();
                }
                if(workbook!=null){
                    workbook.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //返回模板位置
        String s = request.getContextPath() + File.separator + "templates" + File.separator + "haha.xlsx";
        return Result.success(s);
    }

“echarts图表如何导出到excel中”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


名称栏目:echarts图表如何导出到excel中
转载来于:http://chengdu.cdxwcx.cn/article/jdgsph.html

其他资讯