Commit Graph

5451 Commits

Author SHA1 Message Date
dependabot[bot] 349e338993 Bump tecnickcom/tcpdf from 6.8.2 to 6.9.0
Bumps [tecnickcom/tcpdf](https://github.com/tecnickcom/TCPDF) from 6.8.2 to 6.9.0.
- [Changelog](https://github.com/tecnickcom/TCPDF/blob/main/CHANGELOG.TXT)
- [Commits](https://github.com/tecnickcom/TCPDF/compare/6.8.2...6.9.0)

---
updated-dependencies:
- dependency-name: tecnickcom/tcpdf
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 11:45:38 +00:00
oleibman 4323fcff5a Merge pull request #4428 from oleibman/stan2lv908
Phpstan Level 9 - Part 8 of Many - TextData
2025-03-31 13:09:38 +00:00
oleibman 8a61a18769 Merge pull request #4427 from oleibman/stan2lv907
Phpstan Level 9 - Part 7 of Many: Functions, LookupRef
2025-03-31 13:08:52 +00:00
oleibman 078846cc8e Phpstan Level 9 - Part 8 of Many - TextData 2025-03-29 07:22:44 -07:00
oleibman 00ededb379 Phpstan Level 9 - Part 7 of Many: Functions, LookupRef 2025-03-29 06:53:41 -07:00
oleibman 729c4dc9e0 Merge pull request #4421 from oleibman/stan2lv906
Phpstan Level 9 - Part 6 of Many (Shared/OLE)
2025-03-28 05:43:33 +00:00
oleibman 5dee5a7bbb Merge pull request #4420 from oleibman/stan2lv905
Phpstan Level 9 - Part 5 of Many
2025-03-28 05:42:51 +00:00
oleibman 8aee49160f Merge pull request #4423 from oleibman/issue4416
Column Widths Not Preserved When Using Read Filter
2025-03-27 07:04:03 +00:00
oleibman 2213139d96 Merge branch 'master' into issue4416 2025-03-27 00:01:29 -07:00
oleibman 664b9c7c24 Update CHANGELOG.md 2025-03-27 00:00:28 -07:00
oleibman f52ae206e0 Merge pull request #4412 from mikkokoo/master
Conditional and table formatting support for html
2025-03-27 06:50:14 +00:00
oleibman 584c8662d7 Final Touch-up 2025-03-26 23:47:03 -07:00
Mikko a67e778b50 Conditional and table formatting support for html writer 2025-03-26 15:30:33 +02:00
oleibman 8e3417dd06 Merge pull request #4424 from oleibman/issue4422
Fix Typo in Style exportArray quotePrefix
2025-03-26 03:05:27 +00:00
oleibman ae5583caad Merge branch 'master' into issue4422 2025-03-25 20:02:23 -07:00
oleibman 511f4c6277 Update CHANGELOG.md 2025-03-25 20:01:33 -07:00
oleibman cd5836a1c2 Merge pull request #4418 from oleibman/gridimprovements
TextGrid Improvements
2025-03-26 02:53:28 +00:00
oleibman cc1357cb1d Merge branch 'master' into gridimprovements 2025-03-25 19:50:51 -07:00
oleibman 30f517faae Update CHANGELOG.md 2025-03-25 19:49:47 -07:00
oleibman 902d4bde94 Merge pull request #4419 from oleibman/clonetweak
Tweak to Spreadsheet Clone
2025-03-25 07:10:30 +00:00
oleibman 31656b0e96 Merge branch 'master' into clonetweak 2025-03-25 00:07:49 -07:00
oleibman f5b4f18090 Update CHANGELOG.md 2025-03-25 00:06:53 -07:00
oleibman 100d14969d Fix Typo in Style exportArray quotePrefix
Fix #4422. Add tests.
2025-03-24 22:05:20 -07:00
oleibman 80ee4a4eb8 Didn't Like Doc Formatting
Looks like list may need a blank line preceding it.
2025-03-24 21:24:38 -07:00
oleibman eb31984340 Make Class Extendable
Document some cases where solution might not work well. Making class extendable and offering some over-rideable methods may allow for solutions to some of these problems.
2025-03-24 21:06:43 -07:00
oleibman 6b61da0017 Column Widths Not Preserved When Using Read Filter
Fix #4416. A peculiar problem indeed. PhpSpreadsheet has been considering a column to be filtered if any cell in the column is filtered and does not preserve the column width if that is the case. It should consider the column not filtered if any cell in the column is not filtered, and consider it filtered only if there are no cells to which that applies. At least, that's how I think it should work, and this change doesn't break any existing tests, and solves this issue.
2025-03-24 20:18:51 -07:00
oleibman 5a486a1857 Phpstan Level 9 - Part 6 or Many (Shared/OLE) 2025-03-23 12:40:25 -07:00
oleibman bc315a3edc A Win For Scrutinizer!
It flagged a statement as dead code. It was correct - there was a typo in the variable name. But no tests had failed. The explanation was, of course, that this particular path was not adequately tested.

PhpSpreadsheet extends Excel (dating back to PHPExcel) by allowing the ordinal form of days in the DATE function, implemented as "take the numeric portion if the field is a string consisting of a numeric portion followed by some alphabetics". Whether or not this is a good idea, it would be a breaking change to eliminate it, so that's not going to happen. However, the same logic has been applied to month, and I don't see a use case for that, so I'm eliminating it - any non-numeric string used as the month parameter will now result in a VALUE error. It also turns out that Excel accepts null, false, and true for the month, and PhpSpreadsheet will now do likewise.
2025-03-23 12:33:01 -07:00
oleibman e3ef02a422 Phpstan Level 9 - Part 5 of Many
Calculation: Database through Financial.
2025-03-23 00:55:48 -07:00
oleibman 60c7e35124 Fix Phpstan Errors 2025-03-23 00:31:04 -07:00
oleibman 9875233c7e Tweak to Spreadsheet Clone
Spreadsheet clone already copies Calculation instanceArrayReturnType property. It should also copy some other Calculation instance properties, namely suppressFormulaErrors, calculationCacheEnabled, and branchPruningEnabled.
2025-03-23 00:11:02 -07:00
oleibman c54d55da07 Merge pull request #4417 from oleibman/issue4415
Ignore Fractional Part of Drawing Shadow Alpha
2025-03-23 07:04:00 +00:00
oleibman 7fc2a3a1f8 Update CHANGELOG.md 2025-03-23 00:01:21 -07:00
oleibman 4c350a6406 Merge pull request #4414 from oleibman/issue4411
Better Handling of Chart DisplayBlanksAs
2025-03-23 06:52:39 +00:00
oleibman 4670aeaa0f Update CHANGELOG.md 2025-03-22 23:47:39 -07:00
oleibman ca71ae77ac TextGrid Improvements
Helper/TextGrid was intended to assist with some samples. However, it has emerged recently on two tickets. PR #4342 intended to introduce functionality very similar to TextGrid, and was closed for that reason. Issue #1640 was closed as stale over 4 years ago, despite the fact that TextGrid seems an adequate resolution for it.

Since it seems that there is a use for this function beyond its original intended usage, I added a few parameters to give it some flexibility - the ability to omit row and/or column headers, and the ability to add a divider line between rows.

A description of this function is added to the formal documentation.
2025-03-22 20:37:28 -07:00
oleibman 71b243539a Ignore Fractional Part of Drawing Shadow Alpha
Fix #4415. We store the rarely-used property Drawing/Shadow/Alpha as an integer representing the percentage. Excel also stores it as an integer, but multiplies it by 1,000, so we divide by 1,000 when we read this value. This can, and in the case of the issue at hand does, leave a fractional portion. Php has deprecated passing a float with a fractional portion to an int argument, so the reporter saw a deprecation message. This is easily fixed.
2025-03-20 20:11:11 -07:00
oleibman 3cb7b36746 Merge pull request #4410 from oleibman/stan2lv904
Phpstan Level 9 - Part 4 of Many
2025-03-20 03:52:32 +00:00
oleibman 41da846f6b Merge pull request #4409 from oleibman/stan2lv903
Phpstan Level 9 - Part 3 of Many
2025-03-20 03:52:11 +00:00
oleibman 19055da8b6 Better Handling of Chart DisplayBlanksAs
Fix #4411. User copied some code from a PHPExcel program which set DisplayAsBlanks to `0`. This resulted in what Excel deemed a corrupt spreadsheet using PhpSpreadsheet. The only values allowed for that field are `gap`, `zero` (not `0`), and `span`. PHPExcel used `0` as a default, and got away with it because it ignored the value entirely when writing out the spreadsheet, using `gap` all the time.

I had to choose between throwing an exception and just using the default when an attempt is made to set that property to an invalid value. An exception just seems more punitive than helpful to me, especially if we want people to migrate from PHPExcel, which still seems to have a large user base. So I've gone with using `gap` in place of an invalid value. Note that, according to https://learn.microsoft.com/ru-ru/openspecs/office_standards/ms-oe376/b5c5c694-21d9-437c-9a4a-21e0e843eed8, `gap` is used as the default whenever it is permitted for the chart in question; and, when it isn't permitted, the chart will use its default method (which will always be `zero`).

There were no tests nor samples for this property. All the tests and samples which use it use only `gap`. I have added a small test, and a new sample to illustrate the difference between the 3 options.
2025-03-19 20:21:14 -07:00
oleibman 06ddcfbd7f Phpstan Level 9 - Part 4 of Many
Mostly Calculation/Calculation.
2025-03-15 23:05:22 -07:00
oleibman 54210e4c07 Phpstan Level 9 - Part 3 of Many
All src modules except Calculation/* and Shared/OLE/*.
2025-03-15 22:41:31 -07:00
oleibman bb3d5fa510 Merge pull request #4404 from oleibman/issue4202
Permit Read to Class Which Extends Spreadsheet
2025-03-16 04:52:04 +00:00
oleibman 9c12e9daa5 Update CHANGELOG.md 2025-03-15 21:48:17 -07:00
oleibman 50bf8a0fad Wrong Case in File Name 2025-03-13 12:10:21 -07:00
oleibman 6083e393c1 Permit Read to Class Which Extends Spreadsheet
See discussion #4202. Users can extend Spreadsheet, but the readers cannot return the extended class. This is solved pretty easily by adding a protected method in BaseReader which returns a new Spreadsheet. Users can then extend the Reader which they want, overriding that method to return the extended class.
2025-03-13 12:01:33 -07:00
oleibman 74dca30c89 Merge pull request #4399 from oleibman/stan2lv902
Phpstan Level 9 - Part 2 of Many
2025-03-13 15:39:34 +00:00
oleibman b1beafb86f Merge pull request #4398 from oleibman/localesplit2
Move Locale Logic in Calculation to Separate Class
2025-03-12 07:37:32 +00:00
oleibman c3ea02ec01 Merge branch 'master' into localesplit2 2025-03-12 00:34:59 -07:00
oleibman 815a3c0494 Update CHANGELOG.md 2025-03-12 00:33:57 -07:00