您的位置:首页 > Web前端 > AngularJS

AngularJS+Jersey下载excel

2017-02-21 10:34 573 查看
AngularJS代码:
$scope.testDownload =function () {
    $http.post("rest/excel/down", $scope.req, {responseType:'arraybuffer'}).success(function
(data) {
       varblob =new
Blob([data], {type:"application/vnd.ms-excel"});
       varfileName ="ttt2.xls";
       vara = document.createElement("a");
        document.body.appendChild(a);
        a.download = fileName;
        a.href = URL.createObjectURL(blob);
        a.click();
   }).error(function (data) {
        $("#serverErrorModal").modal({show:true});
   });
}

注意post的方法里要加responseType: 'arraybuffer'参数,不然下载的excel会乱码!!!
使用{type:"application/vnd.ms-excel"}的写法,可以保存为xls格式的excel文件(兼容老版本)。而使用“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”则会保存为xlsx。
Server端示例代码:
 

@POST
@Path("down")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
publicbyte[]
downloadExcel(@Context HttpServletResponse response)throws IOException
{
   //.....略
    File file1=
new File("D:/excel/ttt2.xls");
   byte[] aa = Files.toByteArray(file1);
   return aa;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息