我和ADF一起工作。我看过很多关于用java下载excelsheet的文章,并且尝试了很多方法。
他们建议使用Servelet。但在我的例子中,我在托管bean中使用ViewObjects和迭代器。工作簿对象(包含所有数据)将在托管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中形成的工作簿对象,所以它不起作用。
我直接尝试在托管bean中编写代码。
但这也帮不了我。请建议我在客户机上下载从Apache POI编写的excelsheet。