Java 按POI在excel中以货币格式输出字符串
我想在excel中将“2655.32”输出为“$2655.32” 下面是代码片段:Java 按POI在excel中以货币格式输出字符串,java,excel,apache-poi,Java,Excel,Apache Poi,我想在excel中将“2655.32”输出为“$2655.32” 下面是代码片段: case 0: HSSFCellStyle style; style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); style.setDataFormat((short) 7); cell.setCellValue(new HSSFRichTextString("2655.32")); cell.setCellStyle(style);
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块添加到我的每个开关案例中,这是非常重复的
我想知道是否有一种方法可以将这种数字字符串输出为文本,同时保留货币格式?像这样$2655.32是一个很好的解决问题的教程。HSSFDataFormat
有一些内置格式。使用格式,#0.0
应该可以解决您的问题,如下所示:
cell.setCellValue(416.17);
cellStyle.setDataFormat((short)7);
cell.setCellStyle(cellStyle);
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);
谢谢