Excel créé avec Apache POI est dot comme séparateur décimal pour les valeurs supérieures à 1000 et par des virgules pour les plus petits

voix
1

Je l' ai rencontré un problème avec la génération de fichiers Excel à l' aide org.apache.poi.ss.usermodel utils: (.) Les valeurs supérieures à 1000 ont point comme séparateur décimal et les valeurs inférieures à 1000 ont une virgule (,) comme séparateur décimal.

J'ai essayer beaucoup de façons différentes de mettre les valeurs BigDecimal en « cellule » , mais chaque fois que le résultat est le même, quelle que soit la configuration type de cellule CELL_TYPE_NUMERICou CELL_TYPE_STRINGou faire quelque chose comme ceci:

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

J'ai réussi à se débarrasser de ce problème en unifiant le séparateur décimal - je prends une valeur de chaîne de ce BigDecimal, remplacer tous les points en virgules et fait! Mais lors de l' ouverture Excel tous les champs sont marqués et il y a un avertissement qui indique que la valeur de cette cellule est formatée en tant que texte. Je peux mettre en place comme un numéro, puis faire des opérations mathématiques diférents sur eux. Mais je voudrais obtenir généré fichier Excel sans avertissement pour résoudre (et donc - cellules constituées en nombre pour faire des opérations mathématiques sur eux), avec des BigDecimalvaleurs avec une virgule comme séparateur décimal.

Je crée ma feuille et les cellules comme suit:

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++;
        }
}
Créé 19/09/2018 à 13:34
source utilisateur
Dans d'autres langues...                            

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