PhpSpreadsheet/tests/PhpSpreadsheetTests
oleibman faf6d819c6
Keep Calculated String Results Below 32K (#2921)
* Keep Calculated String Results Below 32K

This is the result of an investigation into issue #2884 (see also PR #2913). It is, unfortunately, not a fix for the original problem; see the discussion in that PR for why I don't think there is a practical fix for that specific problem at this time.

Excel limits strings to 32,767 characters. We already truncate strings to that length when added to the spreadsheet. However, we have been able to exceed that length as a result of the concatenation operator (Excel truncates); as a result of the CONCATENATE or TEXTJOIN functions (Excel returns #CALC!); or as a result of the REPLACE, REPT, SUBSTITUTE functions (Excel returns #VALUE!). This PR changes PhpSpreadsheet to return the same value as Excel in these cases. Note that Excel2003 truncates in all those cases; I don't think there is a way to differentiate that behavior in PhpSpreadsheet.

However, LibreOffice and Gnumeric do not have that limit; if they have a limit at all, it is much higher. It would be fairly easy to use existing settings to differentiate between Excel and LibreOffice/Gnumeric in this respect. I have not done so in this PR because I am not sure how useful that is, and I can easily see it leading to problems (read in a LibreOffice spreadsheet with a 33K cell and then output to an Excel spreadsheet). Perhaps it should be handled with an additional opt-in setting.

I changed the maximum size from a literal to a constant in the one place where it was already being enforced (Cell/DataType). I am not sure that is the best place for it to be defined; I am open to suggestions.

* Implement Some Suggestions

... from @MarkBaker.
2022-07-04 08:30:46 -07:00
..
Calculation Keep Calculated String Results Below 32K (#2921) 2022-07-04 08:30:46 -07:00
Cell Add functionality to adjust CellRange by "modifying" the from/to CellAddress Value objects 2022-04-01 15:41:55 +02:00
Chart Additional Support for Chart DataSeriesValues (#2906) 2022-06-29 17:52:09 -07:00
Collection More significant reductions in memory usage for peaks, and faster execution times for key Cell Collection methods 2022-04-30 17:07:24 +02:00
Custom Reduce PHPStan error in tests 2021-04-12 11:10:23 +09:00
Document Fix Fluke Failure in Document Properties Test (#2738) 2022-04-17 08:44:29 -07:00
Features/AutoFilter/Xlsx Issue 2216 resolve office365 auto filter structure move (#2218) 2021-07-12 03:19:40 +02:00
Functional Some Fixes for Scatter Charts (#2828) 2022-05-17 07:48:24 -07:00
Helper Html Reader Converting Cell Containing 0 to Null String (#2813) 2022-05-10 07:33:45 -07:00
Reader Php/iconv Should Not Treat FFFE/FFFF as Valid (#2910) 2022-07-02 08:53:39 -07:00
Shared Php/iconv Should Not Treat FFFE/FFFF as Valid (#2910) 2022-07-02 08:53:39 -07:00
Style Coverage Improvements (#2859) 2022-06-01 08:29:56 -07:00
Worksheet New functionality to allow checking whether a row or column is "empty", with flags to allow variation in the definition of "empty" 2022-06-07 20:22:33 +02:00
Writer Additional Support for Chart DataSeriesValues (#2906) 2022-06-29 17:52:09 -07:00
CellReferenceHelperTest.php Provide $includeAbsoluteReferences option for the CellReferenceHelper when updating cell addresses 2022-03-16 19:14:50 +01:00
CommentTest.php phpcs fxes 2022-06-14 12:19:54 +02:00
DefinedNameFormulaTest.php Reduce PHPStan error in tests 2021-04-12 11:10:23 +09:00
DefinedNameTest.php Reduce PHPStan error in tests 2021-04-12 11:10:23 +09:00
DocumentGeneratorTest.php Move documentation builder to infra so that it isn't included in non `--dev` composer downloads 2021-05-28 22:35:37 +02:00
HashTableTest.php Improve Coverage for HashTable, Fix Clone 2021-05-30 13:03:37 +02:00
IOFactoryTest.php Allow Reader format identification to use a subset of possible Readers 2022-04-19 14:24:53 +02:00
LocaleGeneratorTest.php Fix phpcs, phpstan and scrutinizer issues 2021-05-28 22:35:37 +02:00
NamedFormulaTest.php Phpstan Differences from Php7 to Php8, Again (#2665) 2022-03-11 23:28:30 -08:00
NamedRange2Test.php Validate Input to SetSelectedCells (#2280) 2021-09-11 06:55:00 -07:00
NamedRangeTest.php Phpstan Differences from Php7 to Php8, Again (#2665) 2022-03-11 23:28:30 -08:00
ReferenceHelperTest.php More unit testing for inserting/deleting rows/columns with DataValidation, ConditionalFormatting and PrintArea 2022-03-17 15:48:30 +01:00
RichTextTest.php Coverage Improvements (#2859) 2022-06-01 08:29:56 -07:00
SettingsTest.php Fix SettingsTest 2021-06-30 11:33:35 -07:00
SpreadsheetTest.php FIX: Invalid styles in rowDimensions of added external sheet. 2022-04-12 13:38:19 +02:00