Ecahrts传后台导出Excel
/* *实现思路:从前端获取Echarts加载好的图片,传入后台,生成你想要的Excel表 *记录我遇到的坑 */ //首先定义Echarts图一个 必须给宽高 和显示 在这一步 有两个重点注意的 1.在Echarts的加载Option里 配置 animation:false 去掉加载时候的动画效果 如果不去掉 获取到的Echart的图 不全 因为有动画 2.获取图片的方法 myChart.getDataURL("png"); //定义FormData 为了传入后台 把获取到的图片转为blob 类似于file格式 这是在网上找的方法 地址:http://www.blogjava.net/jidebingfeng/articles/406171.html /** * 将以base64的图片url数据转换为Blob * @param urlData * 用url方式表示的base64图片数据 */ function convertBase64UrlToBlob(urlData){ var bytes=window.atob(urlData.split(',')[1]); //去掉url的头,并转换为byte //处理异常,将ascii码小于0的转换为大于0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for (var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } return new Blob( [ab] , {type : 'image/png'}); } var formData = new FormData(document.getElementById('formId')); //FormData 有一个Append方法 可以加参数 formData.append("name",value); //后台获取图片 放入Excel poi中 用的WritableWorkbook workbook = Workbook.createWorkbook(out); //宽 高 的单位都是以默认单元格的大小定义的 WritableImage wImage = new WritableImage(x, y, 宽, 高, 图片文件); wsheet.addImage(wImage3); //输出Excel