POI以excel形式输出字符串作为货币格式

时间:2013-03-12 16:59:14

标签: java excel apache-poi

我想输出" 2655.32" as" $ 2,655.32"在excel。

以下是代码段:

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

生成的excel单元格没有显示" $"或者是一千个逗号",",并且有一个错误检查警告,"此单元格中的数字格式为文本或前面有撇号。我可以通过双击单元格来获得我想要的东西,让excel修复它," $"和","会出现。

我知道我可以使用cell.setCellValue(Double.parse("2655.32"))将字符串解析为double来解决这个问题,但如果是这样,我必须确保该值是可解析的,并将try catch块添加到我的每个switch case中,非常重复。

我想知道是否有办法将这种数字字符串输出为文本并同时保留货币格式?像这样的$ 2,655.32

2 个答案:

答案 0 :(得分:2)

Here是解决问题的好教程。 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);

谢谢!

答案 1 :(得分:0)

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