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);
}
}
}
}
|
|