• 使用POI生成Excel下拉框


     方式一:下拉框值有限

    1. XSSFWorkbook workbook = (XSSFWorkbook)WorkbookFactory.create(true);
    2. XSSFSheet sheet = workbook.createSheet("sheet1");
    3. DataValidationHelper helper = sheet.getDataValidationHelper();
    4. //设置下拉框数据
    5. DataValidationConstraint constraint = helper.createExplicitListConstraint(new String[]{"选项一", "选项二", "选项三",});
    6. //设置生效的起始行、终止行、起始列、终止列
    7. CellRangeAddressList addressList = new CellRangeAddressList(0,100,0,0);
    8. DataValidation validation = helper.createValidation(constraint,addressList);
    9. //适配xls和xlsx
    10. if(validation instanceof HSSFDataValidation){
    11. validation.setSuppressDropDownArrow(false);
    12. }else{
    13. validation.setSuppressDropDownArrow(true);
    14. validation.setShowErrorBox(true);
    15. }
    16. sheet.addValidationData(validation);
    17. workbook.write(new FileOutputStream("E:/test.xlsx"));

    方式2:下拉框值无限

    1. HSSFWorkbook workbook = (HSSFWorkbook)WorkbookFactory.create(false);
    2. HSSFSheet sheet = workbook.createSheet("sheet1");
    3. //创建隐藏sheet。保存下拉框的数据
    4. HSSFSheet hiddenSheet = workbook.createSheet("hiddenSheet");
    5. List list = Arrays.asList("选项一", "选项二", "选项三");
    6. for (int i = 0; i < list.size(); i++) {
    7. HSSFRow row = hiddenSheet.createRow(i);
    8. HSSFCell cell = row.createCell(0);
    9. cell.setCellValue(list.get(i));
    10. }
    11. workbook.setSheetHidden(workbook.getSheetIndex(hiddenSheet),true);
    12. DataValidationHelper helper = sheet.getDataValidationHelper();
    13. //设置下拉框数据引用
    14. DataValidationConstraint constraint = helper.createFormulaListConstraint("hiddenSheet!$A$1:$A$" + list.size());
    15. //设置生效的起始行、终止行、起始列、终止列
    16. CellRangeAddressList addressList = new CellRangeAddressList(0,100,0,0);
    17. DataValidation validation = helper.createValidation(constraint,addressList);
    18. if(validation instanceof HSSFDataValidation){
    19. validation.setSuppressDropDownArrow(false);
    20. }else{
    21. validation.setSuppressDropDownArrow(true);
    22. validation.setShowErrorBox(true);
    23. }
    24. sheet.addValidationData(validation);
    25. workbook.write(new FileOutputStream("E:/test.xls"));

  • 相关阅读:
    信息系统项目管理师论文
    老梗新玩「GitHub 热点速览 v.22.34」
    数字货币风暴:比特币价格突破历史新高,引发金融市场震荡
    k8s配置StatefulSet解读
    tensorflow & 基于opencv的焊件缺陷检测
    Dread Hunger恐惧饥荒服务器语言与阴谋的狼人杀对决
    【RocketMQ】消息的消费
    智能家居灯光控制系统
    .NET Avalonia开源、免费的桌面UI库 - SukiUI
    Visual Studio 代码显示空格等空白符
  • 原文地址:https://blog.csdn.net/q1054733797/article/details/126051548