如何强制下载excel文件?

时间:2015-12-01 19:49:25

标签: java grails apache-poi

我正在使用Grails。 我有一个示例代码来下载excel文件:

XSSFWorkbook workbook = new XSSFWorkbook()
....
FileOutputStream out = new FileOutputStream(new File("C:\\excel.xlsx"))
workbook.write(out)
out.close()

此处将自动下载excel文件。我希望系统提示用户在浏览器窗口中下载文件。 我尝试使用以下代码:

response.setHeader("Cache-Control", "public")
response.setContentType("application/vnd.ms-excel")
response.setHeader('Content-Disposition', 'Attachment;Filename="excel.xlsx"')
ServletOutputStream outputStream = response.getOutputStream()
workbook.write(outputStream)
outputStream.flush()
outputStream.close()

哪个不起作用。怎么做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:1)

引用表格W3C

  

参数值通常区分大小写,但某些参数被解释为不区分大小写,具体取决于预期用途。 (例如,多部分边界区分大小写,但message / External-body的“access-type”不区分大小写。)

其中,尝试更改

response.setHeader('Content-Disposition', 'Attachment;Filename="excel.xlsx"')

response.setHeader('Content-Disposition', 'attachment;filename="excel.xlsx"')