Excel creado con Apache POI ha dot como separador decimal para los valores por encima de 1000 y la coma para los pequeños

votos
1

He conocido a algunos problemas con la generación de archivos de Excel utilizando org.apache.poi.ss.usermodel utils: (.) Los valores superiores a 1000 tienen punto como separador y valores inferiores a 1.000 decimal tienen coma (,) como separador decimal.

He probar un montón de maneras diferentes valores BigDecimal poner en 'Cell', pero cada vez que el resultado es el mismo, independientemente de la configuración de tipo de célula en CELL_TYPE_NUMERICo CELL_TYPE_STRINGo hacer algo como esto:

CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(workbook.getCreationHelper().createDataFormat().getFormat(###0,00));
cell.setCellStyle(cellStyle);

Me las arreglé para deshacerse de este problema mediante la unificación del separador decimal - estoy tomando un valor de cadena de este BigDecimal, en sustitución de todos los puntos en las comas y hecho! Pero al abrir Excel todos los campos están marcados y hay un aviso que dice que el valor de esta celda tiene formato de texto. Puedo configurar como un número y luego hacer operaciones matemáticas diferentes en ellos. Pero me gustaría llegar generada archivo de Excel sin advertencias para resolver (y por lo tanto - células establecidas como números para hacer operaciones matemáticas con ellos), con BigDecimalvalores con coma como separador decimal.

Creo mi hoja y las células de la siguiente manera:

Workbook workbook = new SXSSFWorkbook();
Sheet sheet = workbook.createSheet(mySheet);
int rowNum = 1;
List<MyRecord> records = (...);

for (MyRecord record : records) {
    Row row = sheet.createRow(rowNum++);
    int cellNum = 0;
     for (String attribute : attributeList) {
         String cellData = cellData(record, attribute);
         if(cellData != null) {
            Cell cell = row.createCell(cellNum);
            cell.setCellValue(cellData);
        }
        cellNum++;
        }
}
Publicado el 19/09/2018 a las 13:34
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more