Skip to content

Releases: PHPOffice/PhpSpreadsheet

1.8.2

27 Jul 04:31
Compare
Choose a tag to compare

Fixed

  • Uncaught error when opening ods file and properties aren't defined - #1047
  • Xlsx Reader Cell datavalidations bug - #1052

1.8.1

27 Jul 04:31
Compare
Choose a tag to compare

Fixed

  • Allow nullable theme for Xlsx Style Reader class - #1043

1.8.0

27 Jul 04:30
0e6238c
Compare
Choose a tag to compare

Security Fix (CVE-2019-12331)

  • Detect double-encoded xml in the Security scanner, and reject as suspicious.

  • This change also broadens the scope of the libxml_disable_entity_loader setting when reading XML-based formats, so that it is enabled while the xml is being parsed and not simply while it is loaded.
    On some versions of PHP, this can cause problems because it is not thread-safe, and can affect other PHP scripts running on the same server. This flag is set to true when instantiating a loader, and back to its original setting when the Reader is no longer in scope, or manually unset.

  • Provide a check to identify whether libxml_disable_entity_loader is thread-safe or not.

    XmlScanner::threadSafeLibxmlDisableEntityLoaderAvailability()

  • Provide an option to disable the libxml_disable_entity_loader call through settings. This is not recommended as it reduces the security of the XML-based readers, and should only be used if you understand the consequences and have no other choice.

Added

  • Added support for the SWITCH function - #963 and #983
  • Add accounting number format style #974

Fixed

  • Whitelist tsv extension when opening CSV files #429
  • Fix a SUMIF warning with some versions of PHP when having different length of arrays provided as input #873
  • Fix incorrectly handled backslash-escaped space characters in number format

1.7.0

26 May 02:52
84e09df
Compare
Choose a tag to compare

Added

  • Added support for inline styles in Html reader (borders, alignment, width, height)
  • QuotedText cells no longer treated as formulae if the content begins with a =
  • Clean handling for DDE in formulae

Fixed

  • Fix handling for escaped enclosures and new lines in CSV Separator Inference
  • Fix MATCH an error was appearing when comparing strings against 0 (always true)
  • Fix wrong calculation of highest column with specified row #700
  • Fix VLOOKUP
  • Fix return type hint

1.6.0

02 Jan 04:46
bf00f0c
Compare
Choose a tag to compare

Added

  • Refactored Matrix Functions to use external Matrix library
  • Possibility to specify custom colors of values for pie and donut charts - #768

Fixed

  • Improve XLSX parsing speed if no readFilter is applied - #772
  • Fix column names if read filter calls in XLSX reader skip columns - #777
  • Fix LOOKUP function which was breaking on edge cases - #796
  • Fix VLOOKUP with exact matches - #809
  • Support COUNTIFS multiple arguments - #830
  • Change libxml_disable_entity_loader() as shortly as possible - #819
  • Improved memory usage and performance when loading large spreadsheets - #822
  • Improved performance when loading large spreadsheets - #825
  • Improved performance when loading large spreadsheets - #824
  • Fix color from CSS when reading from HTML - #831
  • Fix infinite loop when reading invalid ODS files - #832
  • Fix time format for duration is incorrect - #666
  • Fix iconv unsupported //IGNORE//TRANSLIT on IBM i - #791

Changed

  • master is the new default branch, develop does not exist anymore

1.5.2

02 Jan 04:46
Compare
Choose a tag to compare

Security

  • Improvements to the design of the XML Security Scanner - #771

1.5.1

21 Nov 09:49
Compare
Choose a tag to compare

Security

  • Fix and improve XXE security scanning for XML-based and HTML Readers - #771

Added

  • Support page margin in mPDF - #750

Fixed

  • Support numeric condition in SUMIF, SUMIFS, AVERAGEIF, COUNTIF, MAXIF and MINIF - #683
  • SUMIFS containing multiple conditions - #704
  • Csv reader avoid notice when the file is empty - #743
  • Fix print area parser for XLSX reader - #734
  • Support overriding DefaultValueBinder::dataTypeForValue() without overriding DefaultValueBinder::bindValue() - #735
  • Mpdf export can exceed pcre.backtrack_limit - #637
  • Fix index overflow on data values array - #748

1.5.0

21 Oct 10:06
2dfd06c
Compare
Choose a tag to compare

