我正在与ADF合作。我已经看到很多关于使用java下载excelsheet的帖子,并试过很多方法。
他们建议使用Servelet。但就我而言,我在托管bean中使用ViewObjects和迭代器。 Workbook对象(包含所有数据)将在托管bean中形成,我可以在我的桌面本地保存文件,但在其他桌面上,它不是保存或保存并在我的桌面上打开。
我尝试了服务:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
response = (HttpServletResponse) fc.getExternalContext().getResponse();
// ADFUtils.setSessionAttribute("WorkSheetObj", workBook);
RequestDispatcher dispatcher = request.getRequestDispatcher("/excelsheetdownloadServlet");
response = (HttpServletResponse) fc.getExternalContext().getResponse();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "inline;filename=inline.xls");
workBook.write(response.getOutputStream());
但是在这里我必须获得在托管bean中形成的workBook对象,因此它无法正常工作。
我直接尝试在托管bean中编写代码。 但那也没有帮助我。请建议我下载客户端计算机上从Apache POI编写的excelsheet。