Matt Allan
f28289f92a
Use a generator for Cells::getAllCacheKeys
...
Using a generator reduces memory usage and improves performance
when loading large spreadsheets.
Closes #822
2019-01-01 17:38:07 +11:00
Philipp Kolesnikov
8918888e7c
libxml_disable_entity_loader() changes global state so it should be used as local as possible
...
Fixes #801
Closes #802
Closes #803
2019-01-01 17:25:24 +11:00
Paolo
6a48b505b6
Support COUNTIFS multiple arguments
...
Because Excel COUNTIFS function can have more than 2 arguments.
Closes #830
2019-01-01 16:38:45 +11:00
Fräntz Miccoli
294ba58dde
Exact match in VLOOKUP now returns first match
...
It was inconsistent with spreadsheet software before.
Closes #809
2018-12-15 17:42:07 +11:00
Fräntz Miccoli
db2621c4fe
Add tests for the LOOKUP function
...
We were performing operations to patch for missing $result_vector
even when one was defined, this was causing bugs on edge cases.
Fixes #796
Closes #816
2018-12-15 16:23:45 +11:00
Christian Stoller
f0e69408ca
Extended the docblock of Style::applyFromArray with example for alignment styling
2018-12-10 20:24:29 +11:00
Dennis Birkholz
e56fbe2745
Fix column names if read filter calls in XLSX reader skip columns
...
Fixes #777
Closes #778
2018-12-10 20:00:26 +11:00
Gabriel Caruso
dfa808a955
Simplify some conditions and ternary expressions
2018-12-10 18:54:51 +11:00
Krzysztof Ruszczynski
12bf085c57
Custom color for pie and donut charts
...
This is an follow-up for #158
Fixes #768
2018-12-10 18:43:55 +11:00
Dennis Birkholz
95c41da020
Cache readFilter access and skip inner loops for empty/default readFilter ( #773 )
...
For large XLSX files `Reader/Xlsx::readColumnsAndRowsAttributes()` performs
a lot of calls to `$this->getReadFilter()` and `$this->getReadFilter()->readCell()`
as `readCell()` is called twice for each (possibbly filled) cell.
By ignoring calls to the DefaultReadFilter implementation (which always returns true),
using no custom read filter will not incur any runtime penalty.
The runtime penaltiy when using a custom read filter is reduced by a third by
caching the read filter into a variable instead of using the getter method.
Fixes issue #772 .
2018-11-29 22:50:48 +01:00
Mark Baker
a5eb64c77f
Matrix ( #790 )
...
* Refactor Excel Matrix functions to use external Matrix library rather than JAMA
2018-11-29 22:25:31 +01:00
MarkBaker
14159d985c
Coding standards
2018-11-25 14:33:01 +01:00
MarkBaker
c1d0784ad7
Namespace security scanner in Html Reader
2018-11-25 14:18:09 +01:00
MarkBaker
41bcf9a21c
Support for additional callback in XML Security Scanner
2018-11-25 14:00:35 +01:00
MarkBaker
c708411529
Refactor scanner into base reader class
2018-11-25 12:14:54 +01:00
MarkBaker
aba41f6495
Yet more Coding standards fixes
2018-11-23 23:27:19 +01:00
MarkBaker
6d3d44359d
Coding standards
2018-11-23 23:18:49 +01:00
MarkBaker
abad49d426
Use factory for XMLcanner
2018-11-23 23:05:17 +01:00
MarkBaker
9c1a201ace
Fix docblock typo
2018-11-20 19:51:09 +01:00
MarkBaker
f02898e14d
Don't rely purely on libxml_disable_entity_loader()
2018-11-20 18:40:09 +01:00
MarkBaker
1f4cb1f19a
Corrections to XmlScanner version check logic, and (hopefully) fix the lock issue
2018-11-20 18:24:53 +01:00
Adrien Crivelli
e4be53888f
Update src/PhpSpreadsheet/Reader/Security/XmlScanner.php
...
Co-Authored-By: MarkBaker <mark@lange.demon.co.uk>
2018-11-20 11:46:09 +01:00
Adrien Crivelli
7f4a6e37b1
Update src/PhpSpreadsheet/Reader/Security/XmlScanner.php
...
Co-Authored-By: MarkBaker <mark@lange.demon.co.uk>
2018-11-20 11:46:01 +01:00
MarkBaker
5854ce3738
phpcs cleanup
2018-11-20 08:18:35 +01:00
MarkBaker
0a9e15ca69
srsly?!? phpcs is enforcing alphabetic order of use clauses now?
2018-11-19 23:42:05 +01:00
MarkBaker
a4d97ba896
Clean handle charset in XXE scanner
2018-11-19 22:47:34 +01:00
Guillaume RODRIGUEZ
3bea6f516b
Fix index overflow on data values array
...
Fix index overflow on data values array for multi level detection.
Fixes #747
Fixes #748
2018-11-11 21:43:44 +11:00
Albert Scherman
31e25ad14b
Support page margin in mPDF
...
Fixes #750
Fixes #751
2018-11-11 21:30:00 +11:00
Gabriel Caruso
f42adb0daf
Simplify some conditions and ternary expressions
2018-11-11 18:25:51 +11:00
Adrien Crivelli
2fce5c4706
Update PHP dependencies to fix security issues
...
This fix CVE-2013-5958 and also
1861e33fe0
2018-11-11 18:21:31 +11:00
Danielle McLean
6703624223
Write generated HTML into Mpdf in chunks, rather than as one gigantic string
...
Due to a limitation in Mpdf, the HTML string passed to its WriteHTML method
must not exceed a particular length. PhpSpreadsheet produces one HTML string
containing all spreadsheet data when writing to HTML, which can easily exceed
Mpdf's size limit. Thus, it was impossible to write large spreadsheets to PDF
using the Mpdf writer - this change fixes that issue.
Fixes #637
Fixes #706
2018-11-03 18:37:47 +11:00
Milan Davídek
3be06a5e87
Support overriding `DefaultValueBinder::dataTypeForValue()`
...
This allow to avoid overriding `DefaultValueBinder::bindValue()`
Fixes #735
2018-11-03 17:25:43 +11:00
Guillaume RODRIGUEZ
fdc224af7c
Fix print area parser for XLSX reader
...
XLSX workbook references may not contains quotes in print area
Fixes #733
Fixes #734
2018-10-28 14:37:05 +11:00
Laurent
79d86ef5cc
Csv reader avoid notice when the file is empty
...
Fixes #337
2018-10-28 14:16:53 +11:00
Adrien Crivelli
4e8e0dc01b
Fix Countable Int (bis)
2018-10-28 14:06:50 +11:00
Jean-Baptiste Noblot
6088f545b6
Add declaration of undefined variable
2018-10-28 14:03:24 +11:00
Jean-Baptiste Noblot
58268fe9b5
Fix Countable Int
2018-10-28 14:03:24 +11:00
Jon Dufresne
5b3870c508
Prefer https:// URLs when available in docs & comments
...
Fixes #737
2018-10-28 13:55:00 +11:00
marcusblevin
98d10475f2
SUMIFS sum values only once
...
Values were summed multiple times if it matched several conditions
whereas it should only be summed once.
Fixes #704
Fixes #710
2018-10-28 13:09:08 +11:00
Sreten Ilić
ed6a3a0148
Support numeric condition in SUMIF, SUMIFS, AVERAGEIF, COUNTIF, MAXIF and MINIF
...
Fixes #683
Fixes #701
2018-10-28 12:47:53 +11:00
Paul Barton
813855b2b2
Fix CSV delimiter detection on line breaks
...
The CSV Reader can now correctly ignore line breaks inside
enclosures which allows it to determine the delimiter
correctly.
Fixes #716
Fixes #717
2018-10-21 18:23:55 +11:00
Adrien Crivelli
54efe8824e
Fix unit tests
2018-10-21 17:55:31 +11:00
Adrien Crivelli
09eb05f367
OFFSET should allow omitted height and width
...
Commit 8dddf56 inadvertently removed the ability to omit the width
and height arguments to the OFFSET function. And #REF! is returned
because the function is validating that the new $pCell argument
is present. It is present, but it has been passed in the $height position.
We fixed this by always passing $pCell at the last position and filling
missing arguments with NULL values.
Fixes #561
Fixes #565
2018-10-21 17:45:02 +11:00
Biser Antonov
2c981e47a1
Added the DAYS() function
...
https://support.office.com/en-us/article/days-function-57740535-d549-4395-8728-0f07bff0b9df
2018-10-21 15:26:46 +11:00
Adrien Crivelli
925205ed59
Remove exception that can never happen
...
Because of type hinting in the constructor the spreadsheet object
can never be null anymore.
2018-10-08 10:50:54 +11:00
Adrien Crivelli
edc608782f
Avoid warning on PHP 7.3
2018-10-07 20:28:04 +11:00
bayzhanov
08b4456641
Xls file threw exception during open by Xls reader
...
Ignore some exception in property, if stream is empty
Fixes #402
Fixes #659
2018-10-07 18:49:01 +11:00
Scorty
ae9dd13aa0
Skip non numeric value in SUMIF
...
MS Excel skip non numeric values also. PhpSpreadsheet used to fail on string value with: Warning: A non-numeric value encountered.
Fixes #618
2018-10-07 17:24:23 +11:00
Adrien Crivelli
5e5be142f6
Fix incorrect docblock
2018-10-05 11:18:21 +10:00
Adrien Crivelli
1e5be30290
Remove dead code
2018-10-05 11:08:51 +10:00