页面导出Excel问题

J2EE 码拜 9年前 (2016-03-15) 1423次浏览
web服务器用的tomcat,页面点击导出在firefox是这个样子的,文件名显示xx.action并不是后台给的名字:
页面导出Excel问题
IE中直接就是这个样子:
页面导出Excel问题
开发的时候用的是maven的jetty,并没有这样的问题,换成tomcat后就成这样了。
后台部分代码如下:

OutputStream osOut = response.getOutputStream();


		String fileName = DateUtil.formatDate(new Date(),"yyyy-MM-dd");
		//导出
		exportExport.exportExcel("调研问卷",headers,all,osOut,"yyyy-MM-dd");

		// 设置response的Header  
		response.setContentType("application/vnd.ms-excel;charset=UTF-8");
		response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("GBK"),"ISO-8859-1")+".xls");
        
        osOut.flush();  
        osOut.close();

没发现有什么问题,所以求看哪位有没有遇到过此问题,怎么解决的。

解决方案

2

请求是ajax的吧?

2

你可以把全部的连接的action后缀都去掉,直接写前面的名字如login,exportExcel等来打开链接地址

2

本人记得本人那时候导出excel的时候,请求的后缀直接配的.xls ,假如你是Strust2,可以直接在web.xml里面配置。Spring mvc也是web.xml里面配置 ,而且本人那时候导出的时候,配置了.xls模板,然后在后台填数据进去的,当然,假如你是直接导出页面数据,那你直接导出就ok,假如你是后台查询的数据,本人建议你配置一个.xls模板~
希望能对你有所帮助~

50

顺序翻了吧。
// 设置response的Header          response.setContentType(“application/vnd.ms-excel;charset=UTF-8”);        response.setHeader(“Content-disposition”,”attachment;filename=”+new String(fileName.getBytes(“GBK”),”ISO-8859-1″)+”.xls”);
放exportExport.exportExcel(“调研问卷”,headers,all,osOut,”yyyy-MM-dd”);
前面

2

可能  application/vnd.ms-excel 这个类型不识别,这个需要在你的Web Server中进行配置,将其配置成可识别允许下载的文件。

2

response.setContentType(“application/msexcel;charset=UTF-8”);
用这个试试

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明页面导出Excel问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)