输出string作为由POI的Excel中的货币格式

我想在excel中输出“2655.32”作为“$ 2,655.32”。

这里是代码片段:

case 0: HSSFCellStyle style; style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); style.setDataFormat((short) 7); cell.setCellValue(new HSSFRichTextString("2655.32")); cell.setCellStyle(style); break; 

生成的excel单元格不显示“$”或千位逗号“,”,并且有一个错误检查警告, “这个单元格中的数字被格式化为文本或者是一个撇号 ,我可以通过double点击单元格让excel修复它,“$”和“,”将出现。

我知道我可以使用cell.setCellValue(Double.parse("2655.32"))parsingstring来解决这个问题,但如果是这样,我必须确保该值是可parsing的,并添加try catch块到每个我的开关情况,这是非常重复的。

我想知道是否有一种方法来输出这种数字string作为文本,并保持货币格式在同一时间? 像这样$ 2,655.32

这是一个很好的解决你的问题的教程。 HSSFDataFormat有一些内置的格式。 使用格式#,##0.0应该可以解决你的问题,就像下面这样:

  HSSFCellStyle cs = hssfworkbook.createCellStyle(); HSSFDataFormat df = hssfworkbook.createDataFormat(); cs.setDataFormat(df.getFormat("#,##0.0")); //or cs.setDataFormat((short)7); cell.setCellValue(2655.32); cell.setCellStyle(cs); 

谢谢!

 cell.setCellValue(416.17); cellStyle.setDataFormat((short)7); cell.setCellStyle(cellStyle);