Poi(一)- excel新增下拉候選框(上)
阿新 • • 發佈:2021-02-16
寫這個部落格的目的主要是記錄一下工作中遇到的問題,方便以後查閱,畢竟記憶力越來越不好了
1 excel是怎麼新增下拉候選框的
選中某一個單元格,徐娜則資料驗證->驗證條件,選擇序列,在來源處輸入下拉框資料,以英文逗號分隔
2 java程式碼怎麼新增下拉候選框
2.1 hssf
public static void sheetConstraintHSSF(final Sheet sheet, final int firstRow, final int lastRow,
final int firstCol,
final int lastCol,
final List<String> strings) {
// 生成下拉列表 只對(firstRow,lastRow, firstCol, lastCol)單元格有效
final CellRangeAddressList cellRangeAddressList =
new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
// 生成下拉框內容
final DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings.toArray(new String[1]));
final HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
// 對sheet頁生效
sheet.addValidationData(dataValidation);
}
說說這幾個引數:
- 1 sheet頁,要新增下拉框的sheet
- 2 firstRow,從多少行開始新增
- 3 lastRow,到多少行截止
- 4 firstCol, lastCol,在哪一列上新增。
- 5 strings, 下拉列表的資料,如圖中的遼寧,大連等
2.2 xssf
public static void sheetConstraintXSSF(final Sheet sheet, final int firstRow, final int lastRow,
final int firstCol, final int lastCol, final List<String> strings) {
// 生成下拉列表 只對(firstRow,lastRow, firstCol, lastCol)單元格有效
final CellRangeAddressList cellRangeAddressList =
new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
final XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet);
final XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper
.createExplicitListConstraint(strings.toArray(new String[1]));
final XSSFDataValidation validation =
(XSSFDataValidation) dvHelper.createValidation(dvConstraint, cellRangeAddressList);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);
}
引數同上2.1
2.3 存在的問題
這種給excel新增下拉框的方式,下拉資料不能太多,因為excel的資料驗證序列部分有長度限制