今天下载生成Excel文件后,遇到一个较冷门的问题,当某列下拉列表的值超过某个个数,就会有如下错误:
当时每个列的数据限制个数不一致。原因和解决方案在解决中:
原因找到了,主要的原因其实不在于下拉框的个数,而是下拉框每个选项的长度以及总数量。原来的写法超过一定的数量就会报如上问题,原来代码:
DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(dataConstraint);
更改如下:
DataValidationConstraint constraint = validationHelper.createFormulaListConstraint(listFormula);
通过列的引用设置下拉框选项,CellRangeAddressList 的范围不变。
DataValidation dataValidation = validationHelper.createValidation(constraint, cellRangeAddressList);
参考文章:
https://stackoverflow.com/questions/39867531/excel-drop-down-using-datavalidationhelper-poi
网友评论