将JSF Datatable导出为Excel

时间:2015-06-11 19:42:19

标签: jsf export-to-excel

我是JSF Web开发的新手。我有提交的xhtml页面。用户单击“提交”按钮后,将导出Excel页面。 我的代码与提交按钮一起工作得很好,但它在屏幕上打印表格。我需要帮助作为Excel电子表格。

1 个答案:

答案 0 :(得分:4)

JSF没有提供将<h:dataTable>数据导出为特定格式的任何功能。您可以使用具有<p:dataExporter>组件的PrimeFaces(外部库)来提供此功能,请查看demo

如果您不想使用PrimeFaces,那么您应该在动作中自己编写Excel文件,并使用动态创建的文件激活文件下载。以下是如何执行此操作的一小部分示例。

JSF代码:

<h:dataTable value="#{bean.list}" var="item">
    <!-- Columns and relevant data to show to users... -->
</h:dataTable>
<br />
<h:commandLink value="Export to Excel"
    action="#{exporterBean.export(bean.list)}" />

Java代码:

@ManagedBean
@ApplicationScoped
public class ExporterBean {
    public void export(List<?> data) {
        //create the Excel file on the fly
        //use Apache POI or another library to do it
        //use the data in List<?> data to export the relevant data

        //fire a file download...
    }
}

相关信息: