这次在项目开发中,需要实现考题导出,由于本项目是使用Spring Boot+AngularJs的开发模式,原来那种表单式的请求方式不是很便捷,以下是基于AngularJs异步请求的代码。
首先是JS代码
function exportExam() {
$http({
url: url + "export",
responseType: 'arraybuffer'
}).success(function (res) {
var blob = new Blob([res], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;"});
//var blob = new Blob([res], {type: "application/octet-stream"}); 这种类型的转换同样可行
saveAs(blob, "考题信息.xlsx");
});
}
这里需要注意三点:1、要在http的请求中将responseType设置为‘arraybuffer’类型,因为后台会将生成的excel转换成Byte数组并传送到前台
2、经过博主测试,Blob的类型为以上两种都可以