• java POI 利用隐藏sheet实现导出下拉数据太多为空


    java POI  利用隐藏sheet实现导出下拉数据太多为空:

    1.创建隐藏sheet

           
           // 创建隐藏sheet
           List<String> phaseNameList = getPhaseNames(); if (CollectionUtils.isNotEmpty(phaseNameList)) { wb.createSheet("销售阶段"); wb.setSheetHidden(wb.getSheetIndex(wb.getSheet("销售阶段")), true); Sheet sheet = wb.getSheet("销售阶段"); sheet.createRow(0);//sheet.getLastRowNum无法区分 有一行和没有 所以这里先建一行 String colName = "A"; int colNum = Integer.valueOf(colName.charAt(0)) - 65; Row row; //创建数据行 sheet.setColumnWidth(colNum, 4000); //设置每列的列宽 for (int j = 0; j < phaseNameList.size(); j++) { if (sheet.getLastRowNum() < j) { row = sheet.createRow(j); //创建数据行 } else { row = sheet.getRow(j); } //设置对应单元格的值 row.createCell(colNum).setCellValue(phaseNameList.get(j)); } }
            
     
    2.将隐藏sheet的数据绑定在单元格
                    String colName = "A";
                    List<String> phaseNames = new ArrayList<>(Arrays.asList(getPhaseNames()));
                    int row = CollectionUtils.isEmpty(phaseNames) ? 1 : phaseNames.size();
                    String strFormula = "销售阶段!$" + colName + "$1:$" + colName + "$" + row;
                    XSSFDataValidationConstraint constraint = new XSSFDataValidationConstraint(DataValidationConstraint.ValidationType.LIST,strFormula);
                    // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
                    CellRangeAddressList regions = new CellRangeAddressList(0, 65535, columnIndex, columnIndex);
                    // 数据有效性对象
                    DataValidationHelper help = new XSSFDataValidationHelper((XSSFSheet) xssfSheet);
                    DataValidation validation = help.createValidation(constraint, regions);
                    xssfSheet.addValidationData(validation);  
     
    随笔看心情
  • 相关阅读:
    FreeModbus TCP
    C#之用户自定义控件
    使用C库制作DLL
    C# Unable to load DLL 'WzCanDll.dll':找不到指定的模块
    C#之改变窗体icon图标、新建类文件、调用dll库
    sim800c GPRS模块的透传模式
    STM32上使用JSON
    STM32之串口IAP更新升级
    Fortran语言的REWIND和BACKSPACE 函数
    Code blocks 编译Fortran(转载)
  • 原文地址:https://www.cnblogs.com/stromgao/p/14484228.html
Copyright © 2020-2023  润新知