我需要使用特定的格式在数字单元格中写一个Double值,我的意思是,生成的xls必须具有包含Double值的数值单元格,例如:8,1.我正在尝试像:
DecimalFormat dFormat = new DecimalFormat("##.#"); dFormat.format(doubleValue);
但是,由于format方法返回一个String,所以无论是否创建单元格,它们始终表现为文本单元格.我在想两个选择:
>强制单元格作为数字单元格.
>忘记DecimalFormat并使用Double类指定逗号作为小数分隔符,我不知道这是可能的.
任何想法?
解决方法
我可能会缺少某些东西,但是我想您只需要使用格式规则对单元格进行样式,以显示一个小数位
// Do this only once per file CellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat( wb.getCreationHelper().createDataFormat().getFormat("#.#")); // Create the cell Cell c = row.createCell(2); c.setCellValue(8.1); c.setCellStyle(cellStyle);
这将创建格式化规则,创建单元格,将单元格设置为值8.1,然后对其进行样式化