为了账号安全,请及时绑定邮箱和手机立即绑定

在Apache POI中接受非负浮点值

在Apache POI中接受非负浮点值

慕码人2483693 2021-04-12 20:21:22
我正在使用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);
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以使用此行设置所有数字的格式:

style.setDataFormat(workbook.createDataFormat().getFormat("0.00"));

0不会显示为所需要的格式每次。下面是一些例子:

  • 0-> 0.00

  • 1-> 1.00

  • 1.5-> 1.50

  • 99-> 99.00

  • 137.7-> 137.70

最后但并非最不重要的一点是,需要将验证从更改为String.valueOf(0)0.00f以便使用格式和正确的数据类型(float)。否则之后可能会出现对话/类型错误。


查看完整回答
反对 回复 2021-04-28
  • 1 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信