1

我想在 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

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

请帮忙

谢谢

4

2 回答 2

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 文件中的标题。

于 2013-10-11T13:47:43.420 回答
0

数据表导出在 Primefaces 4.0 中不起作用

第 1 步:您需要添加 jars 以导出 csv 、pdf 文件。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>
于 2014-02-18T15:52:49.373 回答