Patrick Brouwers
1c99f4999c
[Feature] Html reader improvements ( #884 )
...
* Extract character set, so we can convert to UTF-8 if required
* Set column width and row height when defined on tr/td
* Parse align and valign on td
* Specify number format of cell via html attribute
* Formatting of b, strong, i and em tags
* Inserting image in cell when using img tag in html
* Add applying inline styles: border, fonts, alignment, dimensions
* Add tests for applying inline styles
2019-02-16 23:11:16 +01:00
Mark Baker
11575ef3c4
Load locales clean folder path ( #875 )
...
* Fix locale folder path when reading locale list
* Ensure / directory separaor isn't left against locale name
2019-02-08 21:08:55 +01:00
Adrien Crivelli
d0dea580ad
Fix a few Scrutinizer issues
2019-01-02 15:38:13 +11:00
Adrien Crivelli
04b5bf593d
Document font may be null
...
Fixes #833
2019-01-02 14:34:14 +11:00
Adrien Crivelli
3b0c686630
Fix iconv unsupported //IGNORE//TRANSLIT
on IBM i
...
Fixes #791
2019-01-02 14:23:34 +11:00
GreatHumorist
699da09176
Fix time format for duration was incorrect
...
When using format `[h]:mm` it should convert to the "total hours:minutes"
Closes #666
Fixes #664
Fixes #446
Fixes #342
2019-01-02 13:17:52 +11:00
Kirill Petrov
39b573b29d
Fix infinite loop when reading invalid ODS files
...
According to the spec, http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415588_253892949 ,
a `<table:table-row>` can only ever contains a `<table:table-cell>` or
a `<table:covered-table-cell>`, but it seems that some invalid files in the wild
may contains something else. That would trigger an infinite loop. So instead we
totally ignore the invalid content.
Closes #832
2019-01-02 12:16:41 +11:00
Mahmoud Abdo
86c635b3f5
Fix color from CSS when reading from HTML
...
In case we generate Spreadsheet from html file and the code
in file have text color in css "color:#FF00FF" it will showing
as black color because it will render like rgb content with } "FF00FF}"
So, we fix it by adding missing bracket "{".
Closes #831
2019-01-02 11:57:30 +11:00
Matt Allan
0f8292fc0b
Use gt operator instead of max for highest row
...
Using an operator is significantly faster than calling the max function.
As this method is called more than once per cell the difference adds up.
Closes #824
2019-01-02 11:09:55 +11:00
Matt Allan
ff6f4f4ec0
Remove duplicate strtoupper
...
Removing the duplicate strtoupper call has a meaningful impact on
performance since this method is called at least once per cell.
`Worksheet::getCells` currently calls `strtoupper` twice. `strtoupper`
is kind of expensive and this method is called at least once for every
cell in the spreadsheet. By removing the unnecessary second call the
runtime decreases by 18% when importing a ~100K cell spreadsheet.
Closes #825
2019-01-01 17:54:55 +11:00
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