Я использую Apache POI HSSF для создания электронной таблицы Excel из моего веб-приложения Java.
Мне нужна ячейка в формате «Число» с двумя десятичными точками. (Мои значения в Java - BigDecimals, но я могу преобразовать их в двойные, без проблем.) Я использую этот код:
CellStyle numericStyle = wb.createCellStyle();
numericStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));
// output in this new style...
row.createCell(cellnum).setCellValue(((BigDecimal)value).doubleValue());
row.getCell(cellnum).setCellStyle(numericStyle);
Проблема в том, что, хотя это работает, Excel по-прежнему показывает мои ячейки как Общие. Они должны отображаться как Число. В результате, например, 0 отображается как 0, но он должен быть 0,00, что могло бы произойти, если бы формат был правильным (Число).
Я вижу, что он создается как Общие, потому что я могу щелкнуть правой кнопкой мыши по ячейке и затем выбрать «Форматировать ячейки», чтобы увидеть, что это сейчас. Он должен быть установлен на «Число» с помощью Apache POI HSSF.