/** * 设置某些列的值只能输入预制的数据,显示下拉框. * @param sheet 要设置的sheet. * @param textlist 下拉框显示的内容 * @param firstRow 开始行 * @param endRow 结束行 * @param firstCol 开始列 * @param endCol 结束列 * @return 设置好的sheet. */ public static SXSSFSheet setHSSFValidation(SXSSFSheet sheet, String[] textlist, int firstRow, int endRow, int firstCol, int endCol) { DataValidationHelper validationHelper = sheet.getDataValidationHelper(); // 加载下拉列表内容 DataValidationConstraint explicitListConstraint = validationHelper.createExplicitListConstraint(textlist); // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 CellRangeAddressList regions = new CellRangeAddressList(firstRow,endRow, firstCol, endCol); // 数据有效性对象 DataValidation validation = validationHelper.createValidation(explicitListConstraint, regions); validation.setSuppressDropDownArrow(true); validation.createErrorBox("tip","请从下拉列表选取"); //错误警告框 validation.setShowErrorBox(true); sheet.addValidationData(validation); return sheet; }
/** * 指定した範囲のセルに制約を追加する。 * <p>POI-3.7以上が必要。 * @param sheet シート * @param constraint 制約 * @param startPosition 設定するセルの開始位置 * @param endPosition 設定するセルの終了位置 */ public static void setupConstaint(final Sheet sheet, final DataValidationConstraint constraint, final Point startPosition, final Point endPosition) { ArgUtils.notNull(sheet, "sheet"); ArgUtils.notNull(constraint, "constraint"); ArgUtils.notNull(startPosition, "startPosition"); ArgUtils.notNull(endPosition, "endPosition"); final DataValidationHelper helper = sheet.getDataValidationHelper(); final CellRangeAddressList region = new CellRangeAddressList( startPosition.y, endPosition.y, startPosition.x, endPosition.x ); final DataValidation dataValidation = helper.createValidation(constraint, region); sheet.addValidationData(dataValidation); }
/** * テンプレートの入力規則の制約「リスト」を追加する。 * <p>POI-3.7以上が必要。 * @param sheet シート * @param constraints 制約とするリストの中身 * @param startPosition 開始位置 * @param endPosition 終了位置 */ public static void setupExplicitListConstaint(final Sheet sheet, final String[] constraints, final Point startPosition, final Point endPosition) { ArgUtils.notNull(sheet, "sheet"); ArgUtils.notEmpty(constraints, "constraints"); ArgUtils.notNull(startPosition, "startPosition"); ArgUtils.notNull(endPosition, "endPosition"); final DataValidationHelper helper = sheet.getDataValidationHelper(); final DataValidationConstraint constraint = helper.createExplicitListConstraint(constraints); setupConstaint(sheet, constraint, startPosition, endPosition); }
/** * テンプレートの入力規則の制約「リスト」を式形式で追加する。 * <p>POI-3.7以上が必要。 * @param sheet シート * @param listFormula 入力規則の式('='は含まない) * @param startPosition 設定するセルの開始位置 * @param endPosition 設定するセルの終了位置 */ public static void setupFormulaListConstaint(final Sheet sheet, final String listFormula, final Point startPosition, final Point endPosition) { ArgUtils.notNull(sheet, "sheet"); ArgUtils.notEmpty(listFormula, "listFormula"); ArgUtils.notNull(startPosition, "startPosition"); ArgUtils.notNull(endPosition, "endPosition"); final DataValidationHelper helper = sheet.getDataValidationHelper(); final DataValidationConstraint constraint = helper.createFormulaListConstraint("=" + listFormula); setupConstaint(sheet, constraint, startPosition, endPosition); }
public DataValidationHelper getDataValidationHelper() { return sheet.getDataValidationHelper(); }
/** * Not supported */ @Override public DataValidationHelper getDataValidationHelper() { throw new UnsupportedOperationException(); }