Fixed Functions->ifCondition for allowing <> and empty condition
In cells with formulas containing conditions like `=IFSUM(A1:A3;"";B1:B3)` to sum cells from range A1:A3 with empty value in range B1:B3, the function `Functions::ifCondition()` create in this case the code `=""""` instead of `=""`, so it didn't work. Closes #1206
This commit is contained in:
parent
b20f5c1d11
commit
156ab360fe
|
@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org).
|
|||
- Keep big integer as integer instead of lossely casting to float [#874](https://github.com/PHPOffice/PhpSpreadsheet/pull/874)
|
||||
- Fix branch pruning handling of non boolean conditions [#1167](https://github.com/PHPOffice/PhpSpreadsheet/pull/1167)
|
||||
- Fix ODS Reader when no DC namespace are defined [#1182](https://github.com/PHPOffice/PhpSpreadsheet/pull/1182)
|
||||
- Fixed Functions->ifCondition for allowing <> and empty condition [#1206](https://github.com/PHPOffice/PhpSpreadsheet/pull/1206)
|
||||
|
||||
## [1.9.0] - 2019-08-17
|
||||
|
||||
|
|
|
@ -278,7 +278,7 @@ class Functions
|
|||
$condition = Calculation::wrapResult(strtoupper($condition));
|
||||
}
|
||||
|
||||
return '=' . $condition;
|
||||
return str_replace('""""', '""', '=' . $condition);
|
||||
}
|
||||
preg_match('/(=|<[>=]?|>=?)(.*)/', $condition, $matches);
|
||||
[, $operator, $operand] = $matches;
|
||||
|
@ -290,7 +290,7 @@ class Functions
|
|||
$operand = Calculation::wrapResult(strtoupper($operand));
|
||||
}
|
||||
|
||||
return $operator . $operand;
|
||||
return str_replace('""""', '""', $operator . $operand);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,4 +33,12 @@ return [
|
|||
'<>"< PLEASE SELECT >"',
|
||||
'<>< Please Select >',
|
||||
],
|
||||
[
|
||||
'<>""',
|
||||
'<>',
|
||||
],
|
||||
[
|
||||
'=""',
|
||||
'""',
|
||||
],
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue