Commit Graph

6821 Commits

Author SHA1 Message Date
dependabot[bot] d3889a8398 Bump phpstan/phpstan-phpunit from 2.0.21 to 2.1.1
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) from 2.0.21 to 2.1.1.
- [Release notes](https://github.com/phpstan/phpstan-phpunit/releases)
- [Commits](https://github.com/phpstan/phpstan-phpunit/compare/2.0.21...2.1.1)

---
updated-dependencies:
- dependency-name: phpstan/phpstan-phpunit
  dependency-version: 2.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-01 11:02:31 +00:00
oleibman ef440dd714 Merge commit from fork 2026-11-01 01:23:38 -07:00
oleibman 636eb70272 Merge commit from fork 2026-10-31 20:56:58 -07:00
oleibman 32ad31dad1 Merge pull request #5072 from n3crosis/fix/agile-encryption-xml-scanner
Scan Agile EncryptionInfo XML before parsing
2026-11-01 03:33:08 +00:00
oleibman a845ef2427 Merge commit from fork 2026-10-31 17:03:50 -07:00
^^ cca3cb94fa Scan Agile EncryptionInfo before XML parsing 2026-10-24 11:47:26 +08:00
oleibman ed591ed22e Merge pull request #5068 from oleibman/fewercategories
Reorganize Samples and Improve Downloader Class
2026-10-23 23:09:31 +00:00
oleibman c76ff29fda Tweak Download Headers
Don't bother with headers "which may be needed for IE" unless user requests them.
2026-10-22 14:34:41 -07:00
oleibman 9565757138 Reorganize Samples and Improve Downloader Class
A follow-on activity to PR #5061. That PR added scrollbars to the dropdown lists when samples were run in a browser. Earlier changes had broken up a number of categories into multiple entries because the dropdown lists were too long and wound up truncated. With the scrollbars, it makes sense to re-consolidate many of those lists, such as ComplexNumbers, which are all essentially the same test as each other. Some break-ups are retained (e.g. Basic/1/2/3/4/5) because they differ substantially from sample to sample; that's kind of an arbitrary decision, but it will have to do for now. I also renamed some of the members so that like members sort together when listing the directory (e.g. all pivot table samples now start with `pvt`). The sample code is mostly unchanged; only the directory and/or member names are changed.

The download samples were moved to their own new directory, and now represent a complete set of all the write formats that we permit. Studying their code, an improvement for `Helper\Downloader` became evident. It had been used merely to copy an existing file to be downloaded. However, by changing the first parameter of `download` to be either the name of the file directory (the existing usage) *or* a `Writer` object poised to issue `save`, you can use it to download your spreadsheet without having to worry about the headers which the browser requires. It then becomes generally useful beyond being used in samples:
```php
$writer = new WriterType($spreadsheet);
$downloader = new Downloader($writer, 'suggestedFileName.xlsx');
$downloader->download();
```
2026-10-22 13:22:48 -07:00
oleibman 6b03c5e70f Merge pull request #5061 from oleibman/bootstrapv5
Update Supporting Software For Running Samples in Browser
2026-10-20 23:18:39 +00:00
oleibman 9728e3ddd0 Jumbotron is Deprecated 2026-10-19 12:50:18 -07:00
oleibman ed31270f24 Merge branch 'master' into bootstrapv5 2026-10-18 20:10:56 -07:00
oleibman 414a7ceb47 Merge pull request #5053 from oleibman/winci
Add A Windows CI Step
2026-10-19 02:59:29 +00:00
oleibman c448bd3330 Update CHANGELOG.md 2026-10-18 19:55:27 -07:00
oleibman 9a1b9604aa Merge branch 'master' into winci 2026-10-18 19:38:36 -07:00
oleibman 35e1009836 Merge pull request #5054 from oleibman/libxmlbreak2
Breaking Changes in libxml Affecting Helper\Html and Reader\Html
2026-10-19 02:31:21 +00:00
oleibman 6720b53f42 Merge pull request #5055 from HawkForge/fix-branch-pruning-nested-if-condition
Fix branch pruning for IF nested in the condition of a pruned IF
2026-10-19 02:29:52 +00:00
oleibman 4ecc20fc05 Merge branch 'master' into fix-branch-pruning-nested-if-condition 2026-10-18 19:25:53 -07:00
oleibman 753d7155f7 Merge pull request #5051 from Progi1984/wmf
Support for Windows Metafiles images (WMF, EMF and EMF+)
2026-10-19 02:18:12 +00:00
oleibman 98ba31713d Merge branch 'master' into wmf 2026-10-18 19:14:23 -07:00
oleibman c05548a8ea Final Tweaks (I Hope) 2026-10-18 17:08:35 -07:00
oleibman 529a2b2d56 A Little More Tweaking 2026-10-18 15:24:04 -07:00
oleibman 378fb6931a Add Doctype, Get Rid of nbsp 2026-10-18 13:05:56 -07:00
oleibman 4094514c6f Slight JS Code Reorg
I think phpcs's indentation logic was wrong in the previous version. Rearrange some code to make it less likely that a future phpcs fix will cause the code to break.
2026-10-17 21:45:02 -07:00
oleibman adf2254304 phpcs
It checks javascript files. Who knew?
2026-10-17 21:36:10 -07:00
oleibman 97a60576a6 Update Supporting Software For Running Samples in Browser
Upgrade Bootstrap from V3 to V5. The current version is very much out of date. Migration wasn't particularly straightforward - I have rejected doing it in the past for that reason. I let AI help me this time around, and, although we went down many blind alleys, we eventually met with success. The upgrade leads to a couple of improvements:

- There is now a toggle for light/dark mode.
- The dropdown lists now have scrollbars when needed. This means that we can re-consolidate some categories which were previously split up because the dropdown was unusable. This PR leaves the categories unchanged, but it is something I can consider in future.

Bootstrap V5 no longer requires jQuery, so it is dropped.

FontAwesome is still on an old version. Newer versions use much larger files, mainly because of many new icons, none of which we use. So there is a cost to upgrading, and I don't see a compensating advantage. In fact, I have reduced its css file to one which includes only the icons we are using. And, since more modern versions distribute only the woff2 version of the font, I am removing the alternatives; I'm willing to add them back on request.

This change does not affect the PhpSpreadsheet code in any way, nor does it affect running samples from the command line - just running samples in a browser.
2026-10-17 20:56:38 -07:00
oleibman 5de6371926 Merge pull request #5050 from BoussonKarel/fix-remove-column-a
Fix removeColumn() throwing "Invalid column index 0" when it removes column A
2026-10-18 03:44:03 +00:00
oleibman 89e4fbda9c Merge branch 'master' into fix-remove-column-a 2026-10-17 20:40:04 -07:00
oleibman 07ee137b63 Merge pull request #5048 from BoussonKarel/fix-5047-dv-remove-row-column
Take removed rows/columns out of data validation ranges
2026-10-18 03:20:43 +00:00
oleibman 9485d5a99f Merge pull request #5046 from dkulyk/ods-formula-no-precalc
Ods Writer : No cached value for a formula that is not pre-calculated
2026-10-18 02:50:36 +00:00
oleibman 43e1f6c723 Merge pull request #5044 from kevin9327/fix-right-longer-than-text
RIGHT: return all of the text when num_chars exceeds its length
2026-10-18 02:19:52 +00:00
oleibman 8a60a5df51 Merge branch 'master' into fix-right-longer-than-text 2026-10-17 01:21:59 -07:00
oleibman f0e66c28da Adjust LIBXML_VERSION Test 2026-10-17 01:01:48 -07:00
oleibman 273fb576a7 Adopt @dkulyk's Suggestion
Drop LIBXML_HTML_NOIMPLIED. Much cleaner, at least as effective.
2026-10-17 00:20:24 -07:00
oleibman e4f74569fd Found a Reproducible Difference
Use it rather than version number to test if libxml loadHtml is buggy.
2026-10-16 15:51:14 -07:00
Dmytro Kulyk 7c16c63981 Changelog: link #5046 2026-10-16 23:35:00 +03:00
Dmytro Kulyk 537c856d49 Ods Writer : No cached value for a formula that is not pre-calculated
With setPreCalculateFormulas(false) the formula text was written as the
value of the cell (office:string-value and text:p), and LibreOffice showed
it as the result. The cell now has table:formula alone, as the Xlsx Writer
writes <f> without <v>, so the application that opens the file calculates
it. A hyperlink of the cell is still written.

Ods Reader applied a style only to a cell with content or with a cell
after it, so such a formula cell at the end of its row lost its style;
a cell with a formula now keeps it.
2026-10-16 23:34:53 +03:00
oleibman 967a60cebd Merge pull request #5041 from dkulyk/document-language
Xlsx, Ods and Html Reader and Writer : Document language
2026-10-16 20:22:11 +00:00
oleibman f375a76fb3 Merge branch 'master' into document-language 2026-10-16 13:18:00 -07:00
oleibman a680df50fb Merge pull request #5039 from dkulyk/chart-alt-text
Xlsx Reader and Writer : Chart description as alternative text
2026-10-16 20:11:26 +00:00
oleibman 1495e65cdc Merge branch 'master' into chart-alt-text 2026-10-16 13:07:35 -07:00
oleibman 26c227037f Merge pull request #5037 from dkulyk/drawing-decorative
Xlsx, Ods and Html Reader and Writer : Decorative images
2026-10-16 19:59:38 +00:00
oleibman 6efb8f0dc2 Merge pull request #5004 from guy-black-box/fix-comparison-type-ordering
Compare values of different types in Excel's type order
2026-10-16 19:52:55 +00:00
HawkForge a1f1f87430 Add PR link to CHANGELOG 2026-10-16 20:37:02 +06:00
HawkForge a7dbf35f62 Fix branch pruning for IF nested in the condition of a pruned IF
When an IF sits in the condition of another IF, BranchPruner only
looked at the immediately enclosing IF to decide which branch the
condition tokens depend on. If that enclosing IF was itself still in
its condition, nothing was recorded, so the link to an outer IF whose
branch is being pruned was lost. Those tokens were then evaluated and
left on the stack while the rest of the branch was pruned, and the
calculation ended with "internal error".

Walk up the stack of enclosing IFs to the closest one whose then or
else branch contains the nested IF instead.

Fixes #3790
Fixes #3755
2026-10-16 20:36:20 +06:00
Progi1984 9d09ae0c31 Support for Windows Metafiles images (WMF, EMF and EMF+) 2026-10-16 07:02:20 +02:00
oleibman 7e4c6bf83b Merge branch 'master' into fix-remove-column-a 2026-10-15 17:45:56 -07:00
oleibman 8dcba68ab3 Merge branch 'master' into fix-5047-dv-remove-row-column 2026-10-15 17:45:17 -07:00
oleibman 9ce8dea874 Breaking Changes in libxml Affecting Helper\Html and Reader\Html
These have made it to the nightly Php8.6 for Windows, though it hasn't yet affected that release on Github Ubuntu.

- A string like `xyz` has historically been treated as if it were `<p>xyz</p>` by `Dom->loadHtml()`. No more - recent changes cause it to be dropped altogether, treating it as an empty string.
- `Dom->loadHtml()` seems to have stopped issuing warning messages altogether, so there is no longer any clue that anything untoward has happened.
- There seem to have been some changes regarding how line endings are generated.
- There are doubtless other differences that I haven't stumbled upon yet.

Documentation on these changes is available at https://gitlab.gnome.org/GNOME/libxml2/-/work_items/211

Php says there's nothing they can do about this. Their recommendation is to move to the new Dom\HTMLDocument class. Which is a fine idea, except that we still need to support Php 8.2 and 8.3, and the new class wasn't introduced until Php 8.4. So this PR kludges up our code a bit to use the existing code for libxml releases before the one where these problems were discovered, and the new class for later releases. I think, or at least hope, that this is safe - I don't think the problematic libxml release will be applied to anything earlier than Php8.6.
2026-10-14 11:28:50 -07:00
oleibman 0347fef1e1 No 'true' Command in Windows
Need to find a different way to ignore failures in Windows nightly.
2026-10-14 11:11:22 -07:00