mirror of
https://github.com/apache/poi.git
synced 2026-02-27 20:40:08 +08:00
fix issue
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898276 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
46e69ca69f
commit
c0dc2e51ce
@ -223,7 +223,7 @@ public final class OperationEvaluationContext {
|
||||
|
||||
SpreadsheetVersion ssVersion = _workbook.getSpreadsheetVersion();
|
||||
|
||||
NameType part1refType = isA1Style ? classifyCellReference(refStrPart1, ssVersion) : NameType.CELL;
|
||||
NameType part1refType = isA1Style ? classifyCellReference(refStrPart1, ssVersion) : getR1C1CellType(refStrPart1);
|
||||
switch (part1refType) {
|
||||
case BAD_CELL_OR_NAMED_RANGE:
|
||||
return ErrorEval.REF_INVALID;
|
||||
@ -255,7 +255,7 @@ public final class OperationEvaluationContext {
|
||||
}
|
||||
throw new IllegalStateException("Unexpected reference classification of '" + refStrPart1 + "'.");
|
||||
}
|
||||
NameType part2refType = isA1Style ? classifyCellReference(refStrPart1, ssVersion) : NameType.CELL;
|
||||
NameType part2refType = isA1Style ? classifyCellReference(refStrPart2, ssVersion) : getR1C1CellType(refStrPart2);
|
||||
switch (part2refType) {
|
||||
case BAD_CELL_OR_NAMED_RANGE:
|
||||
return ErrorEval.REF_INVALID;
|
||||
@ -573,4 +573,23 @@ public final class OperationEvaluationContext {
|
||||
throw new IllegalArgumentException(relativeReference + " is not a valid R1C1 reference");
|
||||
}
|
||||
}
|
||||
|
||||
private static NameType getR1C1CellType(String str) {
|
||||
String upRef = str.toUpperCase(LocaleUtil.getUserLocale());
|
||||
int rpos = upRef.indexOf('R');
|
||||
int cpos = upRef.indexOf('C');
|
||||
if (rpos != -1) {
|
||||
if (cpos == -1) {
|
||||
return NameType.ROW;
|
||||
} else {
|
||||
return NameType.CELL;
|
||||
}
|
||||
} else {
|
||||
if (cpos == -1) {
|
||||
return NameType.BAD_CELL_OR_NAMED_RANGE;
|
||||
} else {
|
||||
return NameType.COLUMN;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user