記錄POI導入時單元格下拉框兩種實現方式(excel數據有效性)


如果下拉選項字符少於225 使用方式1

    public static HSSFSheet setHSSFValidation(HSSFSheet sheet, String[] textlist, int firstRow, int endRow, int firstCol,int endCol) {
        // 加載下拉列表內容
        DVConstraint constraint = DVConstraint
                .createExplicitListConstraint(textlist);//textlist  下拉選項的 數組 如{列表1,列表2,。。。。。}
        // 設置數據有效性加載在哪個單元格上,四個參數分別是:起始行、終止行、起始列、終止列
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
        // 數據有效性對象
        HSSFDataValidation data_validation_list = new    HSSFDataValidation(regions, constraint);
        sheet.addValidationData(data_validation_list);
        return sheet;
    }

如果下拉選項較大 可以采用引用數據源的方式:

public static DataValidation SetDataValidation(HSSFWorkbook wb, String strFormula, int firstRow, int endRow, int strCol, int endCol) {
        // 表示A列1-59行作為下拉列表來源數據
        // String formula = "typelist!$A$1:$A$59" ;數據源位置
        // 原順序為 起始行 起始列 終止行 終止列
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, strCol, endCol);
        DataValidationHelper dvHelper = new HSSFDataValidationHelper(wb.getSheet("說明"));//說明=數據源所在的sheet頁
        DataValidationConstraint formulaListConstraint = dvHelper.createFormulaListConstraint(strFormula);
        DataValidation dataValidation = dvHelper.createValidation(formulaListConstraint, regions);

        return dataValidation;

效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM