//#################start##################//public class JxlsResult extends StrutsResultSupport { /** * */ private static final long serialVersionUID = -9095565761135848980L; private String fileName; private String root; public JxlsResult() { super(); } public JxlsResult(String location) { super(location); } @SuppressWarnings("unchecked") protected void doExecute(String location, ActionInvocation invocation) throws Exception { HttpServletResponse response = (HttpServletResponse) invocation .getInvocationContext().get(StrutsStatics.HTTP_RESPONSE); ServletContext servletContext = (ServletContext) invocation .getInvocationContext().get(StrutsStatics.SERVLET_CONTEXT); InputStream template = new FileInputStream(servletContext .getRealPath(location)); Map beans = getBeans(invocation); String fileName = getFileName(); ByteArrayOutputStream out = new ByteArrayOutputStream(); Workbook workbook = new XLSTransformer().transformXLS(template, beans); workbook.write(out); byte[] result = out.toByteArray(); fileName = fileName == null ? invocation.getProxy().getActionName() : conditionalParse(fileName, invocation) + ".xls"; response.setContentType("application/vnd.ms-excel"); response.setContentLength(result.length); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.getOutputStream().write(result); } @SuppressWarnings("unchecked") private Map getBeans(ActionInvocation invocation) { Object rootObj = root == null ? invocation.getAction() : invocation .getStack().findValue(root); return new BeanMap(rootObj); } private String getFileName() { return new StringBuffer() .append(fileName == null ? "report" : fileName).append(".xls") .toString(); } public void setFileName(String fileName) { this.fileName = fileName; } public void setRoot(String root) { this.root = root; }}//#################end ##################//
以下为第二种方法//#################start##################///** * export Excel_2 * * @author Lgscofield */ @SuppressWarnings("unchecked") public void exportExcel() { try { listBuildLandOwnership = (List) ServletActionContext.getRequest() .getSession().getAttribute("listBuildLandOwnership"); BuildLandOwnershipVO blVO = (BuildLandOwnershipVO) ServletActionContext.getRequest() .getSession().getAttribute("blVO"); List header = new ArrayList (); if (blVO != null) { blVO.setHmj(blVO.getHmj() + ""); blVO.setGmj(blVO.getGmj() + ""); blVO.setHmj(blVO.getHmj() + ""); blVO.setNydHj(blVO.getNydHj() + ""); blVO.setNydHjg(blVO.getNydHjg() + ""); blVO.setNydHjj(blVO.getNydHjj() + ""); blVO.setMj01(blVO.getMj01() + ""); blVO.setMj01g(blVO.getMj01g() + ""); blVO.setMj01j(blVO.getMj01j() + ""); blVO.setMj02(blVO.getMj02() + ""); blVO.setMj02g(blVO.getMj02g() + ""); blVO.setMj02j(blVO.getMj02j() + ""); blVO.setMj03(blVO.getMj03() + ""); blVO.setMj03g(blVO.getMj03g() + ""); blVO.setMj03j(blVO.getMj03j() + ""); blVO.setMj04(blVO.getMj04() + ""); blVO.setMj04g(blVO.getMj04g() + ""); blVO.setMj04j(blVO.getMj04j() + ""); blVO.setQtNyd(blVO.getQtNyd() + ""); blVO.setQtNydg(blVO.getQtNydg() + ""); blVO.setQtNydj(blVO.getQtNydj() + ""); blVO.setJmjgkyd(blVO.getJmjgkyd() + ""); blVO.setJmjgkydg(blVO.getJmjgkydg() + ""); blVO.setJmjgkydj(blVO.getJmjgkydj() + ""); blVO.setJtyd(blVO.getJtyd() + ""); blVO.setJtydg(blVO.getJtydg() + ""); blVO.setJtydj(blVO.getJtydj() + ""); blVO.setSlyd(blVO.getSlyd() + ""); blVO.setSlydg(blVO.getSlydg() + ""); blVO.setSlydj(blVO.getSlydj() + ""); blVO.setJsdHj(blVO.getJsdHj() + ""); blVO.setJsdHjg(blVO.getJsdHjg() + ""); blVO.setJsdHjj(blVO.getJsdHjj() + ""); blVO.setWlytd(blVO.getWlytd() + ""); blVO.setWlytdg(blVO.getWlytdg() + ""); blVO.setWlytdj(blVO.getWlytdj() + ""); blVO.setQtWlytd(blVO.getQtWlytd() + ""); blVO.setQtWlytdg(blVO.getQtWlytdg() + ""); blVO.setQtWlytdj(blVO.getQtWlytdj() + ""); blVO.setWlyHj(blVO.getWlyHj() + ""); blVO.setWlyHjg(blVO.getWlyHjg() + ""); blVO.setWlyHjj(blVO.getWlyHjj() + ""); header.add(blVO); } if (listBuildLandOwnership != null) { String fileName = null; try { fileName = URLEncoder.encode("土地利用现状权属审核(分析)表.xls", "utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } Map beans = new HashMap(); beans.put("header", header); beans.put("listBuildLandOwnership", listBuildLandOwnership); ServletContext sc = (ServletContext) ActionContext.getContext().get( ServletActionContext.SERVLET_CONTEXT); String location = sc.getRealPath("/export/BloAnalysis.xls"); ServletActionContext.getResponse() .setContentType("text/vnd.ms-excel;charset=UTF-8"); ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); InputStream template = new FileInputStream(location); ByteArrayOutputStream out = new ByteArrayOutputStream(); Workbook workbook = new XLSTransformer().transformXLS(template, beans); workbook.write(out); byte[] result = out.toByteArray(); ServletActionContext.getResponse().setContentLength(result.length); ServletActionContext.getResponse().getOutputStream().write(result); } } catch (Exception e) { e.printStackTrace(); } }//##################end####################//