繁体   English   中英

通过POI在Excel中将字符串输出为货币格式

[英]Output string as currency format in excel by POI

我想在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单元格不显示“ $”或千位逗号“,”,并且有一个错误检查警告, “此单元格中的数字格式为文本或以单引号开头 。我可以将所需的内容加倍单击该单元格以使excel对其进行修复,将显示“ $”和“,”。

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

我想知道是否有一种方法可以将这种数字字符串输出为文本并同时保持货币格式? 像这样$ 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM