如果下拉選項字符少於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;
效果