【发布时间】:2011-06-25 16:23:50
【问题描述】:
不幸的是,OpenFaces Datatable 还没有与 Primefaces 或 IceFaces 不同的导出功能。 虽然导出是小菜一碟,但过滤 IceFaces 或 primefaces 数据表并不容易,但 primeFaces 的过滤不适用于 JSF DataModel(可悲但确实如此)。
使用 OpenFaces DataTable 过滤是小菜一碟,非常方便和强大。 但是,如果最终用户希望将自己过滤的数据表导出为 CSV 或 MS Excel 等格式。
来自 OpenFaces 的伟大 Dmitry 给了我一个提示:
使用 OpenFaces DataTable 方法:getDisplayedRowDatas() 从数据表中获取当前显示的行,然后使用 Itext 等第三方库以 PDF 格式导出。
在我看来,这应该是这样的:
- 为此目的创建一个支持 bean。
- 将 Apache POI 第三个库添加到类路径
- 使用 Apache POI 编写代码以使用其方法
getDisplayedRowsDatas()导出 OpenFaces 数据表的内容 - 但我担心此方法不会返回列标题的名称 - 或抓取由 OpenFaces 数据表呈现的 HTML 表为一个缓冲的字符串,并使用 Apache POI 生成一个使用缓冲区流式传输的 Excel 文件。
在我最近遇到的 MyFaces 示例中:MyFaces Datatable Export Example,开发人员使用 Myfaces 组件 <t:buffer value=#{myExportBean.myBufferString}> datatable here </t:buffer /> 将数据表的内容转换为缓冲字符串,这使事情变得更容易。不幸的是,JSF Core 没有这样的组件。
以前有人遇到过这种情况吗?非常感谢您的帮助或更好的选择。
【问题讨论】:
标签: jsf datatable export apache-poi openfaces