网上有很多通过poi实现excel动态下拉框的文章,但是,大多数的实现思路是这样的
查询下拉列表----写入单独sheet------隐藏sheet页-----利用excel公式读取隐藏sheet页中的数据实现下拉
现提供一种相对简单的实现方案
废话不多说,直接上工具方法
/**
* 下拉框赋值
*
* @param provinceList 需要赋值的集合
* @param mainSheet 待赋值的sheet页
* @param rowNum 开始行
* @param colNum 要赋值的列
*/
public void writeDropDownData(List<String> provinceList, HSSFSheet mainSheet, int rowNum, int colNum) {
CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(rowNum, last_row_num, colNum, colNum);
String[] dataArray = provinceList.toArray(new String[0]);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(dataArray);
HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
dataValidation.createErrorBox("error", "请选择有效的选项,或下载最新重试");
dataValidation.setShowErrorBox(true);
// 对sheet页生效
mainSheet.addValidationData(dataValidation);
}