Samples‎ > ‎NativePeer‎ > ‎

Add Validation to Range

This sample demonstrates how to add validation to a range.


import com.jniwrapper.win32.automation.types.BStr;
import com.jniwrapper.win32.automation.types.Variant;
import com.jniwrapper.win32.excel.Validation;
import com.jniwrapper.win32.excel.XlDVAlertStyle;
import com.jniwrapper.win32.excel.XlDVType;
import com.jniwrapper.win32.excel.XlFormatConditionOperator;
import com.jniwrapper.win32.jexcel.*;

import java.io.File;

/**
 * See https://msdn.microsoft.com/en-us/library/office/ff821214.aspx for Validation documentation
 */
public class RangeValidationSample {
    public static void main(String[] args) {
        Application application = null;
        Workbook workbook = null;
        try {
            application = new Application();
            workbook = application.openWorkbook(new File("validationSample.xls"));
            Worksheet worksheet = workbook.getWorksheet(1);
            Range range = worksheet.getRange("A1:D4");
            final com.jniwrapper.win32.excel.Range peer = range.getPeer();

            range.getOleMessageLoop().doInvokeAndWait(new Runnable() {
                public void run() {
                    Variant unspecifiedParameter = Variant.createUnspecifiedParameter();
                    Validation validation = peer.getValidation();
                    //delete existing validation
                    validation.delete();
                    validation.add(new XlDVType(XlDVType.xlValidateWholeNumber),
                            new Variant(new XlDVAlertStyle(XlDVAlertStyle.xlValidAlertStop)),
                            new Variant(new XlFormatConditionOperator(XlFormatConditionOperator.xlBetween)),
                            new Variant("5"),
                            new Variant("10"));
                    validation.setInputTitle(new BStr("Integers"));
                    validation.setErrorTitle(new BStr("Integers"));
                    validation.setInputMessage(new BStr("Enter an integer from five to ten"));
                    validation.setErrorMessage(new BStr("You must enter a number from five to ten"));

                    validation.setAutoDelete(false);
                    validation.release();
                }
            });
            workbook.save();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (workbook != null) {
                workbook.close(false);
            }
            if (application != null) {
                application.close(true);
            }
        }
    }
}