JSF 2.0, Primefaces 3.4 et DataExporter

gillesmki
Messages postés
9
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
7 février 2014
- 28 déc. 2013 à 09:06
Bonjour à tous,

Je suis entrain de développer une application Web, Netbeans 7, avec une DB MySql sous la technologie JSF 2.0.

Je rencontre un problème que je souhaiterai vous soumettre afin d'avoir vos avis ou vos conseils.
Il faut dire que j'utilisé JSF 2.0, les librairies Primefaces 3.4 le poi 3.7 et le itext 2.1.7. Frenchement je ne sais pas si c'est trop ou peut ou s'il y a des incompatibilités entre ces librairies.
l'idée c'est de faire une exportation des données de mon dataTable vers Ms Excel ou en PDF. J'ai vu des modelés sur le net mais rien ne marche lorsque j'implémente ça. Il faut dire que les fichiers MS Excel ou PDF sont belle et bien crée avec l'entête, les informations du
 <f:facet name="header"> 
<h:outputText value="TITLE OF POST"/>
</f:facet>
apparaissent mais les valeurs non juste les entêtes dans le deux fichiers MS Excel et PDF pourquoi? je joins mon code afin que si possible l'on puisse m'assisté pour trouvé la solution au problème.

Merci beaucoup d'avance.


<p:dataTable id="expert" var ="item" value="#{expertManagedBean.mediumExpertModel}" rowKey="#{item.IDExpert}"
selection="#{expertManagedBean.selectedExpert}" selectionMode="single" paginator="true"
rows="4" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} " >


le contenu du dataTable

<p:column>
<f:facet name="header">
<h:outputText value="TITLE OF POST"/>
</f:facet>
<h:outputText value= "#{item.titlePost}" />
</p:column>


j'ai essaie deux façon pour exporter en MS Excel mais aucun d'eux ne fonctionne.


<table width="100%"><tr width="100%" >
<td width="70%"><h3><h:outputLabel value="Results"/></h3></td>
<td width="15%">
<p:commandLink ajax="false">
<h:outputLabel value="Export to excel"/>
<p:dataExporter type="xls" target="expert" fileName="Expert" />
</p:commandLink>


</td>
<td width="15%">
<p:commandLink ajax="false">
<h:outputLabel value="Export to pdf"/>
<p:dataExporter type="pdf" target="exper" fileName="Expert1" preProcessor="#{expertManagedBean.preProcessPDF(rendered)}" />
</p:commandLink>
</td>
<td width="15%">
</td>
</tr>
</table>

voici du code du Manager Bean expertManagedBean.preProcessPDF


public void preProcessPDF(Object document) throws IOException,

BadElementException, DocumentException {
Document pdf = (Document) document;
ServletContext servletContext = (ServletContext)
FacesContext.getCurrentInstance().getExternalContext().getContext();
String logo = servletContext.getRealPath("") + File.separator + "images" +
File.separator + "prime_logo.png";
// pdf.add(Image.getInstance(logo));
}

public void postProcessXLS(Object document) {
HSSFWorkbook wb = (HSSFWorkbook) document;
HSSFSheet sheet = wb.getSheetAt(0);
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());

for (Row row : sheet) {
for (Cell cell : row) {
cell.setCellValue(cell.getStringCellValue().toUpperCase());
cell.setCellStyle(style);
}
}
}