Я использую 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 по-прежнему показывает мои ячейки как General . Они должны быть показаны как Number . В результате, например, 0 отображается как 0, но это должно быть 0,00, что произойдет, если формат будет правильным ( Number ).
Я вижу, что он генерируется как General , потому что я могу щелкнуть правой кнопкой мыши по ячейке и выбрать «Форматировать ячейки», чтобы увидеть, что это сейчас Он должен быть установлен в «Число» Apache POI HSSF.