• 使用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"));

  • 相关阅读:
    第1章 基于.Net(Core)框架Web程序的IIS部署发布
    【 java 面向对象】包装类的使用
    百度秋招算法笔试真题解析
    多种方法查看Mysql版本信息(Windows、LINUX系统都适用)
    VUE如何使得大屏自适应的几种方法?
    【ARM 嵌入式 C 入门及渐进 1.2 -- 是否为 n 字节对齐】
    安装并创建一个react项目
    新方向!文心一言X具身智能,用LLM大模型驱动智能小车
    第一章:Java第一阶段
    空调原理与结构、制冷剂类型及相关先进技术
  • 原文地址:https://blog.csdn.net/q1054733797/article/details/126051548