poi设置下拉列表报错?
前端请求文件模板,代码生成excel模板。其中有一列数据要做成下拉的模式。功能也实现了。但是如果下拉列表的下拉项过多。下载出的文件模板,下拉项点击无法展示出来。20多个下拉选项是可以正确下拉的,40多个就不行了。这个如果解决??
//下拉选项
String[] departList = list.subList(0,35).stream().map(v->{
return v.getDepartName();
}).distinct().toArray(String[]::new);
//设置下拉的选项
XSSFDataValidationHelper helper = new XSSFDataValidationHelper(sheet);
DataValidationConstraint constraint = helper.createExplicitListConstraint(departList);
//设置影响的行和列
CellRangeAddressList addressList = new CellRangeAddressList(1, 300, 2, 2);
//设置校验
DataValidation validation = helper.createValidation(constraint, addressList);
validation.setSuppressDropDownArrow(true);
validation.setShowErrorBox(true);
validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
validation.createErrorBox("提示","部门不存在!");
sheet.addValidationData(validation);
回复
1个回答
test
2024-06-24
XSSFSheet refSheet = workbook.createSheet("refSheet");
for (int i = 0; i < departList.length; i++) {
XSSFRow row = refSheet.createRow(i);
XSSFCell cell = row.createCell(0);
cell.setCellValue(departList[i]);
}
String formula = "refSheet!$A$1:$A$" + departList.length;
DataValidationConstraint constraint = helper.createFormulaListConstraint(formula);
// ...其余设置相同
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容