Commit Graph

6507 Commits

Author SHA1 Message Date
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
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
oleibman a5e7ea2fb0 Minor Changes to Worksheet
Fix #4917.
2026-06-25 10:59:31 -07:00
oleibman 8fd7c56ef0 Consistent HighestRow/Column After Row/Column Delete
Fix #943, which went stale a long time ago, and is now reopened. I believe that the specific problem in that issue was actually mostly resolved some time ago. However, `highestRow/Column` produces questionable results when the delete range overlaps the highest row/column. That is fixed by this PR.

In addition, `removeRow/Column` allow the specification of a non-negative value for `numberOfRows/Columns`. But the expected results in those cases are not defined, and the actual results probably do not meet user expectations. I believe that very few, if any, users are taking advantage of this "feature", but we may as well straighten it out. For 0 rows/columns, I think it makes perfect sense to do nothing. As for negative - if `removeRow(5, 2)` says to remove 2 rows *starting* with 5, I think `removeRow(5, -2)` ought to remove (up to) 2 rows *ending* with 5. The undefined behaviors are changed to act as described in this paragraph.
2026-06-24 08:41:09 -07:00
oleibman e0b1e17f7a Merge pull request #4924 from PHPOffice/dependabot/github_actions/actions/cache-6
Bump actions/cache from 5 to 6
2026-06-24 15:30:08 +00:00
dependabot[bot] 5d5f140f2f Bump actions/cache from 5 to 6
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-24 11:05:27 +00:00
oleibman 52315526e0 Revert spliceOffset Loops 2026-06-20 23:53:21 -07:00
oleibman 2d377d3831 Update LoadSpreadsheet.php 2026-06-20 21:20:26 -07:00