如何在没有提示的情况下打开Excel文件&不是在使用Servlet的浏览器内部?

时间:2013-07-24 19:26:56

标签: java servlets web-applications

我编写了Java代码,将excel发送到客户端。当用户单击页面中的按钮时,我从java脚本调用servlet。但文件在同一个浏览器中打开。相反,如果没有保存/关闭对话框,如何以excel格式打开文件而不是浏览器?

Java脚本单击一个按钮

 window.location = url+'?Data='+Math.random();

爪哇

String ramdonNumber =this.getHttpRequest().getParameter("Data");
        System.out.println("Inside Action"+ramdonNumber);
        File file = new File("C:/Documents and Settings/XXXXXX/Desktop/RevisedAvailableSeatForSRESR.xls");

        try {
            this.setFileInputStream(new FileInputStream(file));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        HttpServletResponse response = this.getHttpResponse();
        response.setHeader("Content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition",
                "inline;filename=\"" + file.getName() + ".xls\";");

2 个答案:

答案 0 :(得分:0)

如果您想告诉客户显示“另存为...”-dialog,您应该使用attachment代替inline Content-Disposition

response.setHeader("Content-Disposition", "attachment;filename=\"" + file.getName() + ".xls\";");

Chapter 19.5.1 of RFC-2616中提供了更多信息。

答案 1 :(得分:0)

您需要使用 Apache POI 库来操作Office文档。 http://poi.apache.org/