Duvidas no codigo do DataExporter do primefaces

1 resposta
jximenes

Pessoal.. alguem poderia me ajudar a entender o código que é disponibilizado no site do primefaces para o componente DataExporter... eu usei o codigo como esta na pagina do prime... mas nao entendi como funciona por exemplo.. pra ele preencher as celulas da planilha excel

XHTML

<p:dataTable id="tbl" var="car" value="#{tableBean.cars}" paginator="true" rows="10">  
    <p:column>  
        <f:facet name="header">  
            <h:outputText value="Model" />  
        </f:facet>  
        <h:outputText value="#{car.model}" />  
    </p:column>  
  
    <p:column>  
        <f:facet name="header">  
            <h:outputText value="Year" />  
        </f:facet>  
        <h:outputText value="#{car.year}" />  
    </p:column>  
  
    <p:column>  
        <f:facet name="header">  
            <h:outputText value="Manufacturer" />  
        </f:facet>  
        <h:outputText value="#{car.manufacturer}" />  
    </p:column>  
  
    <p:column>  
        <f:facet name="header">  
            <h:outputText value="Color" />  
        </f:facet>  
        <h:outputText value="#{car.color}" />  
    </p:column>  
</p:dataTable>  
      
<h:commandLink>  
    <p:graphicImage value="/images/excel.png" />  
    <p:dataExporter type="xls" target="tbl" fileName="cars" postProcessor="#{tableBean.postProcessXLS}"/>  
</h:commandLink>  
  
<h:commandLink>  
    <p:graphicImage value="/images/pdf.png" />  
    <p:dataExporter type="pdf" target="tbl" fileName="cars" preProcessor="#{tableBean.preProcessPDF}"/>  
</h:commandLink>
ClasseBean
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; i < 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 + "prime_logo.png";  
  
    pdf.add(Image.getInstance(logo));  
}

1 Resposta

jximenes

Alguem pode por favor me dar uma ajudinha??? :smiley:

Criado 18 de abril de 2012
Ultima resposta 18 de abr. de 2012
Respostas 1
Participantes 1