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

  

posted @ 2017-01-23 10:34  爱吃却不会胖的程序员  阅读(1115)  评论(0编辑  收藏  举报