Commit Graph

4469 Commits

Author SHA1 Message Date
oleibman d0393a2eed Merge pull request #3903 from oleibman/issue3900
Handling of User-supplied Decimal and Thousands Separators
2024-02-22 06:04:20 +00:00
oleibman 0c8a80e834 Merge pull request #3914 from PHPOffice/dependabot/composer/phenx/php-svg-lib-0.5.2
Bump phenx/php-svg-lib from 0.5.1 to 0.5.2
2024-02-21 22:36:25 +00:00
dependabot[bot] d0895c65de Bump phenx/php-svg-lib from 0.5.1 to 0.5.2
Bumps [phenx/php-svg-lib](https://github.com/PhenX/php-svg-lib) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/PhenX/php-svg-lib/releases)
- [Commits](https://github.com/PhenX/php-svg-lib/compare/0.5.1...0.5.2)

---
updated-dependencies:
- dependency-name: phenx/php-svg-lib
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 18:29:46 +00:00
oleibman 0c37ae2c30 Merge pull request #3898 from oleibman/stanannotations
Eliminate Some Phpstan-ignore Annotations
2024-02-15 05:59:59 +00:00
oleibman e1fb68efc1 Handling of User-supplied Decimal and Thousands Separators
Fix #3900. The code to adjust Decimal and Thousands separators to user-specified choices expects to convert periods to commas and vice versa - hard-coded without taking the user specification into account. This is likely to be the only significant use case, however, as the issue demonstrates, it is not the only possibility. In particular, it will mess up Csv output if decimal separator is kept as period, but thousands separator is set to null string. The code is altered to replace period with the user-selected decimal separator, and comma with the user-selected thousands separator. No existing tests broke as a result of this change in behavior.
2024-02-14 21:20:45 -08:00
Adrien Crivelli c677a2f1c8 Never mention a specific PhpSpreadsheet version in documentation 2024-02-11 14:39:49 +08:00
oleibman 1ac1e7f11f Eliminate Some Phpstan-ignore Annotations
This PR resolves about half the statements which we tell Phpstan to ignore. There will still be 23 such annotations spread over 10 source modules for various reasons (too complicated, suspect PhpSpreadsheet code, one Phpstan bug), plus some deliberate errors in the test suite.
2024-02-08 21:14:14 -08:00
oleibman d620497511 Merge pull request #3893 from oleibman/stanarray2
Phpstan Fixes
2024-02-07 17:44:53 +00:00
oleibman 3512304974 Merge pull request #3897 from oleibman/round84
Floating Point and Php Nightly 8.4
2024-02-07 17:32:00 +00:00
oleibman e4ce0ea8f8 Floating Point and Php Nightly 8.4
Fix #3896. It appears that floating-point arithmetic will give different results in Php 8.4 vs. all earlier releases. This causes tests to fail in the nightly run for ROUNDDOWN, ROUNDUP, and AMORDEGRC. I imagine this won't be the last we hear of this. The failures are a distraction when reviewing PR's. This PR eliminates the distraction by adding in a fudge factor for Php 8.4+ while not changing Php 8.3-. It is not a particularly robust solution, but it should be stable for Php 8.3-, and good enough for Php 8.4+ while I study if a better solution is available.
2024-02-06 12:04:58 -08:00
oleibman 101a31bc24 Phpstan Fixes
Reduce baseline.neon to a single entry.
2024-02-04 20:26:29 -08:00
oleibman d767ee1015 Merge pull request #3892 from oleibman/reorgsamples2
Reorganize Samples Part 2
2024-02-04 21:29:35 +00:00
oleibman 5266086781 Reorganize Samples Part 2
Further reorganization following on PR #3890.
2024-02-04 10:29:41 -08:00
oleibman a444d1c41f Merge pull request #3891 from oleibman/stanarray
Phpstan and ArrayEnabled
2024-02-04 07:11:15 +00:00
oleibman c2f9af660c Merge pull request #3890 from oleibman/reorgsamples
Reorganize Samples
2024-02-04 06:51:23 +00:00
oleibman 6b4cbf1f68 Phpstan and ArrayEnabled
Phpstan baseline had been reduced to almost nothing, but recently had a big bump in size. Almost all of the increase was due to trait ArrayEnabled, which is easily recoded to avoid the problems.
2024-02-03 22:16:16 -08:00
oleibman 17845d8e06 Merge Conflict 2024-02-03 07:31:48 -08:00
oleibman b3de003aa5 Reorganize Samples
The samples have become unwieldy when running them from a browser. In particular, the drop-down lists are fixed size with no scrolling, and many of them are now just too large. I have moved all the Calculation samples up a level, and broken several categories (Basic, Chart, DateTime, Engineering, Financial, and Reader) into several pieces.

Convert-Online (now found in the Engineering category) had a number of different problems which are now resolved. It is the only member with any significant code change.
2024-02-03 07:25:29 -08:00
oleibman ec5e66479d Merge pull request #3888 from TobiasBg/patch-1
Fix spelling of `Xlxs` in class names
2024-02-02 20:38:56 +00:00
Tobias Bäthge 80843f5cff Fix spelling of Xlxs in class names
While not making a functional difference, it's nice to follow naming conventions.

This was discovered when reviewing https://github.com/PHPOffice/PhpSpreadsheet/pull/3887/files#diff-923ac4c5046834ceb5d9bbf617347caa125bbf85f29c62e36ed87d1fe99dd4ea.
2024-02-02 19:23:40 +01:00
oleibman 22f4d6ee17 Merge pull request #3887 from oleibman/updatefixer
Php-cs-fixer Changes
2024-02-01 19:41:59 +00:00
oleibman 84cc3b560f Php-cs-fixer Changes
Its latest update added some new stringencies, resulting in 62 messages. Used `composer fix` to take care of them.
2024-02-01 11:26:22 -08:00
oleibman d93c07bf67 Merge pull request #3885 from PHPOffice/dependabot/composer/phpstan/phpstan-1.10.57
Bump phpstan/phpstan from 1.10.50 to 1.10.57
2024-02-01 17:27:45 +00:00
oleibman 847f39f009 Merge pull request #3884 from PHPOffice/dependabot/composer/phpunit/phpunit-9.6.16
Bump phpunit/phpunit from 9.6.15 to 9.6.16
2024-02-01 17:12:01 +00:00
oleibman f6ac28d838 Merge pull request #3886 from PHPOffice/dependabot/composer/squizlabs/php_codesniffer-3.8.1
Bump squizlabs/php_codesniffer from 3.8.0 to 3.8.1
2024-02-01 17:11:19 +00:00
oleibman ba4ecd17be Merge pull request #3882 from PHPOffice/dependabot/composer/mitoteam/jpgraph-10.4.1
Bump mitoteam/jpgraph from 10.3.2 to 10.4.1
2024-02-01 17:10:04 +00:00
dependabot[bot] 4e4a35b87a Bump squizlabs/php_codesniffer from 3.8.0 to 3.8.1
Bumps [squizlabs/php_codesniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases)
- [Changelog](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.0...3.8.1)

---
updated-dependencies:
- dependency-name: squizlabs/php_codesniffer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-01 11:42:53 +00:00
dependabot[bot] 09b11453b5 Bump phpstan/phpstan from 1.10.50 to 1.10.57
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.50 to 1.10.57.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.50...1.10.57)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-01 11:42:43 +00:00
dependabot[bot] 09cce8ce1b Bump phpunit/phpunit from 9.6.15 to 9.6.16
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.15 to 9.6.16.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.16/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.15...9.6.16)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-01 11:42:31 +00:00
dependabot[bot] 95e354ed77 Bump mitoteam/jpgraph from 10.3.2 to 10.4.1
Bumps [mitoteam/jpgraph](https://github.com/mitoteam/jpgraph) from 10.3.2 to 10.4.1.
- [Release notes](https://github.com/mitoteam/jpgraph/releases)
- [Commits](https://github.com/mitoteam/jpgraph/compare/v10.3.2...10.4.1)

---
updated-dependencies:
- dependency-name: mitoteam/jpgraph
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-01 11:41:59 +00:00
oleibman a5e47f2b3c Merge pull request #3879 from oleibman/emptyarginif
IF Empty Arguments
2024-01-28 16:16:35 +00:00
oleibman e1bcab6ca9 IF Empty Arguments
Fix #3875. Even better, fix #2146, which has been open for 2.5 years.

Empty arguments are improperly placed on the stack; in particular, they are added without `onlyIf` and `onlyIfNot` attributes.This results in problems described in 3875.

IF has a somewhat unexpected design. In Excel, `IF(false, valueIfTrue)` evaluates as `false`, but `IF(false, valueIfTrue,)` evaluates as 0. This means that IF empty arguments should be handled in the same manner as MIN/MAX/MINA/MAXA, but you need to be careful to distinguish empty from omitted.

Also note that IF requires 2 operands - `IF(true)` is an error, but `IF(true,)` evaluates to 0.
2024-01-27 07:34:37 -08:00
Adrien Crivelli 4a77798f83 2.0.0 2.0.0 2024-01-24 18:41:42 +08:00
oleibman 570c86f950 Merge pull request #3869 from oleibman/bit32b
Fixes for 32-bit
2024-01-23 04:35:24 +00:00
oleibman 132c374f41 Merge branch 'master' into bit32b 2024-01-22 14:24:42 -08:00
Adrien Crivelli a83e9fb70c Merge pull request #3873 from PHPOffice/powerkiki
Remove all `mixed` in param type where reasonable (except Calculcation/)
2024-01-22 15:45:15 +00:00
Adrien Crivelli b9901c3de3 Describe breaking changes 2024-01-22 23:42:49 +08:00
Adrien Crivelli 3dce900eff Typed coordinate and range parameters 2024-01-22 23:26:04 +08:00
Adrien Crivelli ad9fe0a13b Remove all mixed in param type where reasonable (except Calculcation/) 2024-01-22 22:59:24 +08:00
Adrien Crivelli 5faaf26e75 Merge pull request #3872 from PHPOffice/powerkiki
Remove all `mixed` in return type where possible
2024-01-22 01:03:08 +00:00
Adrien Crivelli 013e5ccb73 Remove all mixed in return type where possible 2024-01-22 08:59:42 +08:00
oleibman 936805a6ab Merge pull request #3871 from oleibman/mixedsamples
Eliminate Some "Mixed" Variables in Samples
2024-01-21 06:53:05 +00:00
oleibman d6e4f4c19c Merge branch 'master' into mixedsamples 2024-01-20 16:42:46 -08:00
oleibman 641f86dc80 Eliminate Some "Mixed" Variables in Samples
A continuation of PR #3859. Change code that would be flagged if we were to run Phpstan at level 9 (we currently run level 8). I may or may not follow up with source code (454 level-9 problems remain for src), but there is no reason to avoid the effort for samples.

No changes are made to src.
2024-01-20 16:39:23 -08:00
oleibman 0824fd5f37 Merge pull request #3868 from oleibman/issue3866
Excel Inconsistent Handling of Empty Argument MIN/MAX/MINA/MAXA
2024-01-21 00:36:49 +00:00
oleibman b5e3ca346d Update CHANGELOG.md 2024-01-20 16:28:05 -08:00
oleibman 6ecd141b02 Merge branch 'master' into issue3866 2024-01-20 16:15:01 -08:00
oleibman 73ee354d00 Update MissingArgumentsTest.php
Misplaced "middle missing" argument.
2024-01-16 15:45:28 -08:00
oleibman 5cfe66e18f Fixes for 32-bit
I check from time to time. There are a number of problems now, mostly due to the elimination of Php 7.4 and replacement of doc-block typing with explicit Php typing.
- Bitwise functions were particularly affected by PR #3718 and PR #3793.
- Chart/Axis and Writer/Xlsx were amusingly affected by PR #3836, which added a scaling option which included an array indexed by the known allowable factors, one of which is 1 trillion, which cannot be represented as an integer on a 32-bit system. Issue3833Test, introduced by the same PR (and not suffering any errors) was expanded to test this value.
- Some minor changes to Reader/Xls and Shared/OLE/PPS to accommodate hex values which are negative in 32-bit but which Php-32 may wind up casting to large floating point numbers; it is not clear to me why these hadn't shown up as problems previously. Possibly this is the result of changes in the most recent Php versions.
- BitAndTest, BitOrTest, BitXorTest and Shared/DateTest were adversely affected by PR #3859 when arguments and/or expected results too large for a 32-bit integer were supplied.
- ImExpTest required a slightly reduced precision for 32-bit. No idea why this hadn't shown up earlier.
2024-01-16 13:09:57 -08:00
oleibman 0d6673dd8a Excel Inconsistent Handling of Empty Argument MIN/MAX/MINA/MAXA
Fix #3866. Excel normally treats a missing argument (e.g. `PRODUCT(2,3,)`) as null and ignores it. Not so for MIN/MAX/MINA/MAXA; for those, an empty argument is treated as zero. PhpSpreadsheet is changed to do the same.
2024-01-15 07:56:01 -08:00