猿问

在Apache POI中接受非负浮点值

我正在使用Java中的Apache POI创建一个xlsx文件。我希望单元格最多只有非负浮点数,最多2个小数位。我为此使用createNumericConstraint,尽管在文件中它不接受0作为值。(找到下面的代码)。到目前为止,我还不知道如何实现对此的小数点后两位约束。


已经得到2位小数的答案。我被困的是它不接受0作为值。


    DataValidationHelper helper = sheet.getDataValidationHelper();

    DataValidationConstraint constraint;

    DataValidation validation;

    constraint = helper.createNumericConstraint(XSSFDataValidationConstraint.ValidationType.DECIMAL,

            XSSFDataValidationConstraint.OperatorType.BETWEEN,

            String.valueOf(0),

            String.valueOf(Float.MAX_VALUE));


    CellRangeAddressList cellRangeAddressList = new CellRangeAddressList();


    cellRangeAddressList.addCellRangeAddress(new CellRangeAddress(1, lastRowIndex, columns.get(SELLING_PRICE.getName()), columns.get(SELLING_PRICE.getName())));

    cellRangeAddressList.addCellRangeAddress(new CellRangeAddress(1, lastRowIndex, columns.get(MRP.getName()), columns.get(MRP.getName())));


    validation = helper.createValidation(constraint, cellRangeAddressList);

    validation.setSuppressDropDownArrow(false);

    validation.setShowErrorBox(true);

    sheet.addValidationData(validation);


慕码人2483693
浏览 202回答 1
1回答

波斯汪

您可以使用此行设置所有数字的格式:style.setDataFormat(workbook.createDataFormat().getFormat("0.00"));该0不会显示为所需要的格式每次。下面是一些例子:0-> 0.001-> 1.001.5-> 1.5099-> 99.00137.7-> 137.70最后但并非最不重要的一点是,需要将验证从更改为String.valueOf(0),0.00f以便使用格式和正确的数据类型(float)。否则之后可能会出现对话/类型错误。
随时随地看视频慕课网APP

相关分类

Java
我要回答