Example usage for org.apache.poi.hssf.usermodel DVConstraint createNumericConstraint

List of usage examples for org.apache.poi.hssf.usermodel DVConstraint createNumericConstraint

Introduction

In this page you can find the example usage for org.apache.poi.hssf.usermodel DVConstraint createNumericConstraint.

Prototype

public static DVConstraint createNumericConstraint(int validationType, int comparisonOperator, String expr1,
        String expr2) 

Source Link

Document

Creates a number based data validation constraint.

Usage

From source file:com.dituiba.excel.DefaultValidateAdapter.java

License:Apache License

/**
 * ?/*from www .j  av a  2  s. c  o m*/
 * @param dataBean
 * @param sheet
 * @param columnIndex
 * @param filedName
 */
public void NumericValidateAdapter(DataBean dataBean, Sheet sheet, int columnIndex, String filedName) {
    NumericValidateConfig config = dataBean.getValidateConfig(filedName);
    DVConstraint constraint = DVConstraint.createNumericConstraint(
            DataValidationConstraint.ValidationType.DECIMAL, DataValidationConstraint.OperatorType.BETWEEN,
            config.min(), config.max());
    // ??,????
    CellRangeAddressList regions = new CellRangeAddressList(BaseExcelService.START_ROW, Short.MAX_VALUE,
            columnIndex, columnIndex);
    // ?
    DataValidation data_validation_list = new HSSFDataValidation(regions, constraint);
    setValidationTip(data_validation_list, config);
    sheet.addValidationData(data_validation_list);
}

From source file:com.dituiba.excel.DefaultValidateAdapter.java

License:Apache License

/**
 * ?/*  w  w  w  .j ava 2s  .c o  m*/
 * @param dataBean
 * @param sheet
 * @param columnIndex
 * @param filedName
 */
public void IntegerValidateAdapter(DataBean dataBean, Sheet sheet, int columnIndex, String filedName) {
    IntValidateConfig config = dataBean.getValidateConfig(filedName);
    DVConstraint constraint = DVConstraint.createNumericConstraint(
            DataValidationConstraint.ValidationType.INTEGER, DataValidationConstraint.OperatorType.BETWEEN,
            config.min(), config.max());
    // ??,????
    CellRangeAddressList regions = new CellRangeAddressList(BaseExcelService.START_ROW, Short.MAX_VALUE,
            columnIndex, columnIndex);
    // ?
    DataValidation data_validation_list = new HSSFDataValidation(regions, constraint);
    setValidationTip(data_validation_list, config);
    sheet.addValidationData(data_validation_list);
}

From source file:com.dituiba.excel.DefaultValidateAdapter.java

License:Apache License

/**
 * ?/*from  w  ww .ja v a  2s . c  o m*/
 * @param dataBean
 * @param sheet
 * @param columnIndex
 * @param filedName
 */
public void TextValidateAdapter(DataBean dataBean, Sheet sheet, int columnIndex, String filedName) {
    TextValidateConfig config = dataBean.getValidateConfig(filedName);
    if (config.length() != 0) {
        DVConstraint constraint = DVConstraint.createNumericConstraint(DVConstraint.ValidationType.TEXT_LENGTH,
                DVConstraint.OperatorType.LESS_OR_EQUAL, config.length() + "", null);
        // ??,????
        CellRangeAddressList regions = new CellRangeAddressList(BaseExcelService.START_ROW, Short.MAX_VALUE,
                columnIndex, columnIndex);
        // ?
        DataValidation data_validation_list = new HSSFDataValidation(regions, constraint);
        setValidationTip(data_validation_list, config);
        sheet.addValidationData(data_validation_list);
    }
}

From source file:org.sysmodb.PatchedPoi.java

License:BSD License

