2012-12-28 190 views
1

嗨,我正在使用Richfaces 3.3并寻找将数据导出到屏幕的最佳解决方案以Excel文件。该文件需要在用户的机器上下载。我通过互联网搜索,发现POI API可以做到这一点。寻找最佳解决方案。将数据导出到Excel中的excel

回答

2

是的,你可以使用Apache的POI api。网上有很多例子,它展示了如何在java中做到这一点。在JSF中这样做并没有太大的不同。
请访问以下链接,了解如何在JSF2中执行此操作。
Export to Excel JSF and PrimeFaces
How to export rich:dataTable to excel

下面的示例演示了如何在jsf1.2

public void generate() { 
    try { 
     HSSFWorkbook wb = new HSSFWorkbook(); 
     HSSFSheet sheet = wb.createSheet("sheet1"); 

     HSSFRow row = sheet.createRow(0); 
     row.createCell(0).setCellValue("1st Col value"); 
     row.createCell(1).setCellValue("2nd Col value"); 

     FacesContext context = FacesContext.getCurrentInstance(); 
     HttpServletResponse res = (HttpServletResponse) context.getExternalContext().getResponse(); 
     res.setContentType("application/vnd.ms-excel"); 
     res.setHeader("Content-disposition", "attachment;filename=mydata.xls"); 

     ServletOutputStream out = res.getOutputStream(); 
     wb.write(out); 
     out.flush(); 
     out.close(); 
     FacesContext.getCurrentInstance().responseComplete(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

您需要下载并添加poi-version-yyyymmdd.jar做到这一点。