Small tweaks for data validation (bug 44953)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@682230 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a6275bcf99
commit
beb9838b48
@ -312,7 +312,7 @@ public class DVConstraint {
|
|||||||
return new Double(HSSFDateUtil.getExcelDate(dateVal));
|
return new Double(HSSFDateUtil.getExcelDate(dateVal));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DVConstraint createFormulaConstraint(String formula) {
|
public static DVConstraint createCustomFormulaConstraint(String formula) {
|
||||||
if (formula == null) {
|
if (formula == null) {
|
||||||
throw new IllegalArgumentException("formula must be supplied");
|
throw new IllegalArgumentException("formula must be supplied");
|
||||||
}
|
}
|
||||||
|
@ -45,11 +45,11 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
|||||||
public final class TestDataValidation extends TestCase {
|
public final class TestDataValidation extends TestCase {
|
||||||
|
|
||||||
/** Convenient access to ERROR_STYLE constants */
|
/** Convenient access to ERROR_STYLE constants */
|
||||||
private static final HSSFDataValidation.ErrorStyle ES = null;
|
/*package*/ static final HSSFDataValidation.ErrorStyle ES = null;
|
||||||
/** Convenient access to OPERATOR constants */
|
/** Convenient access to OPERATOR constants */
|
||||||
private static final DVConstraint.ValidationType VT = null;
|
/*package*/ static final DVConstraint.ValidationType VT = null;
|
||||||
/** Convenient access to OPERATOR constants */
|
/** Convenient access to OPERATOR constants */
|
||||||
private static final DVConstraint.OperatorType OP = null;
|
/*package*/ static final DVConstraint.OperatorType OP = null;
|
||||||
|
|
||||||
private static void log(String msg) {
|
private static void log(String msg) {
|
||||||
if (false) { // successful tests should be silent
|
if (false) { // successful tests should be silent
|
||||||
@ -130,7 +130,7 @@ public final class TestDataValidation extends TestCase {
|
|||||||
return DVConstraint.createDateConstraint(operatorType, firstFormula, secondFormula, null);
|
return DVConstraint.createDateConstraint(operatorType, firstFormula, secondFormula, null);
|
||||||
}
|
}
|
||||||
if (_validationType == VT.FORMULA) {
|
if (_validationType == VT.FORMULA) {
|
||||||
return DVConstraint.createFormulaConstraint(firstFormula);
|
return DVConstraint.createCustomFormulaConstraint(firstFormula);
|
||||||
}
|
}
|
||||||
return DVConstraint.createNumericConstraint(_validationType, operatorType, firstFormula, secondFormula);
|
return DVConstraint.createNumericConstraint(_validationType, operatorType, firstFormula, secondFormula);
|
||||||
}
|
}
|
||||||
@ -573,23 +573,8 @@ public final class TestDataValidation extends TestCase {
|
|||||||
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("dvEmpty.xls");
|
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("dvEmpty.xls");
|
||||||
int dvRow = 0;
|
int dvRow = 0;
|
||||||
HSSFSheet sheet = wb.getSheetAt(0);
|
HSSFSheet sheet = wb.getSheetAt(0);
|
||||||
sheet.createRow(dvRow).createCell((short)0);
|
DVConstraint dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "42", null);
|
||||||
DVConstraint dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "402", null);
|
HSSFDataValidation dv = new HSSFDataValidation(new CellRangeAddressList(dvRow, dvRow, 0, 0), dc);
|
||||||
HSSFDataValidation dv = new HSSFDataValidation(new CellRangeAddressList(dvRow, 0, dvRow, 0), dc);
|
|
||||||
|
|
||||||
|
|
||||||
dv.setEmptyCellAllowed(false);
|
|
||||||
dv.setErrorStyle(ES.STOP);
|
|
||||||
dv.setShowPromptBox(true);
|
|
||||||
dv.createErrorBox("Error", "The value is wrong");
|
|
||||||
dv.setSuppressDropDownArrow(true);
|
|
||||||
|
|
||||||
// sheet.addValidationData(dv);
|
|
||||||
|
|
||||||
|
|
||||||
dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "42", null);
|
|
||||||
dv = new HSSFDataValidation(new CellRangeAddressList(0, 0, 0, 0), dc);
|
|
||||||
|
|
||||||
|
|
||||||
dv.setEmptyCellAllowed(false);
|
dv.setEmptyCellAllowed(false);
|
||||||
dv.setErrorStyle(ES.STOP);
|
dv.setErrorStyle(ES.STOP);
|
||||||
@ -599,8 +584,6 @@ public final class TestDataValidation extends TestCase {
|
|||||||
|
|
||||||
sheet.addValidationData(dv);
|
sheet.addValidationData(dv);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
try {
|
try {
|
||||||
wb.write(baos);
|
wb.write(baos);
|
||||||
@ -637,22 +620,9 @@ public final class TestDataValidation extends TestCase {
|
|||||||
// and the DV records, Excel will not be able to open the workbook without error.
|
// and the DV records, Excel will not be able to open the workbook without error.
|
||||||
|
|
||||||
if (nextSid == 0x0867) {
|
if (nextSid == 0x0867) {
|
||||||
throw new AssertionFailedError("Identified bug XXXX");
|
throw new AssertionFailedError("Identified bug 45519");
|
||||||
}
|
}
|
||||||
assertEquals(DVRecord.sid, nextSid);
|
assertEquals(DVRecord.sid, nextSid);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
File tempDir = new File("c:/josh/temp");
|
|
||||||
File generatedFile = new File(tempDir, "dvEx2.xls");
|
|
||||||
try {
|
|
||||||
FileOutputStream fileOut = new FileOutputStream(generatedFile);
|
|
||||||
wb.write(fileOut);
|
|
||||||
fileOut.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
private int findIndex(byte[] largeData, byte[] searchPattern) {
|
private int findIndex(byte[] largeData, byte[] searchPattern) {
|
||||||
byte firstByte = searchPattern[0];
|
byte firstByte = searchPattern[0];
|
||||||
|
Loading…
Reference in New Issue
Block a user