Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按POI在excel中以货币格式输出字符串_Java_Excel_Apache Poi - Fatal编程技术网

Java 按POI在excel中以货币格式输出字符串

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);

我想在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);
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);
谢谢