首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >导出到Excel JSF和PrimeFaces

导出到Excel JSF和PrimeFaces
EN

Stack Overflow用户
提问于 2011-10-19 22:22:17
回答 2查看 42.8K关注 0票数 17

使用JDK1.6、JSF2.1、PrimeFaces 2.2.1、POI3.2和Apache Tomcat7

我正在尝试设置一个servlet,以允许基于用户选择下载excel文件。excel文档是在运行时创建的。

没有错误,代码确实进入了servlet。

我单击该按钮,但没有任何反应。我没有使用PrimeFaces使用的数据表导出,因为我需要对Excel文档中的数据进行重新排序和自定义格式设置。

ExportExcelReports.java

代码语言:javascript
复制
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {       
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment; filename=\"my.xls\"");                

    HSSFWorkbook workbook = new HSSFWorkbook();

    HSSFSheet sheet = workbook.createSheet();
    HSSFRow row = sheet.createRow(0);
    HSSFCell cell = row.createCell(0);
    cell.setCellValue(0.0);

    FileOutputStream out = new FileOutputStream("my.xls");
    workbook.write(out);
    out.close();
}

ProjectReportBean.java

代码语言:javascript
复制
public void getReportData() {
    try {
        FacesContext ctx = FacesContext.getCurrentInstance();
        ExternalContext ectx = ctx.getExternalContext();
        HttpServletRequest request = (HttpServletRequest) ectx.getRequest();
        HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
        RequestDispatcher dispatcher = request.getRequestDispatcher("/ExportExcelReports");
        dispatcher.forward(request, response);
        ctx.responseComplete();
    } catch (Exception e) {}
}

index.xhtml

代码语言:javascript
复制
<h:form id="reportsForm">
    <h:outputLabel for="report" value="Reports" /><br />
    <h:selectOneMenu id="report" value="#{projectReportBean.selectedReport}" required="true" requiredMessage="Select Report">
        <f:selectItem itemLabel="---" noSelectionOption="true" />
        <f:selectItems value="#{projectReportBean.reports}" />
    </h:selectOneMenu>

    <p:commandButton action="#{projectReportBean.getReportData}" value="Export" update="revgrid" />                      
</h:form>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7822758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档