import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataValidation; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; // 初始一個workbook HSSFWorkbook workbook = new HSSFWorkbook(); // 創建一個sheet HSSFSheet sheet= workbook.createSheet(); // 創建行 HSSFRow row= sheet.createRow(0); // 創建列 HSSFCell cell= row.createCell(index++); // 准備下拉列表數據 List<BasicDBObject> options = (List<BasicDBObject>) bo.get("options"); String[] optionArr = new String[options.size()]; for (int i = 0; i < options.size(); i++) { optionArr[i] = options.get(i).getString("value"); } // 設置第一列的1-10000行為下拉列表 CellRangeAddressList regions = new CellRangeAddressList(0, 10000, 0, 0); // 創建下拉列表數據 DVConstraint constraint = DVConstraint.createExplicitListConstraint(optionArr); // 綁定 HSSFDataValidation dataValidation = new HSSFDataValidation(regions, constraint); sheet.addValidationData(dataValidation);