我是JSF Web开发的新手。我有提交的xhtml页面。用户单击“提交”按钮后,将导出Excel页面。 我的代码与提交按钮一起工作得很好,但它在屏幕上打印表格。我需要帮助作为Excel电子表格。
答案 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...
}
}
相关信息: