apache poi customformat(#.###0,00)不起作用

piv4azn7  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(267)

我们在项目中使用ApachePOI4.1.2。我正在使用excel 2013。我正在尝试用apache poi格式化数字,但此格式(#.##0,00)不起作用。我的要求是,如果cdecimalsepstring是dot(.),那么数字的格式应该是(#,##0.00)。如果cdecimalsepstring是逗号(,),则数字格式应为(#.##0,00)。格式(#,##0.00)对我有效,但格式(#.##0,00)无效。我的excel默认的小数点分隔符(.)和千位分隔符是逗号(,)。如果cdecimalsepstring是逗号(,),如果我用格式(#,##0.00)生成excel并更改我的excel十进制分隔符(,)和千位分隔符是逗号(.),则它可以工作。所以我的问题是,在用apache poi生成excel fie时,我们总是需要使用这种格式(#.###0,00)?

CellStyle numStyle = null;
            if (cDecimalSepString != null && cDecimalSepString.equals("."))
            {
                numStyle = workbook.createCellStyle();
                short format = (short)BuiltinFormats.getBuiltinFormat("#,##0.00");
                numStyle.setDataFormat(format);
            }
            else
            {
                DataFormat dataFormat = workbook.createDataFormat();
                numStyle = workbook.createCellStyle();
                numStyle.setDataFormat(dataFormat.getFormat("#.##0,00"));                    
            }
        string value= "1000.43";
        double dValue = Double.parseDouble(value);
        Cell cell = workbook.createSheet().createRow(0).createCell(0);
        cell.setCellValue(dValue);
        cell.setCellStyle(numStyle);

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题