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
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()));
}
}
}
[quote=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
[code]
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()));
}
}
}
[/code][/quote]
Muito obrigado Eduardo! foi de extrema importância!