Excel creat cu Apache POI are punct ca separator zecimal pentru valorile de mai sus 1000 și virgulă pentru mai mici

voturi
1

M - am întâlnit unele probleme cu generarea de fișiere Excel folosind org.apache.poi.ss.usermodel utils: (.) Valorile de mai sus 1000 au puncte ca un separator și valori sub 1000 zecimale au virgulă (,) ca separator zecimal.

Am încercarea de o mulțime de moduri diferite de a pune valori BigDecimal în „Cell“ , dar de fiecare dată rezultatul este același, indiferent de configurarea tip de celule pe CELL_TYPE_NUMERICsau CELL_TYPE_STRINGsau de a face ceva de genul:

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

Am reușit să scap de această problemă prin unificarea separatorul zecimal - am lua o valoare șir de această BigDecimal, înlocuind toate punctele în virgule și făcut! Dar când deschiderea Excel toate câmpurile sunt marcate în sus și există un avertisment care spune că valoarea în această celulă este formatat ca un text. Pot configura - l ca număr și apoi a face operații matematice diferent pe ele. Dar aș vrea să mă generat fișier Excel cu avertismente pentru a rezolva (și , prin urmare - celule create ca numere pentru a efectua operații matematice asupra lor), cu BigDecimalvalori cu virgula ca separator zecimal.

Am crea foaie și celulele mele, după cum urmează:

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++;
        }
}
Întrebat 19/09/2018 la 13:34
sursa de către utilizator
În alte limbi...                            

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