首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Bootsfaces导出到Excel

如何将Bootsfaces导出到Excel
EN

Stack Overflow用户
提问于 2016-11-07 13:10:36
回答 2查看 1.4K关注 0票数 2

我想将数据从datatable导出到Excel。

我使用的是一个BootsFaces数据表(http://showcase.bootsfaces.net/forms/DataTable.jsf ),如下所示(为了简洁起见,我对其进行了简化):

代码语言:javascript
复制
<b:dataTable
   id="dossiers"
   value="#{bean.dossiers}"
   var="dossier">
       <b:dataTableColumn
         label="#{text['dossier.id']}"
         value="#{dossier.id}" />
       <b:dataTableColumn
         label="#{text['dossier.version']}"
         value="#{dossier.version}" />
</b:dataTable>

我尝试过两种方法:

1.第一种方法: Primefaces dataExporter

http://www.primefaces.org/showcase/ui/data/dataexporter/basic.xhtml

代码语言:javascript
复制
 <h:commandLink id="excel">
   <p:graphicImage name="img/excel.png" />
   <p:dataExporter
       type="xls"
       target="identities"
       fileName="dossiers" />
 </h:commandLink>

我添加了所有必需的依赖项(org.apache.poi)。--如果我使用PrimeFaces datatable,它就能工作,但我不喜欢它的外观,而是想使用BootsFaces。当我尝试时,我会得到以下例外:

target:"net.bootsfaces.component.dataTable.DataTable",javax.servlet.ServletException:不支持的数据源DataTable导出程序必须针对PrimeFaces DataTable

2.第二种方法: DataTables.net customOptions

BootsFaces数据表基于jQuery插件DataTables.net。BootsFaces数据表并不实现所有的jQuery选项,但是可以使用customOptions属性手动添加这些选项。

你可以把定制选项传递给..。dataTable和每一列。这些选项被添加到用于初始化datatable的Json对象中。

DataTables.net有以下文件导出选项:

https://datatables.net/extensions/buttons/examples/initialisation/export.html

代码语言:javascript
复制
$(document).ready(function() {
    $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
} );

因此,现在我尝试在datatable中添加此数据导出选项,如下所示:

代码语言:javascript
复制
<b:dataTable
   id="dossiers"
   value="#{bean.dossiers}"
   var="dossier"
   customOptions="dom: 'Bfrtip', buttons: ['excel']"> // **ADDED HERE**
       <b:dataTableColumn
         label="#{text['dossier.id']}"
         value="#{dossier.id}" />
       <b:dataTableColumn
         label="#{text['dossier.version']}"
         value="#{dossier.version}" />
</b:dataTable>

不幸的是,这也不起作用。我的datatable仍然显示,但实际上所有选项现在都消失了(不再分页,不再显示搜索栏,等等)。

我已经尝试过了,有和没有附加的数据按钮依赖。

代码语言:javascript
复制
<dependency>
   <groupId>org.webjars.npm</groupId>
   <artifactId>datatables.net-buttons</artifactId>
   <version>1.2.2</version>
</dependency>

有人对如何从BootsFaces数据表导出数据有任何建议吗?

作为回报,我提供永恒的感激!

编辑:解决方案

我使用了一个标准datatable并自己添加了功能,正如Stephan (来自Bootsfaces)所建议的那样。

重要:为了使这个工作,使用类作为选择,而不是id!

代码语言:javascript
复制
<h:dataTable                                        
    value="#{bean.dossiers}"
    var="dossier"
    styleClass="dossiers"> <!--class is used as selector-->
        <h:column>
            <f:facet name="header">
               <h:outputText value="#{text['dossier.id']}" />
            </f:facet>
                <h:outputText value="#{dossier.id}" />
        </h:column>
        <h:column>
            <f:facet name="header">
               <h:outputText value="#{text['dossier.version']}" />
            </f:facet>
                <h:outputText value="#{dossier.version}" />
        </h:column>
<h:dataTable>

在我的文件里:

代码语言:javascript
复制
<!-- Add all the required script sources, see: https://datatables.net/extensions/buttons/examples/initialisation/export.html -->
<script type="text/javascript">
    $(document).ready(function() {
        $('.dossiers').DataTable( {
             dom: 'Bfrtip',
             buttons: [
                 'copy', 'csv', 'excel', 'pdf'
             ]     
        } );
    } );
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-08 14:29:34

目前,b:dataTable中没有导出功能。这包括当前版本0.9.1和即将发布的1.0版本。

但是,您应该能够自己添加这样的功能。你的第二种方法看起来很有前途。b:dataTable基于托管在Datatables.net上的数据表。这个小部件又有一个扩展,添加CSV、PDF和Excel导出。目前,我们没有在BootsFaces中包含这个扩展,所以您必须自己添加相应的JavaScript文件。下面是对DataTables.net:https://datatables.net/extensions/buttons/examples/initialisation/export.html出口商的API的描述。

票数 0
EN

Stack Overflow用户

发布于 2018-02-25 14:48:16

Bootsfaces现在可以将datatable导出到excel (xlsx)。

代码语言:javascript
复制
<b:dataTable value="#{carPool.carPool}" var="car" excel="true"...

classes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40466045

复制
相关文章

相似问题

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