Added

  • PHP 7.3 support
  • Add the DAYS() function - #594

Fixed

  • Sheet title can contain exclamation mark - #325
  • Xls file cause the exception during open by Xls reader - #402
  • Skip non numeric value in SUMIF - #618
  • OFFSET should allow omitted height and width - #561
  • Correctly determine delimiter when CSV contains line breaks inside enclosures - #716

1.4.1

30 Sep 04:15
57404f4
Compare
Choose a tag to compare

Fixed

  • Remove locale from formatting string - #644
  • Allow iterators to go out of bounds with prev - #587
  • Fix warning when reading xlsx without styles - #631
  • Fix broken sample links on windows due to $baseDir having backslash - #653

1.4.0

30 Sep 04:15
125f462
Compare
Choose a tag to compare

Added

  • Add excel function EXACT(value1, value2) support - #595
  • Support workbook view attributes for Xlsx format - #523
  • Read and write hyperlink for drawing image - #490
  • Added calculation engine support for the new bitwise functions that were added in MS Excel 2013
    • BITAND() Returns a Bitwise 'And' of two numbers
    • BITOR() Returns a Bitwise 'Or' of two number
    • BITXOR() Returns a Bitwise 'Exclusive Or' of two numbers
    • BITLSHIFT() Returns a number shifted left by a specified number of bits
    • BITRSHIFT() Returns a number shifted right by a specified number of bits
  • Added calculation engine support for other new functions that were added in MS Excel 2013 and MS Excel 2016
    • Text Functions
      • CONCAT() Synonym for CONCATENATE()
      • NUMBERVALUE() Converts text to a number, in a locale-independent way
      • UNICHAR() Synonym for CHAR() in PHPSpreadsheet, which has always used UTF-8 internally
      • UNIORD() Synonym for ORD() in PHPSpreadsheet, which has always used UTF-8 internally
      • TEXTJOIN() Joins together two or more text strings, separated by a delimiter
    • Logical Functions
      • XOR() Returns a logical Exclusive Or of all arguments
    • Date/Time Functions
      • ISOWEEKNUM() Returns the ISO 8601 week number of the year for a given date
    • Lookup and Reference Functions
      • FORMULATEXT() Returns a formula as a string
    • Financial Functions
      • PDURATION() Calculates the number of periods required for an investment to reach a specified value
      • RRI() Calculates the interest rate required for an investment to grow to a specified future value
    • Engineering Functions
      • ERF.PRECISE() Returns the error function integrated between 0 and a supplied limit
      • ERFC.PRECISE() Synonym for ERFC
    • Math and Trig Functions
      • SEC() Returns the secant of an angle
      • SECH() Returns the hyperbolic secant of an angle
      • CSC() Returns the cosecant of an angle
      • CSCH() Returns the hyperbolic cosecant of an angle
      • COT() Returns the cotangent of an angle
      • COTH() Returns the hyperbolic cotangent of an angle
      • ACOT() Returns the cotangent of an angle
      • ACOTH() Returns the hyperbolic cotangent of an angle
  • Refactored Complex Engineering Functions to use external complex number library
  • Added calculation engine support for the new complex number functions that were added in MS Excel 2013
    • IMCOSH() Returns the hyperbolic cosine of a complex number
    • IMCOT() Returns the cotangent of a complex number
    • IMCSC() Returns the cosecant of a complex number
    • IMCSCH() Returns the hyperbolic cosecant of a complex number
    • IMSEC() Returns the secant of a complex number
    • IMSECH() Returns the hyperbolic secant of a complex number
    • IMSINH() Returns the hyperbolic sine of a complex number
    • IMTAN() Returns the tangent of a complex number

Fixed

  • Fix ISFORMULA() function to work with a cell reference to another worksheet
  • Xlsx reader crashed when reading a file with workbook protection - #553
  • Cell formats with escaped spaces were causing incorrect date formatting - #557
  • Could not open CSV file containing HTML fragment - #564
  • Exclude the vendor folder in migration - #481
  • Chained operations on cell ranges involving borders operated on last cell only #428
  • Avoid memory exhaustion when cloning worksheet with a drawing #437
  • Migration tool keep variables containing $PHPExcel untouched #598
  • Rowspans/colspans were incorrect when adding worksheet using loadIntoExisting #619