Commit Graph

6513 Commits

Author SHA1 Message Date
gaoflow b3023fd66c Update CHANGELOG for #4945 2026-08-04 08:25:51 +02:00
gaoflow e88cd615cc Fix incomplete gamma convergence for GAMMA.DIST / CHISQ.DIST
The incomplete gamma primitive used a fixed 32-term power series with no
convergence test, so GAMMA.DIST, GAMMADIST, CHISQ.DIST(.RT), GAMMAINV and
CHISQ.INV were grossly wrong once the series argument reached ~32
(e.g. CHISQ.DIST.RT(80, 4) returned 0.806 instead of 1.74e-16).

Replace it with the standard convergence-tested regularized incomplete
gamma: series P(a,x) for x < a+1, continued fraction Q(a,x) for x >= a+1.
CHISQ.DIST.RT now uses Q directly so the right tail stays free of
1 - P cancellation. Consolidates the duplicate copy that already existed
privately in ChiSquared onto the shared primitive.
2026-08-04 08:25:36 +02:00
oleibman 8b4b934011 Merge pull request #4946 from gaoflow/fix-gammainv-tail-bracket-clamp
Expand GAMMAINV bracket so tail quantiles are not clamped
2026-08-04 02:43:29 +00:00
oleibman 63e4e229a3 Merge pull request #4943 from saifulferoz/feature/sparklines
Add support for Excel sparklines
2026-08-03 05:40:02 +00:00
Feroz 21b641b8bc Merge branch 'master' into feature/sparklines 2026-08-02 23:52:33 +06:00
Feroz 8d2cd9f68d Merge branch 'master' into feature/sparklines 2026-08-02 23:37:03 +06:00
oleibman 85be5ac255 Merge pull request #4833 from kemo/perf/xls-reader-optimizations
Optimize XLS (BIFF8) reader performance with reduced per-cell overhead
2026-08-02 07:00:41 +00:00
oleibman 9ef98dfe8f Merge pull request #4951 from PHPOffice/dependabot/composer/friendsofphp/php-cs-fixer-3.95.17
Bump friendsofphp/php-cs-fixer from 3.95.11 to 3.95.17
2026-08-01 14:46:02 +00:00
dependabot[bot] a27503b72d Bump friendsofphp/php-cs-fixer from 3.95.11 to 3.95.17
Bumps [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) from 3.95.11 to 3.95.17.
- [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.95.11...v3.95.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-01 11:02:39 +00:00
Vincent Gao c497c12eb3 Evaluate GAMMA.INV via spreadsheet formula in tests; document bounded tail fallback 2026-07-29 04:59:19 +02:00
gaoflow 0b9dff4813 Update CHANGELOG for #4946 2026-07-28 12:18:08 +02:00
gaoflow 2a82540c1f Expand GAMMAINV bracket so tail quantiles are not clamped
GammaBase::calculateInverse fixed its upper bound at alpha*beta*5, so any
GAMMA.INV/GAMMAINV quantile larger than that was clamped to it: e.g.
GAMMAINV(0.9999, 1, 1) returned 5 rather than ~9.2103, breaking the
round-trip GAMMADIST(GAMMAINV(p)) == p.

Grow the upper bound geometrically until it brackets the root. If the CDF
stops increasing first (the series approximation is past its usable range)
keep the original bound instead of expanding into it, which also stops a
probability the series cannot reach from running the bound away.
2026-07-28 12:17:22 +02:00
saifulislamferoz bbcfc69328 Address review: use fixed namespace URIs in sparkline reader
Per review feedback on PR #4943:

- Remove the $this->ns property from Reader/Xlsx/Sparklines and the
  getNamespaces() call that populated it. The reader now navigates the XML
  with the fixed namespace URIs (Namespaces::DATA_VALIDATIONS1 for x14 and
  Namespaces::DATA_VALIDATIONS2 for xm) via SimpleXMLElement::children(),
  so it no longer depends on the prefixes a third-party writer happens to
  use.
- Move the SPARKLINE_URI constant to the Namespaces class (alongside
  STYLE_CHECKBOX_URI) and reference it from both the reader and writer.
2026-07-28 11:57:45 +06:00
saifulislamferoz 041c85060f Improve sparkline test coverage and harden reader
Add tests for previously-uncovered SparklineGroup setters (axis types,
manual limits, additional display options and colours) and a hand-crafted
Xlsx fixture exercising the reader's edge cases (non-sparkline ext, group
without sparklines, sparkline with empty sqref, missing colour elements).

Harden Reader/Xlsx/Sparklines against malformed input: guard the
sparklineGroup and sparkline iterations against a null children set so an
empty <x14:sparklineGroups> or <x14:sparklines> element no longer emits a
PHP warning.
2026-07-28 06:40:12 +06:00
saifulislamferoz 41c051f54d Add support for Excel sparklines
Implements native sparkline support (line, column, and win/loss) in the
Xlsx reader and writer, resolving issue #4941.

- New model classes under Worksheet/Sparkline: Sparkline, SparklineGroup,
  and the SparklineType enum.
- Worksheet gains a sparkline group collection with addSparkline(),
  addSparklineGroup(), getSparklineGroupCollection(), and
  removeSparklineGroupCollection(), plus deep-clone support.
- Reader/Xlsx/Sparklines parses x14:sparklineGroups from the sheet extLst.
- Writer/Xlsx/Worksheet emits x14:sparklineGroups; writeExtLst is
  refactored so conditional-formatting data bars and sparklines share a
  single extLst.
- Adds unit tests, an Xlsx round-trip test, a runnable sample, and docs.
2026-07-28 06:04:37 +06:00
oleibman 540dfb463a Merge pull request #4944 from oleibman/phpunitxml
Update phpunit xml
2026-07-27 19:39:05 +00:00
oleibman 895633344c Update phpunit xml 2026-07-27 12:34:12 -07:00
oleibman e9d4062bc7 Merge pull request #4940 from PHPOffice/dependabot/composer/dompdf/dompdf-3.1.6
Bump dompdf/dompdf from 3.1.5 to 3.1.6
2026-07-26 17:25:18 +00:00
dependabot[bot] bcf1998d9a Bump dompdf/dompdf from 3.1.5 to 3.1.6
Bumps [dompdf/dompdf](https://github.com/dompdf/dompdf) from 3.1.5 to 3.1.6.
- [Release notes](https://github.com/dompdf/dompdf/releases)
- [Commits](https://github.com/dompdf/dompdf/compare/v3.1.5...v3.1.6)

---
updated-dependencies:
- dependency-name: dompdf/dompdf
  dependency-version: 3.1.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-26 15:59:24 +00:00
oleibman 05e99ebf61 Merge pull request #4938 from oleibman/changelog20260712
Update ChangeLog
5.9.0
2026-07-12 19:17:39 +00:00
oleibman 60f79311d2 Update ChangeLog 2026-07-12 12:12:58 -07:00
oleibman 2601644333 Merge pull request #4907 from oleibman/nophp81
Drop Support for Php 8.1
2026-07-12 14:44:00 +00:00
oleibman 0a107a2f37 Merge pull request #4937 from oleibman/webdebug
Account for Unable to Use Web Server in Github
2026-07-12 12:29:47 +00:00
oleibman dc455c45f9 Possibly Acceptable 2026-07-12 03:20:25 -07:00
oleibman 40bdbb3c90 WIP Testing 2026-07-12 01:53:11 -07:00
oleibman 066e7091a0 Merge pull request #4936 from oleibman/skiptest
Not Sure Why Test Failed
2026-07-12 07:11:53 +00:00
oleibman 0b136d1e6e Blip 2026-07-12 00:07:04 -07:00
oleibman 5d9c5a667f Not Sure Why Test Failed
Works locally, not on Github. Disabling for now, will continue to research.
2026-07-12 00:00:49 -07:00
oleibman 7ef7b25e85 Merge commit from fork 2026-07-11 23:13:06 -07:00
oleibman 85f2556b0b Merge commit from fork 2026-07-11 22:15:04 -07:00
kemo 5db3842d9e Use updating setXfIndex where no value write is guaranteed to follow 2026-07-06 14:17:38 +02:00
kemo af4579f943 Add Xls reader benchmark 2026-07-05 14:40:37 +02:00
oleibman 14c9ac65e4 Merge branch 'master' into perf/xls-reader-optimizations 2026-07-04 13:10:09 -07:00
oleibman 38be7742c8 Merge branch 'master' into nophp81 2026-07-04 13:08:33 -07:00
oleibman 0577c74889 Merge pull request #4934 from oleibman/unusedtest
Delete Unused Test Member
2026-07-03 03:27:08 +00:00
oleibman 7a69387e7b Extra Annotation 2026-07-02 20:20:25 -07:00
oleibman 3a2d9e4403 Delete Unused Test Member 2026-07-02 20:05:00 -07:00
oleibman 58cf6fe887 Update AutoColorTest.php 2026-07-02 19:28:48 -07:00
oleibman 4e28940dd7 Merge branch 'master' into nophp81 2026-07-02 17:47:57 -07:00
oleibman bccdf28672 Merge pull request #4933 from oleibman/stan20260701
Update Phpstan
2026-07-01 19:38:32 +00:00
oleibman 9533f5903f Update Phpstan 2026-07-01 12:33:46 -07:00
oleibman af9601ebdb Merge pull request #4932 from PHPOffice/dependabot/composer/composer/pcre-3.4.0
Bump composer/pcre from 3.3.2 to 3.4.0
2026-07-01 14:49:34 +00:00
oleibman 634f1f2a6c Merge pull request #4930 from PHPOffice/dependabot/composer/friendsofphp/php-cs-fixer-3.95.11
Bump friendsofphp/php-cs-fixer from 3.95.4 to 3.95.11
2026-07-01 14:49:13 +00:00
dependabot[bot] 1fc375baf5 Bump composer/pcre from 3.3.2 to 3.4.0
Bumps [composer/pcre](https://github.com/composer/pcre) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/composer/pcre/releases)
- [Commits](https://github.com/composer/pcre/compare/3.3.2...3.4.0)

---
updated-dependencies:
- dependency-name: composer/pcre
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-01 11:02:56 +00:00
dependabot[bot] 0532808c46 Bump friendsofphp/php-cs-fixer from 3.95.4 to 3.95.11
Bumps [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) from 3.95.4 to 3.95.11.
- [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.95.4...v3.95.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-01 11:02:49 +00:00
oleibman d8c6890861 Merge pull request #4926 from oleibman/issue4917
Very Minor Changes to Worksheet, Reader/Xlsx, and Worksheet/AutoFilter
2026-06-29 03:44:56 +00:00
oleibman 5b57325f8c Update CHANGELOG.md 2026-06-28 20:41:07 -07:00
oleibman be06eebc2f Merge pull request #4925 from oleibman/issue943
Consistent HighestRow/Column After Row/Column Delete
2026-06-29 03:33:55 +00:00
oleibman 13edf0d8a2 More AutoFilter Tweaks 2026-06-25 17:08:15 -07:00
oleibman 7f331bca4c Clean Up Some Other Phpstan Annotations
Mostly remove `phpstan-ignore-line` in a number of places. Very minor code changes to Worksheet/AutoFilter and Reader/Xlsx.
2026-06-25 13:54:00 -07:00