Hi,
I've encountered a problem using custom Data Validations with XSSF
sheets. Adding the validation seems to work OK, but afterwards when I
try getValidations I get an XmlValueOutOfRangeException (full stack
trace below). The contents of the validation formula doesn't seem to
matter, and things seem to work correctly if I load a xlsx workbook
containing custom validations and then try to access them. Here is some
simplified example code that demonstrates the problem:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
sheet.getDataValidations(); //<-- works
//create the cell that will have the validation applied
sheet.createRow(0).createCell(0);
DataValidationHelper dataValidationHelper =
sheet.getDataValidationHelper();
DataValidationConstraint constraint =
dataValidationHelper.createCustomConstraint("SUM($A$1:$A$1) <= 3500");
CellRangeAddressList addressList = new CellRangeAddressList(0,
0, 0, 0);
DataValidation validation =
dataValidationHelper.createValidation(constraint, addressList);
sheet.addValidationData(validation);
sheet.getDataValidations(); //<-- raised
XmlValueOutOfRangeException
I also have the same problem when operating on an exisiting workbook
that contains sheets and cells, I've just simplified the code above.
Is this a bug or am I doing something wrong?
regards,
Stuart Owen
(stack trace below that comes from a test I have created using the above
code snippet)
org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: string
value '' is not a valid enumeration value for ST_DataValidationOperator
in namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
at
org.apache.xmlbeans.impl.values.JavaStringEnumerationHolderEx.set_text(JavaStringEnumerationHolderEx.java:39)
at
org.apache.xmlbeans.impl.values.XmlObjectBase.update_from_wscanon_text(XmlObjectBase.java:1135)
at
org.apache.xmlbeans.impl.values.XmlObjectBase.check_dated(XmlObjectBase.java:1274)
at
org.apache.xmlbeans.impl.values.JavaStringEnumerationHolderEx.enumValue(JavaStringEnumerationHolderEx.java:60)
at
org.apache.xmlbeans.impl.values.XmlObjectBase.getEnumValue(XmlObjectBase.java:1514)
at
org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTDataValidationImpl.getOperator(Unknown
Source)
at
org.apache.poi.xssf.usermodel.XSSFDataValidation.getConstraint(XSSFDataValidation.java:250)
at
org.apache.poi.xssf.usermodel.XSSFDataValidation.<init>(XSSFDataValidation.java:87)
at
org.apache.poi.xssf.usermodel.XSSFSheet.getDataValidations(XSSFSheet.java:3096)
at ......
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]