如何将 Bootsfaces 数据表导出到 Excel
How to export Bootsfaces datatable to Excel
我想将数据从我的数据table导出到Excel。
我正在使用 BootsFaces 数据table (http://showcase.bootsfaces.net/forms/DataTable.jsf
),如下所示(为简洁起见,我将其删除):
<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
<h:commandLink id="excel">
<p:graphicImage name="img/excel.png" />
<p:dataExporter
type="xls"
target="identities"
fileName="dossiers" />
</h:commandLink>
我已经添加了所有必要的依赖项 (org.apache.poi)。
如果我使用 PrimeFaces 数据table,这会起作用,但我不喜欢这种外观,想改用 BootsFaces。当我尝试时,出现以下异常:
javax.servlet.ServletException: Unsupported datasource target:"net.bootsfaces.component.dataTable.DataTable", exporter must target a PrimeFaces DataTable
2。第二种方法:DataTables.net customOptions
BootsFaces 数据 table 基于 jQuery 插件 DataTables.net。
BootsFaces 数据 table 没有实现所有 jQuery 选项,但是,您可以使用 customOptions 属性手动添加这些选项。
You can pass custom-options to [...] the dataTable and to each column.
These options are added to the Json object used to initialize the
datatable.
DataTables.net 具有以下文件导出选项:
https://datatables.net/extensions/buttons/examples/initialisation/export.html
$(document).ready(function() {
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
} );
} );
所以现在我尝试在我的数据table中添加这个数据导出选项,如下所示:
<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>
不幸的是,这也行不通。我的数据table 仍然显示,但实际上所有选项现在都消失了(不再有分页,不再有搜索栏等)。
我已经尝试过使用和不使用附加数据tables BUTTONS 依赖项。
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>datatables.net-buttons</artifactId>
<version>1.2.2</version>
</dependency>
有没有人对如何从 BootsFaces 数据导出我的数据有任何建议table?
我在return献上永恒的感激!
编辑:解决方案
我使用了标准数据table并自己添加了功能,正如 Stephan Rauh(来自 Bootsfaces)所建议的那样。
重要提示:为了使这项工作有效,请使用 class 作为选择器,而不是 id!!
<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>
在我的文档的头部:
<!-- 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>
目前b:dataTable
中没有导出功能。这包括当前版本 0.9.1 和即将发布的版本 1.0。
但是,您应该能够自己添加这样的功能。您的第二种方法看起来很有希望。 b:dataTable
基于 Datatables.net 上托管的数据表。这个小部件又具有添加 CSV、PDF 和 Excel 导出的扩展。目前,我们不将此扩展包含在 BootsFaces 中,因此您必须自己添加相应的 JavaScript 文件。以下是 DataTables.net 出口商 API 的描述:https://datatables.net/extensions/buttons/examples/initialisation/export.html.
Bootsfaces 现在可以将数据表导出到 excel (xlsx)。
<b:dataTable value="#{carPool.carPool}" var="car" excel="true"...
https://showcase.bootsfaces.net/forms/DataTable.jsf#buttons_and_row_classes
我想将数据从我的数据table导出到Excel。
我正在使用 BootsFaces 数据table (http://showcase.bootsfaces.net/forms/DataTable.jsf ),如下所示(为简洁起见,我将其删除):
<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
<h:commandLink id="excel">
<p:graphicImage name="img/excel.png" />
<p:dataExporter
type="xls"
target="identities"
fileName="dossiers" />
</h:commandLink>
我已经添加了所有必要的依赖项 (org.apache.poi)。 如果我使用 PrimeFaces 数据table,这会起作用,但我不喜欢这种外观,想改用 BootsFaces。当我尝试时,出现以下异常:
javax.servlet.ServletException: Unsupported datasource target:"net.bootsfaces.component.dataTable.DataTable", exporter must target a PrimeFaces DataTable
2。第二种方法:DataTables.net customOptions
BootsFaces 数据 table 基于 jQuery 插件 DataTables.net。 BootsFaces 数据 table 没有实现所有 jQuery 选项,但是,您可以使用 customOptions 属性手动添加这些选项。
You can pass custom-options to [...] the dataTable and to each column. These options are added to the Json object used to initialize the datatable.
DataTables.net 具有以下文件导出选项:
https://datatables.net/extensions/buttons/examples/initialisation/export.html
$(document).ready(function() {
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
} );
} );
所以现在我尝试在我的数据table中添加这个数据导出选项,如下所示:
<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>
不幸的是,这也行不通。我的数据table 仍然显示,但实际上所有选项现在都消失了(不再有分页,不再有搜索栏等)。
我已经尝试过使用和不使用附加数据tables BUTTONS 依赖项。
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>datatables.net-buttons</artifactId>
<version>1.2.2</version>
</dependency>
有没有人对如何从 BootsFaces 数据导出我的数据有任何建议table?
我在return献上永恒的感激!
编辑:解决方案
我使用了标准数据table并自己添加了功能,正如 Stephan Rauh(来自 Bootsfaces)所建议的那样。
重要提示:为了使这项工作有效,请使用 class 作为选择器,而不是 id!!
<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>
在我的文档的头部:
<!-- 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>
目前b:dataTable
中没有导出功能。这包括当前版本 0.9.1 和即将发布的版本 1.0。
但是,您应该能够自己添加这样的功能。您的第二种方法看起来很有希望。 b:dataTable
基于 Datatables.net 上托管的数据表。这个小部件又具有添加 CSV、PDF 和 Excel 导出的扩展。目前,我们不将此扩展包含在 BootsFaces 中,因此您必须自己添加相应的 JavaScript 文件。以下是 DataTables.net 出口商 API 的描述:https://datatables.net/extensions/buttons/examples/initialisation/export.html.
Bootsfaces 现在可以将数据表导出到 excel (xlsx)。
<b:dataTable value="#{carPool.carPool}" var="car" excel="true"...
https://showcase.bootsfaces.net/forms/DataTable.jsf#buttons_and_row_classes