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

  • 相关阅读:
    SpringCloud微服务实战——搭建企业级开发框架(四十八):【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架
    模拟实现memcpy和memmove
    Altium Designer21使用说明-更新中
    OSPF笔记
    Java后端开发(六)-- 二维码的生成
    MindSpore数据集加载-GeneratorDataset卡住、卡死
    LVS+Keepalived NGINX+Keepalived 高可用群集实战部署
    pymysql的使用
    Service Mesh之Istio基础入门
    Shell 邮件发送告警测试
  • 原文地址:https://blog.csdn.net/q1054733797/article/details/126051548