多年来,给定系统的大多数报告都是以.xls格式生成的。最近,我们需要以.xlsx生成报告。
我们使用Apache Poi来形成Excel文件。在Chrome、Mozilla中一切都很好,但在Internet Explorer中,当你点击下载文件时,它不是要求用户打开或保存文件,而是在Internet Explorer中打开它。
下面是当我们打开.xlsx文件时的外观:
但是,如果您打开的文件是在.xls格式,Internet Explorer是要求用户打开它或保存它:
下面是jsp文件中的代码:
Connection conn = cods.getConnection();
if(conn == null || user.getUserCode() == null) {
pageContext.setAttribute(Resource.SESSION_EXPIRED, Boolean.TRUE);
}
String repProc = request.getParameter("repProc")!=null?cods.ConvIso(request.getParameter("repProc")):"";
String repTitle = cods.ConvIso(request.getParameter("repTitle"));
String repName = request.getParameter("repName") ;
String fileUrl = application.getRealPath("/") + "/ibs/rep_svod/rep/";
try {
uz.fido_biznes.cms.rep.Rep report = null;
report = new uz.fido_biznes.cms.rep.Rep(pageContext, request.getParameter("SN"), null, repProc, repName,fileUrl);
String formed_name = report.printXLSX();
out.println(formed_name);
out.println(fileUrl);
%><div align="center"><input type="button" class="cbutton" style="width:60%;cursor:hand;" onclick="location.href='<%="rep/"+formed_name%>'" value="Download report"></div>
<%
}
catch (Exception e){
out.print(Util.getUserMessage(e));
Util.alertUserMessage(e, out);
e.printStackTrace();
}
在Windows本身,Excel被设置为.xlsx文件的默认应用程序。如果您使用Windows自己的资源管理器打开相同的文件,那么使用Excel打开它没有问题,但当您单击从浏览器下载报告按钮时,它会在浏览器本身打开它。
有人有什么建议吗?我哪里做错了?
1条答案
按热度按时间koaltpgm1#
更新:我必须mimemappings.properties在weblogic域中创建www.example.com文件并添加以下行:xlsx=应用程序/vnd. openxmlformats-office文档电子表格
重新启动后,它工作正常,并要求用户下载文件。