Commit Graph

5391 Commits

Author SHA1 Message Date
oleibman fca2184fdf Fix Phpstan Problems 2025-03-07 22:15:50 -08:00
oleibman b2d885fc4c Merge branch 'master' into stan2lv901 2025-03-07 21:55:50 -08:00
oleibman 9fc52cd91c Update CHANGELOG.md 2025-03-07 21:53:55 -08:00
oleibman 6ec2cc97a8 Merge pull request #4390 from oleibman/customfunc
Add Ability to Add Custom Functions to Calculation
2025-03-08 05:38:04 +00:00
oleibman 4d81e53606 Merge branch 'master' into customfunc 2025-03-07 11:47:56 -08:00
oleibman 3ef8ec4b1a Merge pull request #4393 from oleibman/formularange
Add FormulaRange to IgnoredErrors Possibilities
2025-03-07 03:44:16 +00:00
oleibman 6ab82465f8 Update CHANGELOG.md 2025-03-06 19:41:46 -08:00
oleibman c0a966b9bb Add a Test
Prove you can't override a built-in function.
2025-03-06 16:40:09 -08:00
oleibman acf20f079d Merge pull request #4389 from oleibman/issue4383
BIN2DEC, OCT2DEC, HEX2DEC Return Numbers Rather than Strings
2025-03-06 06:20:14 +00:00
oleibman d1d12ed92d Phpstan Level 9 - Part 1 of Many
Dealing mostly with mixed variable type. In a great many cases, problems can be resolved replacing `getValue` with `getValueString` or `getCalculatedValue` with `getCalculatedValueString`.
2025-03-05 21:59:54 -08:00
oleibman 190af743f8 Add FormulaRange to IgnoredErrors Possibilities
When I implemented IgnoredErrors (PR #3508), I dealt only with those that I understood well enough to come up with an example. I finally found an example for FormulaRange in the wild, so this PR adds it. Still unsupported are `calculatedColumn`, `emptyCellReferece`, `listDataValidation`, and `unlockedFormula`.
2025-03-03 20:16:12 -08:00
oleibman 93069fd1ad Merge pull request #4392 from christian-fries/patch-1
Add sheet state to worksheet info
2025-03-03 16:40:02 +00:00
Christian Fries 27518ac6d8 Add sheet state to worksheet info 2025-03-03 11:24:49 +01:00
oleibman 53bce34456 Add Ability to Add Custom Functions to Calculation
For an overview of why this is desired (and ways that people have coped with its absence), see issue #2900 and issue #4048; also PR #4043 which will be superseded by this PR.

The list of Excel functions is moved from Calculation/Calculation to its own member. I believe that it is done in a way that will not cause big complications to two experiments from @MarkBaker (PR #2714 and PR #2734). I believe it is also done in such a way that further refactoring of Calculation can follow this model.

Custom functions can be added or removed from the function list. You cannot add a function if it already exists in the list, and you cannot remove a non-custom function from the list. They will, of course, not be understood by Excel if written to a spreadsheet; the use case is mainly using the Calculation engine outside of spreadsheet context.
2025-03-02 13:56:34 -08:00
oleibman a67a981d5e BIN2DEC, OCT2DEC, HEX2DEC Return Numbers Rather than Strings
Fix #4383.
2025-03-02 01:16:14 -08:00
oleibman 875dc354f9 Merge pull request #4384 from oleibman/stan2new
Phpstan V2
2025-03-02 07:05:51 +00:00
oleibman 6ff18c3a8d Merge pull request #4388 from oleibman/changelog20250301
Prepare Changelog for New Release
4.1.0
2025-03-02 06:52:24 +00:00
oleibman c13e803bf2 Prepare Changelog for New Release 2025-03-01 22:47:54 -08:00
oleibman 7fd06b524a Merge pull request #4387 from PHPOffice/dependabot/composer/friendsofphp/php-cs-fixer-3.70.0
Bump friendsofphp/php-cs-fixer from 3.68.5 to 3.70.0
2025-03-01 15:23:29 +00:00
dependabot[bot] 0cac522ca5 Bump friendsofphp/php-cs-fixer from 3.68.5 to 3.70.0
Bumps [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) from 3.68.5 to 3.70.0.
- [Release notes](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.5...v3.70.0)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 11:19:12 +00:00
oleibman 4791209658 Merge pull request #4382 from oleibman/issue4381
Handle #REF! As Argument to COUNTIF, AVERAGEIF, SUMIF
2025-03-01 00:20:33 +00:00
oleibman 44ed8a8b6d Merge branch 'master' into issue4381 2025-02-28 16:17:52 -08:00
oleibman 98e5a3f7da Update CHANGELOG.md 2025-02-28 16:17:13 -08:00
oleibman 027a5c69c1 Merge pull request #3341 from HuongNV13/php82-str-split-function-return
Fix PHP8.2 str_split function returns empty arrays for empty strings
2025-02-28 23:57:21 +00:00
oleibman 93169c6203 Update CHANGELOG.md 2025-02-28 15:54:46 -08:00
oleibman 497d036e91 Make Use of UTF-8 Explicit
Php manual describes it as good practice to do so.
2025-02-27 09:49:13 -08:00
oleibman a1f90b76e4 Add A Test 2025-02-26 18:52:31 -08:00
oleibman a2040b88b5 Phpstan V2 2025-02-26 14:18:58 -08:00
oleibman ea490a1d87 Remove Unwanted Tests 2025-02-26 00:58:57 -08:00
oleibman fcc781d3d7 Merge branch 'master' into php82-str-split-function-return 2025-02-25 22:33:31 -08:00
oleibman a936254e10 Merge pull request #3528 from oleibman/pr1449
Partial Solution for Removing Rows or Columns that Include Edge Ranges
2025-02-26 05:03:23 +00:00
oleibman 1e2c86bdbb Update CHANGELOG.md 2025-02-25 21:00:46 -08:00
oleibman 753e5d5e5a Merge branch 'master' into pr1449 2025-02-25 20:40:10 -08:00
oleibman b4cd42d2b2 Merge pull request #4380 from oleibman/stanbleed06
Phpstan Bleeding Edge Last: Reader
2025-02-26 04:35:09 +00:00
oleibman db6e6ebd72 3rd Parameter for AVERAGEIF/SUMIF Can Also Be #REF! 2025-02-25 20:11:23 -08:00
oleibman 990e3ec3a3 Handle #REF! As Argument to COUNTIF, AVERAGEIF, SUMIF
Fix #4381. The report refers to COUNTIF, but AVERAGEIF and SUMIF, which are implemented in the same module, exhibit the same behavior. (There may be others, but, for now, I will just fix those 3.)

Most methods which implement Excel functions should accept mixed arguments, so that they won't throw exceptions when calculated. Of course, MS often doesn't give much guidance as to how unexpected arguments should be handled. It at least seems clear that MS will often substitute #REF! for some arguments, and will return #REF! as the result in such cases. My test indicates that a formula using, say, #DIV/0! in lieu of #REF! will cause Excel to deem the spreadsheet corrupt. So, I think I am just going to deal with #REF! and let other unexpected values continue to throw exceptions.
2025-02-24 21:40:12 -08:00
oleibman 8013034796 Fix Some Phpstan V2 Issues as Well
Performance of Phpstan V2 on my machine is dreadful. I will not be upgrading till I figure out how to fix it.
2025-02-24 15:43:35 -08:00
oleibman 3319770fd6 Remove Dead Statement 2025-02-23 17:57:20 -08:00
oleibman 00e77f1ac1 Phpstan Bleeding Edge Last: Reader 2025-02-23 17:32:44 -08:00
oleibman 0e8d0bfcdb Merge pull request #4378 from oleibman/stanbleed05
Phpstan Bleeding Edge Part 5: All But Reader
2025-02-23 20:52:41 +00:00
oleibman 6d9c0a4319 Merge pull request #4373 from YoheiZuho/feature/justifyLastLine
support justifyLastLine
2025-02-23 20:43:50 +00:00
oleibman 53a984b747 Merge branch 'master' into feature/justifyLastLine 2025-02-23 12:39:58 -08:00
oleibman f366749285 Polishing Up 2025-02-23 12:38:44 -08:00
oleibman 8c86caa6b3 Merge pull request #4377 from oleibman/issue4375
Ignore ignoredErrors when Not Applicable
2025-02-23 20:31:00 +00:00
oleibman 01539876b1 Merge branch 'master' into issue4375 2025-02-23 12:28:17 -08:00
oleibman 2fbc9ad014 Update CHANGELOG.md 2025-02-23 12:27:28 -08:00
oleibman 62e2259d96 A Bit of Refactoring in CellReferenceHelper 2025-02-22 13:33:11 -08:00
oleibman 27213ae6ab Phpstan Bleeding Edge Part 5: All But Reader 2025-02-21 22:55:54 -08:00
oleibman 0c5808e166 Merge pull request #4372 from oleibman/stanbleed04
Phpstan Bleeding Edge Part 4: Calculation
2025-02-22 00:05:16 +00:00
oleibman b3452af464 Merge pull request #4369 from oleibman/stanbleed03
Phpstan Bleeding Edge Part 3: Writer
2025-02-22 00:00:22 +00:00