使用jQuery Ajax下载Excel文件

9

您好,我想使用Spring MVC ajax调用下载XLX文件。以下是向服务器发出的ajax调用。

 $.ajax({
    type : 'GET',
    url : 'downloadExcel',
    beforeSend : function() {
        startPreloader();
    },
     complete: function(){
         stopPreloader();
     },
    success : function(response){
        console.log(response);
            var blob = new Blob([response], { type: 'application/vnd.ms-excel' });
            var downloadUrl = URL.createObjectURL(blob);
            var a = document.createElement("a");
            a.href = downloadUrl;
            a.download = "downloadFile.xlsx";
            document.body.appendChild(a);
            a.click();
    }
});

这是我的服务器代码。
@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET)
    @ResponseBody
    public List<LicenceType> downloadExcel() {
        return licenceTypeService.findAllLicenceType();
    }

我的代码实际上下载了Excel文件,但在Excel表格中显示为[Object][Object]


2
为什么要使用ajax呢?为什么不直接使用<a href="downloadExcel" download="downloadFile.xlsx">下载</a>呢? - mplungjan
我需要用Ajax方式实现。 - boycod3
2个回答

3

我知道已经快一年了,但是我用以下方法解决了这个问题:

var blob = new Blob([response], { type: 'data:application/vnd.ms-excel' }); 

0

编程相关内容,翻译如下:

<script src="//cdn.rawgit.com/rainabba/jquery-table2excel/1.1.0/dist/jquery.table2excel.min.js"></script>

    $("#Xcel").click(function () {
        $("#Tab").table2excel({
            exclude: '.exclude',
            filename: 'MatchedSDNListNames.xls'
        });
    })

如果您想将表格导入为Excel,这可能是一个不错的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接