HSSFSheet hidden = wk.createSheet("hidden"); HSSFCell cell = null; for (int i = 0, length= strs.length; i < length; i++) { String name = strs[i]; HSSFRow row = hidden.createRow(i); cell = row.createCell(0); cell.setCellValue(name); } CellRangeAddressList regions = new CellRangeAddressList(0,0, 0, 0); //获取单元格的坐标 System.out.println(regions.getCellRangeAddress(0).formatAsString()); Name namedCell = wk.createName(); namedCell.setNameName("hidden"); namedCell.setRefersToFormula("hidden!A1:A" + strs.length); //加载数据,将名称为hidden的 DVConstraint constraint = DVConstraint.createFormulaListConstraint("hidden"); // 设置数据有效性加载在哪一个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 CellRangeAddressList addressList = new CellRangeAddressList(2, 65535, 0, 0); HSSFDataValidation validation = new HSSFDataValidation(addressList, constraint); //将第二个sheet设置为隐藏 wk.setSheetHidden(1, true); st.addValidationData(validation);