我正在使用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 回答
![?](http://img1.sycdn.imooc.com/533e51f30001edf702000200-100-100.jpg)
波斯汪
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
)。否则之后可能会出现对话/类型错误。
添加回答
举报
0/150
提交
取消