今天被excel导出功能蒸腾了半天,因为之前的代码在本地导出是没问题的,但是放到服务器上就没用!
关键的原因是 我之前是用 FileOutputStream out = new FileOutputStream(localRoute);该方法会将文件放到 localRoute,指定的路径下,所以上传到服务器上后,会将文件下载到linux的 系统下面的localRoute,所以为什么我会一直有这个问题。 再换用了 ServletOutputStream out = response.getOutputStream();之后 这个 方法会调用浏览器的下载接口,将文件下载到浏览器的下载路径中,所以就可以在web上进行数据的下载。具体代码如下:
String fileName =null;
Workbook wb = userService.exportXlsByChoice(column,colChine);//自定义方法返回workbook对象
fileName= new String(fileName.getBytes("UTF-8"), "ISO-8859-1");//解决中文乱码
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename="+fileName); //给excel取表名
ServletOutputStream out = response.getOutputStream();//输出文件
wb.write(out);
out.flush();