apache poi - Export your dataTable to Excel and PDF using Primefaces -
i use poi & itext jar export data pdf or excel file, generate report contain data datatable, here got result
as see, fields contain variable not data datatable.
i file containe data id, name, email... please suggestion
this formateurcontroller.java
package com.controller; import com.dao.formateurdao; import com.dao.interfaceformateur; import com.lowagie.text.badelementexception; import com.lowagie.text.document; import com.lowagie.text.documentexception; import com.lowagie.text.image; import com.lowagie.text.pagesize; import com.model.formateur; import java.awt.event.actionevent; import java.io.file; import java.io.ioexception; import java.util.list; import javax.faces.bean.managedbean; import javax.faces.bean.sessionscoped; import javax.faces.context.facescontext; import javax.faces.model.datamodel; import javax.faces.model.listdatamodel; import javax.servlet.servletcontext; import org.apache.poi.hssf.usermodel.hssfcell; import org.apache.poi.hssf.usermodel.hssfcellstyle; import org.apache.poi.hssf.usermodel.hssfrow; import org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.usermodel.hssfworkbook; import org.apache.poi.hssf.util.hssfcolor; /** * * @author ucf */ @managedbean @sessionscoped public class formateurcontroller { private formateur formateur; private datamodel listformateurs; private formateur selectedformateur; private formateur[] selectedformateurs; private list<formateur> filteredformateurs; public formateur getformateurs() { if(this.formateur == null){ this.formateur = new formateur(); } return formateur; } public void setformateurs(formateur formateur) { this.formateur = formateur; } public datamodel getlistformateurs() { list<formateur> lista = new formateurdao().list(); listformateurs = new listdatamodel(lista); return listformateurs; } public void preparerajouterformateur(actionevent actionevent){ formateur = new formateur(); } public void preparermodifierformateur(actionevent actionevent){ formateur = (formateur)(listformateurs.getrowdata()); } public void ajouter(actionevent actionevent){ interfaceformateur dao = new formateurdao(); dao.enregistrer(formateur); } public void modifier(actionevent actionevent){ interfaceformateur dao = new formateurdao(); dao.actualiser(formateur); } public string exclure(){ formateur employers = (formateur)(listformateurs.getrowdata()); interfaceformateur dao = new formateurdao(); dao.supprimer(employers); return "index"; } public formateur getselectedformateur() { return selectedformateur; } public void setselectedformateur(formateur selectedformateur) { this.selectedformateur = selectedformateur; } public list<formateur> getfilteredformateurs() { return filteredformateurs; } public void setfilteredformateurs(list<formateur> filteredformateurs) { this.filteredformateurs = filteredformateurs; } public formateur[] getselectedformateurs() { return selectedformateurs; } public void setselectedformateurs(formateur[] selectedformateurs) { this.selectedformateurs = selectedformateurs; } public void postprocessxls(object document) { hssfworkbook wb = (hssfworkbook) document; hssfsheet sheet = wb.getsheetat(0); hssfrow header = sheet.getrow(0); hssfcellstyle cellstyle = wb.createcellstyle(); cellstyle.setfillforegroundcolor(hssfcolor.green.index); cellstyle.setfillpattern(hssfcellstyle.solid_foreground); for(int i=0; < header.getphysicalnumberofcells();i++) { hssfcell cell = header.getcell(i); cell.setcellstyle(cellstyle); } } public void preprocesspdf(object document) throws ioexception, badelementexception, documentexception { document pdf = (document) document; pdf.open(); pdf.setpagesize(pagesize.a4); servletcontext servletcontext = (servletcontext) facescontext.getcurrentinstance().getexternalcontext().getcontext(); string logo = servletcontext.getrealpath("") + file.separator + "images" + file.separator + "actus-0-740-econocom-logo.gif"; pdf.add(image.getinstance(logo)); } public string redirectformateur(){ return "modifierfournisseur.xhtml"; } }
this index.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://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://xmlns.jcp.org/jsf/core"> <h:head> <title>gestion de réservation pour une formation</title> </h:head> <h:body> <p:layout fullpage="true"> <p:layoutunit position="north" size="150"> <center> <h1>gestion de réservation pour une formation</h1></center> </p:layoutunit> <p:layoutunit position="west" size="200" rendered="true" collapsible="true" resizable="true" closable="true" header="menu"> <h:form> <p:commandlink value="nouveau formateur" actionlistener="#{formateurcontroller.preparerajouterformateur(actionevent)}" onclick="dlgformateur.show();" /> </h:form> </p:layoutunit> <p:layoutunit position="center"> <h:form id="form"> <p:dialog widgetvar="dlgformateur" resizable="false" height="400" width="450" header="ajout formateur" position="center"> <p:panelgrid columns="2"> <h:outputtext value="nom"/> <p:inputtext id="adresse2" value="#{formateurcontroller.formateurs.adresse}"/> <h:outputtext value="cin"/> <p:inputtext id="cin2" value="#{formateurcontroller.formateurs.cin}"/> <h:outputtext value="email"/> <p:inputtext id="email2" value="#{formateurcontroller.formateurs.email}"/> <h:outputtext value="nom"/> <p:inputtext id="nom2" value="#{formateurcontroller.formateurs.nom}"/> <h:outputtext value="prenom"/> <p:inputtext id="prenom2" value="#{formateurcontroller.formateurs.prenom}"/> <h:outputtext value="pseudo"/> <p:inputtext id="pseudo2" value="#{formateurcontroller.formateurs.pseudo}"/> <h:outputtext value="sexe"/> <p:inputtext id="sexe2" value="#{formateurcontroller.formateurs.sexe}"/> <h:outputtext value="telephone"/> <p:inputtext id="telephone2" value="#{formateurcontroller.formateurs.telephone}"/> <p:commandbutton value="enregistrer" id="eng" actionlistener="#{formateurcontroller.ajouter(actionevent)}" update="dataformateur" oncomplete="dlgformateur.hide()"/> </p:panelgrid> </p:dialog> <p:datatable id="dataformateur" value="#{formateurcontroller.listformateurs}" var="formateur" rowkey="#{formateur.formateurid}" paginator="true" rows="10" selection="#{formateurcontroller.selectedformateurs}" selectionmode="multiple" filteredvalue="#{formateurcontroller.filteredformateurs}" rowsperpagetemplate="5,10,20,30"> <p:ajax event="rowselect" update=":form:display" oncomplete="formateurdialog.show()" /> <f:facet name="header"> list of formateurs </f:facet> <p:column headertext="id" sortby="#{formateur.formateurid}" filterby="#{formateur.formateurid}" id="id_formateur"> #{formateur.formateurid} </p:column> <p:column headertext="adresse" sortby="#{formateur.adresse}" filterby="#{formateur.adresse}" id="adresse"> #{formateur.adresse} </p:column> <p:column headertext="cin" sortby="#{formateur.cin}" filterby="#{formateur.cin}" id="cin"> #{formateur.cin} </p:column> <p:column headertext="email" sortby="#{formateur.email}" filterby="#{formateur.email}" id="email"> #{formateur.email} </p:column> <p:column headertext="nom" sortby="#{formateur.nom}" filterby="#{formateur.nom}" id="nom"> #{formateur.nom} </p:column> <p:column headertext="prenom" sortby="#{formateur.prenom}" filterby="#{formateur.prenom}" id="prenom"> #{formateur.prenom} </p:column> <p:column headertext="pseudo" sortby="#{formateur.pseudo}" filterby="#{formateur.pseudo}" id="pseudo"> #{formateur.pseudo} </p:column> <p:column headertext="sexe" sortby="#{formateur.sexe}" filterby="#{formateur.sexe}" id="sexe"> #{formateur.sexe} </p:column> <p:column headertext="telephone" sortby="#{formateur.telephone}" filterby="#{formateur.telephone}" id="telephone"> #{formateur.telephone} </p:column> <p:column> <f:facet name="header"> <h:outputtext value="excluir" /> </f:facet> <p:commandlink value="excluir" action="#{formateurcontroller.exclure()}" onclick="if(!confirm('existe déjà #{formateur.nom}?'))return false;" update ="dataformateur"/> </p:column> </p:datatable> <h:panelgrid columns="2"> <p:panel header="export data"> <h:commandlink> <p:graphicimage value="/images/excel.png" /> <p:dataexporter type="xls" target="dataformateur" filename="formateurs" postprocessor="#{formateurcontroller.postprocessxls}" /> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/pdf.png" /> <p:dataexporter type="pdf" target="dataformateur" filename="formateurs"/> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/csv.png" /> <p:dataexporter type="csv" target="formateur" filename="formateurs" /> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/xml.png" /> <p:dataexporter type="xml" target="formateur" filename="formateurs" /> </h:commandlink> </p:panel> <p:panel header="export page data"> <h:commandlink> <p:graphicimage value="/images/excel.png" /> <p:dataexporter type="xls" target="formateur" filename="formateurs" pageonly="true"/> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/pdf.png" /> <p:dataexporter type="pdf" target="formateur" filename="formateurs" pageonly="true"/> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/csv.png" /> <p:dataexporter type="csv" target="formateur" filename="formateurs" pageonly="true"/> </h:commandlink> <h:commandlink> <p:graphicimage value="/images/xml.png" /> <p:dataexporter type="xml" target="formateur" filename="formateurs" pageonly="true"/> </h:commandlink> </p:panel> </h:panelgrid> <p:dialog header="formateur detail" widgetvar="formateurdialog" resizable="false" width="300" showeffect="explode" hideeffect="explode"> <p:datalist id="display" value="#{formateurcontroller.selectedformateurs}" var="selectedformateur" type="definition"> id: #{selectedformateur.formateurid}, adresse: #{selectedformateur.adresse} </p:datalist> </p:dialog> </h:form> </p:layoutunit> </p:layout> </h:body> </html>
i'd grateful feedback.
you should instantiate formateur in beginning like:
private formateur formateur = new formateur();
when call getter, checking if formateur null, has not been initialized yet. might problem far understand. not sure if can check if object null if has not been created/initialized. so, maybe try initializing in declarataion or try removing condition check if null.
Comments
Post a Comment