微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以Excel / CSV格式导出OpenFaces数据表?

如何解决如何以Excel / CSV格式导出OpenFaces数据表?

| 不幸的是,OpenFaces Datatable还没有像Primefaces或IceFaces那样具有导出功能。 虽然导出是小菜一碟,但是过滤IceFaces或primefaces数据表确实有些恐怖,但是primeFaces的过滤不适用于JSF DataModel(很遗憾,但确实如此)。 使用OpenFaces DataTable进行过滤非常容易,而且功能强大。 但是最终用户想要将经过过滤的数据表导出为CSV或MS Excel等格式。 OpenFaces的伟大Dmitry给了我一个提示: 使用OpenFaces DataTable方法:“ 0”将从数据表中获取当前显示的行,然后使用诸如Itext之类的通用库以PDF格式导出。 在我看来,这应该是这样的: 为此创建一个备用bean。 将Apache POI第三个库添加到类路径 使用Apache POI编写代码以使用方法
getdisplayedRowsDatas()
导出OpenFaces数据表的内容-但恐怕此方法不会返回列标题名称-或将由OpenFaces数据表呈现的HTML表作为缓冲字符串捕获,并且使用Apache POI生成与Buffer流式传输的Excel文件。 在我最近遇到的MyFaces示例中:MyFaces Datatable Export Example,开发人员使用Myfaces组件
<t:buffer value=#{myExportBean.myBufferString}> datatable here </t:buffer />
将数据表的内容转换为缓冲的String,这使事情变得更加容易。不幸的是,JSF Core没有这样的组件。 有人遇到过这个吗?帮助或更好的替代品受到极大的赞赏。     

解决方法

        您可以查看实验性的DataTable导出API,该API在当前的每晚版本中都可用。如果经时间考验,我们将正式声明此API。目前,仅CSV导出可用,但是您可以为其他格式编写自己的导出器。这是您应放入动作处理程序中以使其起作用的代码:
DataTable myTable = Faces.component(\"form:myTable\",DataTable.class);
myTable.export(new CSVTableExporter());
它导出表当前显示的所有行和列的数据(当前仅导出分页表的当前页面)。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。