/**
* @Description: 添加資料有效性檢查(下拉清單)
* @param firstRow 開始行
* @param lastRow 結束行
* @param firstCol 開始列
* @param lastCol 結束列
* @param explicitListValues 有效性檢查的下拉清單
* @return:
* @date: 2019/12/12 14:22
* 注意:設定的某列原本不能存在下拉清單,不然新的會不生效
*/
public static void setValidationData(Sheet sheet, int firstRow, int lastRow,
int firstCol, int lastCol,String[] explicitListValues) {
if (sheet instanceof XSSFSheet) {
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper
.createExplicitListConstraint(explicitListValues);
CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList);
//validation.setSuppressDropDownArrow(true); //這個還沒搞懂是什麼
//validation.setShowErrorBox(true);//這個還沒搞懂是什麼
sheet.addValidationData(validation);
} else if(sheet instanceof HSSFSheet){
CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(explicitListValues);
DataValidation validation = new HSSFDataValidation(addressList, dvConstraint);
sheet.addValidationData(validation);
}
}