前/后端生成excel方法

一、通过后端处理导出

1.) 后端响应头设置

前端若想下载一个根据查询参数生成的excel报表文件,需要后端设置请求内容的类型,具体设置如下:

    response.reset();
    response.setContentType("application/vnd.ms-excel;charset=utf-8"); // 表明是excel类型
    //response.setContentType("application/octet-stream");  // 或设成通用二进制流类型
    response.setHeader("Content-Disposition", "attachment;filename=test.xls"));  // 将请求的内容存为一个名为test的文件

2.) 前端相应的代码

正常情况下,用以下两种方法均可:

window.open('/url/download?param=xxx')
window.location = '/url/download?param=xxx'   // 不加href,是因为有些浏览器有兼容问题

但如果window.open是在一个ajax回调里执行,浏览器会被安全拦截,解决方案:

$.ajax({
    ....
    success: function() {
        var win = window.open()
        win.location = '/url/download?param=xxx'
    }
})

或直接用window.location

$.ajax({
    ....
    success: function() {
        window.location = '/url/download?param=xxx'
    }
})

二、前端直接将json数据处理成excel文件

具体完整代码如下:


你可能感兴趣的:(excel,导出)