解决respon.setHeader() 导出Excel中文失效
1.错误示范,导出一直是下方这个样子
2.代码如下
//输出Excel文件
OutputStream output=response.getOutputStream();
response.reset();
//设置响应头,
response.setHeader("Content-disposition", "attachment; filename=问卷结果表.xls");
response.setContentType("application/ms-excel");
wb.write(output);
output.close();
3.原因
原先这样写的,明明写了名称,导出时确是——.xls,就很疑问,找了很多种办法,直到我试了一个test.xls,结果导出没问题,看下方导出是可以的,所以才往中文这方面想,在网上看到了这个方法,主要就是设置响应头下面的三句代码。
//输出Excel文件
OutputStream output=response.getOutputStream();
response.reset();
//设置响应头,
response.setHeader("Content-disposition", "attachment; filename=test.xls");
response.setContentType("application/ms-excel");
wb.write(output);
output.close();
解决方法
//输出Excel文件
OutputStream output=response.getOutputStream();
response.reset();
//设置响应头
response.setContentType("application/x-download");
fileName = new String(fileName.getBytes(), "ISO-8859-1");
response.setHeader("Content-Disposition","attachment;filename="+fileName);
wb.write(output);
output.close();
即可,导出成功!!!
这样问题就解决了!