DataTable导出在Primefaces 4.0中不起作用

时间:2013-10-10 06:10:46

标签: jsf-2 primefaces

我想在primefaces 4.0中以csv,pdf格式导出数据表。为此,我使用了以下代码:

<p:dataTable var="valuesTable" value="#{userBean.groupResultList}"
    paginator="false" id="valuesTable" resizableColumns="true"
    rendered="#{not empty userBean.groupResultList}">
    <p:column headerText="Group" id="grp">                                                  #{valuesTable.groupName}</p:column>
    <p:column headerText="Technical Knowledge" id="tk">  
                                            #{valuesTable.tkValue}
                            </p:column>
    <p:column headerText="Project Management" id="pm">  
                                                #{valuesTable.pmValue}
                            </p:column>
    <p:column headerText="Growth" id="ga">  
                                                #{valuesTable.gaValue}
                            </p:column>
    <f:facet name="footer">
        <h:commandLink>
            <p:graphicImage value="/images/xml.jpeg" width="20" height="20" />
            <p:dataExporter target="valuesTable" type="xml" fileName="Data_XML" />
        </h:commandLink>
    </f:facet>
</p:dataTable>    

运行应用程序时,数据表在每个单元格中显示正确的数据。 但是当我尝试以csv或pdf格式导出它,而不是导出实际数字(或对象的值)时,它会导出“#{valuesTable.groupName}”“#{valuesTable.tkValue}”,“#{valuesTable。 pmValue}“,”#{valuesTable.gaValue}“为csv文件中的每个对象。

CSV文件内容:

#{valuesTable.groupName}    #{valuesTable.tkFormatedValue}  #{valuesTable.pmFormatedValue}  #{valuesTable.gaFormatedValue}

数据表内容:

Group Name  Technical Knowledge   Project Management  Growth

India            .8                       .7            1.0

我不知道为什么以这种方式导出数据表。

请帮助

由于

2 个答案:

答案 0 :(得分:3)

我在dataTable导出器中遇到过类似的问题。 你必须使用这样的outputText:

<h:outputText value="#{valuesTable.tkValue}"/> 

在所有列标记内,以便正确查看值。 您的专栏将成为:

<p:column headerText="Technical Knowledge" id="tk">  
     <h:outputText value="#{valuesTable.tkValue}"/>
</p:column>

替换所有列并试试! 希望它有所帮助!

而且我认为标题不合适。你必须使用这样的f:facet标签:

<p:column id="tk">
     <f:facet name="header">  
        <h:outputText value="Technical Knowledge" />  
     </f:facet>  
     <h:outputText value="#{valuesTable.tkValue}"/>
</p:column>

现在您还应该在导出CSV文件中看到标题。

答案 1 :(得分:0)

DataTable导出在Primefaces 4.0中不起作用

步骤1:您需要添加用于导出csv,pdf文件的jar。         iText的-1.1.4.jar

第2步:DataExplorar.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:p="http://primefaces.org/ui">

<p:panel header="Generate Report ">

<div>
<h:commandLink>
    <p:graphicImage value="/images/pdf.png"
        style="width:30px; hight:30px;" />
    <p:dataExporter type="pdf" target="tb1"
        fileName="fileName" />
</h:commandLink>

    <h:commandLink>

     <p:graphicImage value="/images/excel.png"
    style="width:25px; hight:30px;" />
  <p:dataExporter type="xls" target="tb1"
    fileName="fileName" />
   </h:commandLink>
</div>          
</p:panel>