public List<HSSFDataValidation> getValidationData(final HSSFSheet sheet, final HSSFWorkbook workbook) {
    final List<HSSFDataValidation> dataValidation = new ArrayList<HSSFDataValidation>();
    try {//from  www. j  av a 2  s .  c om
        DataValidityTable dvt = sheet.getDataValidityTable();
        dvt.visitContainedRecords(new RecordAggregate.RecordVisitor() {
            /**
             * /** Implementors may call non-mutating methods on Record r.
             * 
             * @param r must not be <code>null</code>
             *            
             */
            public void visitRecord(Record r) {
                if (r instanceof DVRecord) {
                    DVRecord dvRecord = (DVRecord) r;
                    CellRangeAddressList cellRangeAddressList = dvRecord.getCellRangeAddress();
                    int validationType = dvRecord.getDataType();
                    if (validationType == DVConstraint.ValidationType.LIST) {
                        Formula f1 = dvRecord.getFormula1();
                        String formula1 = getStringFromPtgTokens(f1.getTokens(), workbook);
                        DVConstraint dvConstraint = DVConstraint.createFormulaListConstraint(formula1);
                        HSSFDataValidation validation = new HSSFDataValidation(cellRangeAddressList,
                                dvConstraint);
                        dataValidation.add(validation);
                    } else if (validationType == DVConstraint.ValidationType.INTEGER
                            || validationType == DVConstraint.ValidationType.DECIMAL
                            || validationType == DVConstraint.ValidationType.TEXT_LENGTH) {
                        Formula f1 = dvRecord.getFormula1();
                        Formula f2 = dvRecord.getFormula2();
                        String formula1 = getStringFromPtgTokens(f1.getTokens(), workbook);
                        String formula2 = getStringFromPtgTokens(f2.getTokens(), workbook);
                        if (!formula2.isEmpty()) {
                            int comparison = dvRecord.getConditionOperator();
                            DVConstraint dvConstraint = DVConstraint.createNumericConstraint(validationType,
                                    comparison, formula1, formula2);
                            HSSFDataValidation validation = new HSSFDataValidation(cellRangeAddressList,
                                    dvConstraint);
                            dataValidation.add(validation);
                        }
                    }
                }
            }
        });
    } catch (IllegalStateException e) {
        logger.warning("Unable to read data validations - " + e.getMessage());
    }

    return dataValidation;
}

From source file:uk.ac.manchester.cs.owl.semspreadsheets.model.hssf.impl.PatchedPoi.java

License:BSD License

public List<HSSFDataValidation> getValidationData(final HSSFSheet sheet, final HSSFWorkbook workbook) {
    final List<HSSFDataValidation> dataValidation = new ArrayList<HSSFDataValidation>();
    DataValidityTable dvt = sheet.getDataValidityTable();
    dvt.visitContainedRecords(new RecordAggregate.RecordVisitor() {
        /**/* w ww .  ja v a 2 s .  co m*/
         * /** Implementors may call non-mutating methods on Record r.
         * 
         * @param r must not be <code>null</code>
         *            
         */
        public void visitRecord(Record r) {
            if (r instanceof DVRecord) {
                DVRecord dvRecord = (DVRecord) r;
                CellRangeAddressList cellRangeAddressList = dvRecord.getCellRangeAddress();
                int validationType = dvRecord.getDataType();
                if (validationType == DVConstraint.ValidationType.LIST) {
                    Formula f1 = dvRecord.getFormula1();
                    String formula1 = getStringFromPtgTokens(f1.getTokens(), workbook);
                    DVConstraint dvConstraint = DVConstraint.createFormulaListConstraint(formula1);
                    HSSFDataValidation validation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
                    dataValidation.add(validation);
                } else if (validationType == DVConstraint.ValidationType.INTEGER
                        || validationType == DVConstraint.ValidationType.DECIMAL
                        || validationType == DVConstraint.ValidationType.TEXT_LENGTH) {
                    Formula f1 = dvRecord.getFormula1();
                    Formula f2 = dvRecord.getFormula2();
                    String formula1 = getStringFromPtgTokens(f1.getTokens(), workbook);
                    String formula2 = getStringFromPtgTokens(f2.getTokens(), workbook);
                    if (!formula2.isEmpty()) { //potentially caused by macros, which leads to a error when attempting to create the constraint
                        int comparison = dvRecord.getConditionOperator();
                        DVConstraint dvConstraint = DVConstraint.createNumericConstraint(validationType,
                                comparison, formula1, formula2);
                        HSSFDataValidation validation = new HSSFDataValidation(cellRangeAddressList,
                                dvConstraint);
                        dataValidation.add(validation);
                    }

                } else if (validationType == DVConstraint.ValidationType.FORMULA) {
                    Formula f1 = dvRecord.getFormula1();

                    String formula1 = getStringFromPtgTokens(f1.getTokens(), workbook);
                    //doesn't contain the full formula, including cell and comparison - but should contain all the information needed. If not, getStringFromPtgTokens
                    //needs updating to handle the extra token types
                    DVConstraint dvConstraint = DVConstraint.createCustomFormulaConstraint(formula1);

                    HSSFDataValidation validation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
                    dataValidation.add(validation);
                }

            }
        }
    });
    return dataValidation;
}