当前位置:  开发笔记 > 编程语言 > 正文

使用Internet Explorer发出Excel文档

如何解决《使用InternetExplorer发出Excel文档》经验,为你挑选了1个好方法。

我遇到了一个问题,IE没有像Firefox那样打开Excel文档的"另存为/打开"对话框.

所以我创建了一个servlet过滤器,它使用'*.xls'作为url模式.我现在面临的问题(因为这是我创建的第一个过滤器)是如何获取用户想要的文件的名称,以便正确填充对话框.目前,当用户选择给定页面上的链接时,将调用过滤器.

这是我想出的:

以上是我的doFilter().

String fileName = "fileName.xls";

HttpServletRequest httpRequest = (HttpServletRequest) pRequest;
String requestURI = httpRequest.getRequestURI();

if(StringUtils.isNotBlank(requestURI))
{
  String uri[] = StringUtils.split(requestURI, '/');
  fileName = uri[uri.length - 1];
}

HttpServletResponse httpResponse = (HttpServletResponse) pResponse;
httpResponse.setContentType("application/vnd.ms-excel");
httpResponse.setHeader("Content-disposition", "attachment; filename=\"" + fileName +"\"");

web.xml中:


    ExcelFilter
    vsg.rp.common.ExcelFilter


    ExcelFilter
    *.xls

这一切都在我的开发盒上运行:Windows XP,JBoss,Eclipse,Oracle.但是当它在测试服务器上运行时 - Linux,Apache/JBoss,Oracle - 它不起作用.似乎甚至没有调用过滤器,没有抛出错误等等.任何想法为什么会发生这种情况?



1> Brian Agnew..:

您希望适当地设置内容类型以及内容处置标头,因此:

response.setContentType( "应用程序/ vnd.ms-EXCEL");
response.setHeader("Content-Disposition","attachment; filename = \""+ filename +"\"");

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有