497a934374
* Fix for 3 Issues Involving ReadXlsx and NamedRange Issues #1686 and #1723, which provide sample spreadsheets, are probably solved by this ticket. Issue #1730 is also probably solved, but I have no way to verify. There are two problems with how PhpSpreadsheet is handling things now. Although the first problem is much less severe, and isn't really a factor in the issues named above, it is helpful to get it out of the way first. If you define a named range in Excel, and then delete the sheet where the range exists, Excel saves the range as #REF!. If there is a cell which references the range, it will similarly have the value #REF! when you open the Excel file. Currently, PhpSpreadsheet discards the #REF! definition, so a cell which references the range will appear as #NAME? rather than #REF!. This PR changes the behavior so that PhpSpreadsheet retains the #REF! definition, and cells which reference it will appear as #REF!. The second problem is the more severe, and is, I believe, responsible for the 3 issues identified above. If you define a named range and the sheet on which the range is defined does not exist at the time, Excel will save the range as something like: '[1]Unknown Sheet'!$A$1 If a cell references such a range, Excel will again display #REF!. PhpSpreadsheet currently throws an Exception when it encounters such a definition while reading the file. This PR changes the behavior so that PhpSpreadsheet saves the definition as #REF!, and cells which reference it will behave similarly. For the record, I will note that Excel does not magically recalculate when a missing sheet is subsequently added, despite the fact that the reference might now become resolvable. PhpSpreadsheet behaves likewise. * Remove Dead Code in Test Identified it after push but before merge. |
||
---|---|---|
.. | ||
Calculation | ||
Cell | ||
Functional/TypeAttributePreservation | ||
Reader | ||
Shared | ||
Style | ||
Writer | ||
CalculationBinaryComparisonOperation.php | ||
CellAbsoluteCoordinate.php | ||
CellAbsoluteReference.php | ||
CellBuildRange.php | ||
CellCoordinates.php | ||
CellExtractAllCellReferencesInRange.php | ||
CellGetRangeBoundaries.php | ||
CellMergeRangesInCollection.php | ||
CellRangeBoundaries.php | ||
CellRangeDimension.php | ||
CellSplitRange.php | ||
ColumnIndex.php | ||
ColumnString.php | ||
CoordinateIsRange.php | ||
ReferenceHelperFormulaUpdates.php | ||
ReferenceHelperFormulaUpdatesMultipleSheet.php |