POI在生成excel模板时需要为列添加下拉框,我写了两个方法。
@ 方法一:适用任何情况,不受下拉框值数量限制。但是需要通过引用其它列值。
思路大概如下:
1.创建一个隐藏的sheet页,用于存放下拉框的值。
HSSFSheet listSheet = workBook.createSheet("ShtDictionary");//隐藏的sheet,用于存放下拉框的限定值
2.将下拉框的值放置在隐藏sheet【ShtDictionary】某列
//rows表示下拉框限定值的个数for(int i = 0 ;i
String cellValue = ...;
listSheet.createRow(i).createCell(0).setCellValue(cellValue);
}
3.添加下拉框引用
setHSSFValidation(HSSFSheet sheet,String sheetName, int lastRow,String col, int firstRow, int endRow, int firstCol, intendCol)
@ 自定义方法详解
/*** 设置某些列的值只能sheet中某列输入预制的数据,显示下拉框.
*@paramHSSFSheet sheet 模板sheet页(需要设置下拉框的sheet)
*@paramString sheetName 隐藏的sheet页,用于存放下拉框的值 (下拉框值对应一列)
*@paramint lastRow 存放下拉框值的最后一行
*@paramString col 存放下拉框值的列名 "A"
*@paramint first