2016-03-31 14 views
1

Meine Probleme sind, dass, wenn ich in den Knopf klicke, um Datentabelle zu exportieren, exportiert es nur Spaltenheader, meine Excel-Datei wird mit keinen Reihen erzeugt.primefaces-Datenexporteur XLS exportier nur Kopfzeilen nicht Zeilen

<h:form> 


    <p:dataTable id="cteTable" var="cte" 
     emptyMessage="Nenhum Registro Localizado" 
     reflow="true" value="#{extratorBean.ctes}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}" 
     style="margin-top: 10px" paginator="true" rows="100" scrollable="true" scrollWidth="1024px"> 

     <f:facet name="{Exporters}"> 
      <h:commandLink> 
       <p:graphicImage name="images/excel.png" width="24" library="samsung" /> 
       <p:dataExporter type="xls" target="cteTable" fileName="cte-s" /> 
      </h:commandLink> 
     </f:facet> 

     <p:column headerText="CNPJ Emissor" width="150" style="text-align: center"> 
      <h:outputText value="#{cte.EMIT_CNPJ}"/> 
     </p:column> 

     <p:column headerText="Serie" width="60" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_SERIE}"/> 
     </p:column> 

     <p:column headerText="N° CT-e" width="90" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_NCT}"/> 
     </p:column> 

     <p:column headerText="Dt. Emissão" width="150" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_DHEMI}"> 
       <f:convertDateTime pattern="dd/MM/yyyy" /> 
      </h:outputText> 
     </p:column> 

     <p:column headerText="Total Frete" width="80" style="text-align: center"> 
      <h:outputText value="#{cte.VPREST_VTPREST}"> 
       <f:convertNumber type="currency" /> 
      </h:outputText> 
     </p:column> 

     <p:column headerText="ICMS" width="80" style="text-align: center"> 
      <h:outputText value="#{cte.ICMS_VICMS}"> 
       <f:convertNumber type="currency" /> 
      </h:outputText> 
     </p:column> 

     <p:column headerText="% ICMS" width="80" style="text-align: center"> 
      <h:outputText value="#{cte.ICMS_PICMS}"> 
       <f:convertNumber minFractionDigits="2" /> 
      </h:outputText>    
     </p:column> 

     <p:column headerText="Nat. Op." width="350" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_NATOP}"/> 
     </p:column> 

     <p:column headerText="CNPJ Tomador" width="150" style="text-align: center"> 
      <h:outputText value="#{cte.TOMADOR}"/> 
     </p:column> 

     <p:column headerText="Chave Acesso" width="350" style="text-align: center"> 
      <h:outputText value="#{cte.TRANSACTIONID}"/> 
     </p:column> 

     <p:column headerText="Dt. Criação" width="120" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_TIMESTAMP}"> 
       <f:convertDateTime pattern="dd/MM/yyyy" /> 
      </h:outputText> 
     </p:column> 

     <p:column headerText="N° Protocolo" width="120" style="text-align: center"> 
      <h:outputText value="#{cte.IDE_AUTHCODESEFAZ}"/> 
     </p:column> 

    </p:dataTable> 
</h:form> 

Ich verwende primefaces 5.3 und versucht Apache poi 3.8 und 3.10-FINAL zu verwenden, aber beide nicht richtig arbeiten.

Im Protokoll habe ich keine Fehler.

Edit: Ich weiß schon, was passiert. Das Problem ist, dass wenn meine Tabelle geladen wird, ist es leer, aber sieht aus wie die Schaltfläche Exportieren, hält eine Art Cache mit der Tabelle leer, und selbst nachdem ich Daten in die Tabelle geladen habe, exportiert die Schaltfläche die Excel leer. Jetzt weiß ich nicht, wie man dieses Problem löst.

+0

Ihr "P.S." Der Text scheint abgeschnitten zu sein. Fühlen Sie sich frei, Ihren Beitrag zu bearbeiten, um mehr hinzuzufügen! –

+0

Danke, aber ich habe komplett vergessen was ich sagen wollte. – amaurinorato

+0

bitte erstellen Sie eine [mcve] – Kukeltje

Antwort

-1

Add f: Facette Header nach dem p: Spalte

<p:column> 
    <f:facet name="header"> 
    <h:outputText value="CNPJ Emissor"/> 
    </f:facet> 

    <h:outputText value="#{cte.EMIT_CNPJ}"/> 
</p:column> 
+0

Tahnk Sie für Ihre Antwort, aber ich weiß schon, was passiert ist. Das Problem ist, dass wenn meine Tabelle geladen wird, ist es leer, aber sieht aus wie die Schaltfläche Exportieren, hält eine Art Cache mit der Tabelle leer, und selbst nachdem ich Daten in die Tabelle geladen habe, exportiert die Schaltfläche die Excel leer. Jetzt weiß ich nicht, wie ich dieses Problem lösen soll. – amaurinorato

+0

meinst du, dein Tisch ist leer und du versuchst zu exportieren? oder dein Tisch wurde leer, wenn du den Button Export drückst? Wenn Ihr Fall 2 ist, versuchen Sie, den Bereich für die Manage-Bean in @viewscope zu ändern. – Dom

0

Nun, wenn jemand anderes in dieses Problem umgehen, hier ist die Antwort, die Mine korrigiert: Meine Managed Bean wurde scoped Anfrage. Aber als ich auf die Schaltfläche zum Exportieren von Excel geklickt habe, wird eine neue Anforderung an die Manege-Bean gestellt. Und in dieser Anfrage war meine Liste null. Ich habe dies überprüft, indem ich in der Methode getList einen Haltepunkt gesetzt habe. Also ändere ich einfach den Umfang meiner verwalteten Bean aus Anfrage Bereich, um Umfang anzuzeigen und es funktioniert gut.

1

Es scheint, dass der Exporteur die Eigenschaft für gefilterte Daten verwendet, daher erhalten Sie beim ersten Mal nur Header, da die gefilterten Daten leer sind. Ich schlage vor, versuchen Sie, Daten zu den gefilterten Daten in der Auslastung der Seite hinzuzufügen.

+0

das hat den Trick gemacht! –