1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
public static void selectList(Workbook workbook, int firstRow, int lastRow, int firstCol, int lastCol, String[] dataArray, int sheetHidden) {
String hiddenName = "hidden_" + (int) ((Math.random() * 9 + 1) * 100); Sheet sheet = workbook.getSheetAt(0); Sheet hidden = workbook.createSheet(hiddenName); Cell cell = null; for (int i = 0, length = dataArray.length; i < length; i++) { String name = dataArray[i]; Row row = hidden.createRow(i); cell = row.createCell(0); cell.setCellValue(name); }
Name namedCell = workbook.createName(); namedCell.setNameName(hiddenName);
namedCell.setRefersToFormula(hiddenName + "!$A$1:$A$" + dataArray.length); DVConstraint constraint = DVConstraint.createFormulaListConstraint(hiddenName);
CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol); HSSFDataValidation validation = new HSSFDataValidation(addressList, constraint);
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet); DataValidationConstraint dvConstraint = dvHelper.createFormulaListConstraint(hiddenName); dvConstraint.setOperator(0); CellRangeAddressList xssfAddressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol); XSSFDataValidation xssfDataValidation = (XSSFDataValidation) dvHelper.createValidation( dvConstraint, xssfAddressList); xssfDataValidation.setShowErrorBox(true); xssfDataValidation.createErrorBox("Hello", "World"); workbook.setSheetHidden(sheetHidden, true); sheet.addValidationData(xssfDataValidation); }
|