4.4 下拉列表
POI对下拉列表稍优于JXL,jxl纯java下build下拉列表会出现下拉列表数量限度(之前我曾经碰到过此类问题)。两个下拉列表原理:首先创建一列隐藏数据,然后将此列中的数据build到下拉列表中展示。
主要类说明:
类名 |
说明 |
CellRangeAddressList |
New CellRangeAddress(firstRow,lastRow, firstCol, lastCol)四个参数表示设置成下拉列表的单元格范围 |
DVConstraint |
生成下拉列表的内容 |
HSSFDataValidation |
将下拉内容与下拉框进行绑定 |
下面将Excel第一列中的1-10行设置成下拉列表。
代码片段: public static HSSFWorkbook write(InputStream inputStream) throws IOException, ClassNotFoundException{ //初始一个workbook HSSFWorkbook workbook = new HSSFWorkbook(inputStream); //创建一个sheet HSSFSheet sheet = workbook.getSheetAt(0); //准备下拉列表数据 String[] strs = new String[]{"aa","bb","cc","dd","ee","ff","gg","hh","ii"}; //设置第一列的1-10行为下拉列表 CellRangeAddressList regions = new CellRangeAddressList(0, 9, 0, 0); //创建下拉列表数据 DVConstraint constraint = DVConstraint.createExplicitListConstraint(strs); //绑定 HSSFDataValidation dataValidation = new HSSFDataValidation(regions, constraint); sheet.addValidationData(dataValidation);
return workbook; } |
输出结果:
图23
注:如果想设置成整列都是下拉列表即将参数lastRow设置为65535。目前下拉列表这块好像只支持到128个数量。