Problemas com exportação XSL com o PrimeFaces [RESOLVIDO]

2 respostas
gilvanandre

Seguinte, em minhas pesquisas em meu sistema web, apor listar os dados na <p:dataTable/> eu utilizo o comando do PrimeFaces para exportar para xsl, o mesmo está como seguinte problema…
Ao exportar para xls, os campos numéricos estão saindo da com uma ’ na frente, por exemplo: '250,50. Contudo, ao tentar realizar uma soma com esse numero não há essa possibilidade pois o campo é do tipo texto (String) e para somar teria que converter para numero, mas pelo fato de possuir essa aspas na frente não é possível transformá-lo para número!

Gostaria de saber se tem um jeito de que essa aspas não apareça na frente dos campos numéricos!
Se alguem souber uma maneira agradeço muito!

Há um exemplo n site do PrimaFaces que ao exportar, se pegarmos a coluna year, não tem como transformar para número… segue o link: http://www.primefaces.org/showcase-labs/ui/exporter.jsf

Obrigado

2 Respostas

E

Eu tenho uma método estático em uma classe para tratar esses eventos onde eu passo o número das colunas que desejo converter e chamo no evento postProcessor

public static void postProcessXLS(Object documento, int... colunas) {

        HSSFWorkbook wb = (HSSFWorkbook) documento;
        HSSFSheet sheet = wb.getSheetAt(0);
        int[] arrayColunas;
        arrayColunas = colunas;

        HSSFCellStyle cellStyle = wb.createCellStyle();

        for (int i = 1; i < sheet.getPhysicalNumberOfRows() ; i++) {
            HSSFRow header = sheet.getRow(i);
            
            for (int j = 0; j < arrayColunas.length; j++) {
                int col = arrayColunas[j] - 1;
                HSSFCell cell = header.getCell(col);
                cell.setCellStyle(cellStyle);
                cell.setCellValue(seuMetodoConverteStringtoMoeda(cell.getRichStringCellValue().getString()));
            }
        }
    }
gilvanandre
edudebom:
Eu tenho uma método estático em uma classe para tratar esses eventos onde eu passo o número das colunas que desejo converter e chamo no evento postProcessor
public static void postProcessXLS(Object documento, int... colunas) {

        HSSFWorkbook wb = (HSSFWorkbook) documento;
        HSSFSheet sheet = wb.getSheetAt(0);
        int[] arrayColunas;
        arrayColunas = colunas;

        HSSFCellStyle cellStyle = wb.createCellStyle();

        for (int i = 1; i < sheet.getPhysicalNumberOfRows() ; i++) {
            HSSFRow header = sheet.getRow(i);
            
            for (int j = 0; j < arrayColunas.length; j++) {
                int col = arrayColunas[j] - 1;
                HSSFCell cell = header.getCell(col);
                cell.setCellStyle(cellStyle);
                cell.setCellValue(seuMetodoConverteStringtoMoeda(cell.getRichStringCellValue().getString()));
            }
        }
    }

Muito obrigado Eduardo! foi de extrema importância!

Criado 13 de novembro de 2012
Ultima resposta 27 de nov. de 2012
Respostas 2
Participantes 2