下拉列表错误:解决选项过多导致的显示问题
在生成 excel 模板时,使用 apache poi 为一列数据设置下拉列表时,可能会遇到下拉选项过多的问题,导致下载后的模板无法正确显示下拉列表。
要解决此问题,可以采用以下步骤:
- 创建一个名为 “refsheet” 的辅助工作表。
- 遍历下拉选项列表,并在辅助工作表的每一行中创建一条记录。
- 构造一个引用辅助工作表范围的公式,用于定义下拉列表限制。
- 使用该公式创建数据验证约束。
修改后的代码如下:
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); // 其余设置与原代码相同
通过将下拉列表选项存储在辅助工作表中,可以有效解决选项过多导致显示问题的限制。