Excel создан с Apache POI имеет точку в качестве десятичного разделителя для значений выше 1000 и запятой для меньше,

голоса
1

Я встретил некоторые проблемы с созданием файлов Excel с помощью org.apache.poi.ss.usermodel utils: (.) Значений выше 1000 имеют точку в качестве десятичного разделителя и значения ниже 1000 имеет запятую (,) в качестве десятичного разделителя.

Я пытаюсь много различных способов поместить значения BigDecimal в «Cell» , но каждый раз , результат тот же, независимо от настройки типа клеток на CELL_TYPE_NUMERICили CELL_TYPE_STRINGили делать что - то вроде этого:

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

Мне удалось избавиться от этой проблемы пути объединения десятичного разделителя - Я принимаю строковое значение этого BigDecimal, заменяя все точки на запятые и сделал! Но при открытии Excel все поля помечены и есть предупреждение , которое говорит , что значение в этой ячейке отформатированы как текст. Я могу установить его как число , а затем сделать Diferent математических операций над ними. Но я хотел бы получить сгенерированный файл Excel без каких - либо предупреждений для решения (и , следовательно , - клетку , установленная в качестве чисел , чтобы сделать математические операции над ними), с BigDecimalзначениями с запятой в качестве десятичного разделителя.

Я создаю мой лист и клетки следующим образом:

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++;
        }
}
Задан 19/09/2018 в 13:34
источник пользователем
На других языках...                            

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