使用Apache POI在Excel中生成下拉列表时,是否有最大数量的项目?

使用Apache POI在Excel中生成下拉列表时,是否有最大数量的项目?,第1张

使用Apache POI在Excel中生成下拉列表时,是否有最大数量的项目

首先,我发现这不是Apache
POI错误。这是Excel的限制。这是链接,

“在数据验证下拉列表中显示的项目数有限制:

该列表可以显示以显示工作表上的列表中的32,767个项目。如果您在数据验证对话框(定界列表)中键入项目,则限制为256个字符,包括分隔符。”

显然,该行明确输入了256个以上的字符。

constraint =validationHelper.createExplicitListConstraint(countryName);

其次,这是我的解决方案。它工作正常。

public class Test {    public static void main(String[] args) throws IOException{        TreeSet<String> temp_rxGroups = new TreeSet<String>();        for (int i = 0; i < 302; i++) { temp_rxGroups.add("" + i);        }        String[] countryName = temp_rxGroups.toArray(new String[temp_rxGroups.size()]);        XSSFWorkbook workbook = new XSSFWorkbook();        XSSFSheet realSheet = workbook.createSheet("realSheet");        XSSFSheet hidden = workbook.createSheet("hidden");        for (int i = 0, length= countryName.length; i < length; i++) { String name = countryName[i]; XSSFRow row = hidden.createRow(i); XSSFCell cell = row.createCell(0); cell.setCellValue(name);        }        DataValidation dataValidation = null;        DataValidationConstraint constraint = null;        DataValidationHelper validationHelper = null;        validationHelper=new XSSFDataValidationHelper(realSheet);        CellRangeAddressList addressList = new  CellRangeAddressList(0,0,0,0);        constraint =validationHelper.createFormulaListConstraint("hidden!$A:$A$" + countryName.length);        dataValidation = validationHelper.createvalidation(constraint, addressList);        dataValidation.setSuppressDropDownArrow(true);        workbook.setSheetHidden(1, true);        realSheet.addValidationData(dataValidation);        FileOutputStream stream = new FileOutputStream("c:\test.xlsx");        workbook.write(stream);        stream.close();    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5489104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存