mirror of https://github.com/apache/poi.git
[bug-66087] make DStar functions case insensitive
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901229 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e5398e8a88
commit
3f414c760c
|
@ -17,6 +17,7 @@
|
|||
|
||||
package org.apache.poi.ss.formula.functions;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.apache.poi.ss.formula.eval.AreaEval;
|
||||
|
@ -30,6 +31,7 @@ import org.apache.poi.ss.formula.eval.StringEval;
|
|||
import org.apache.poi.ss.formula.eval.StringValueEval;
|
||||
import org.apache.poi.ss.formula.eval.ValueEval;
|
||||
import org.apache.poi.ss.util.NumberComparer;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
|
||||
/**
|
||||
* This class performs a D* calculation. It takes an {@link IDStarAlgorithm} object and
|
||||
|
@ -316,7 +318,7 @@ public final class DStarRunner implements Function3Arg {
|
|||
return testNumericCondition(value, operator.equal, stringOrNumber);
|
||||
} else { // It's a string.
|
||||
String valueString = value instanceof BlankEval ? "" : OperandResolver.coerceValueToString(value);
|
||||
return stringOrNumber.equals(valueString);
|
||||
return stringOrNumber.equalsIgnoreCase(valueString);
|
||||
}
|
||||
} else { // It's a text starts-with condition.
|
||||
if(conditionString.isEmpty()) {
|
||||
|
@ -324,7 +326,7 @@ public final class DStarRunner implements Function3Arg {
|
|||
}
|
||||
else {
|
||||
String valueString = value instanceof BlankEval ? "" : OperandResolver.coerceValueToString(value);
|
||||
return valueString.startsWith(conditionString);
|
||||
return valueString.toLowerCase(LocaleUtil.getUserLocale()).startsWith(conditionString.toLowerCase(LocaleUtil.getUserLocale()));
|
||||
}
|
||||
}
|
||||
} else if(condition instanceof NumericValueEval) {
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue