我正在尝试使用primefaces 5.1,poi 3.9将数据表导出到excel。我的xhtml代码是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<h:outputStylesheet library="css" name="custom.css" />
<h:outputScript library="js" name="customjs.js" />
</h:head>
<h:body>
<h:form id="form">
<h:form>
<p:dataTable id="tbl" var="tempEmployeeInOut"
value="#{tempInOut.tempEmployeeInOuts}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
paginator="true" rows="10" style="margin-bottom:20px">
<f:facet name="{Exporters}">
<h:commandLink>
<p:graphicImage library="images" name="excel.png" width="24" />
<p:dataExporter type="xls" target="tbl" fileName="tempEmployeeInOut" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="pdf.png" width="24" />
<p:dataExporter type="pdf" target="tbl" fileName="tempEmployeeInOut" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="csv.png" width="24" />
<p:dataExporter type="csv" target="tbl" fileName="tempEmployeeInOut" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="xml.png" width="24" />
<p:dataExporter type="xml" target="tbl" fileName="tempEmployeeInOut" />
</h:commandLink>
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Employee Id" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.empID}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Entry Date" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.entryDate}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Morning In Time" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.morInTime}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Lunch Out Time" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.lunchOutTime}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Lunch In Time" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.lunchInTime}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="OutTime" />
</f:facet>
<h:outputText value="#{tempEmployeeInOut.outTime}" />
</p:column>
</p:dataTable>
<h3>Export Page Data Only</h3>
<h:commandLink>
<p:graphicImage library="images" name="excel.png" />
<p:dataExporter type="xls" target="tbl" fileName="cars"
pageOnly="true" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="pdf.png" />
<p:dataExporter type="pdf" target="tbl" fileName="cars"
pageOnly="true" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="csv.png" />
<p:dataExporter type="csv" target="tbl" fileName="cars"
pageOnly="true" />
</h:commandLink>
<h:commandLink>
<p:graphicImage library="images" name="xml.png" />
<p:dataExporter type="xml" target="tbl" fileName="cars"
pageOnly="true" />
</h:commandLink>
</h:form>
</h:form>
</h:body>
</html>
我的TempInOut课程没什么特别之处。我能够将数据显示在数据表中。但是当我点击导出到excel图标或任何其他图标时,除了url有一个#附加后,没有任何事情发生。我在很多地方搜索过,但大多数都有版本问题。我无法理解我做错了什么。
我的数据表看起来像这样。
答案 0 :(得分:2)
您是否添加了 Apache POI 依赖?
如果没有,
从Apache POI download page下载最新的稳定版本,解压缩下载的文件,将库放在/WEB-INF/lib
文件夹中,然后在服务器上重新运行webapp。
或者,如果您正在使用Maven,请将此依赖项复制并粘贴到您的pom.xml上:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>