Apache POI HSSFを使用して、JavaWebアプリからExcelスプレッドシートを生成しています。
小数点以下2桁の「数値」形式のセルが必要です。(Javaでの私の値はBigDecimalsですが、doubleに変換できます。問題ありません。)私は次のコードを使用しています。
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である必要があります。これは、形式が正しい場合に発生します(数値)。
セルを右クリックして[セルの書式設定]を選択すると、現在のセルが何であるかを確認できるため、[一般]として生成されることがわかります。ApachePOIHSSFで「Number」に設定する必要があります。