Apache Software Foundation > Apache POI
 

History of Changes

Previous releases

The change log for POI 3.x and older releases can be found in the history section.

Version 5.2.6 (2024-09-??)

Summary

  • Upgrade log4j-api dependency to 2.22.1
  • Upgrade commons-codec dependency to 1.16.1
  • Upgrade commons-io dependency to 2.15.1
  • Upgrade pdfbox and graphics2d dependencies to 3.0.1

Changes

TypeBugModuleDescription
fix68237SXSSFSome boolean attribute values are written as true instead of 1

Version 5.2.5 (2023-11-25)

Summary

  • Upgrade commons-io dependency to 2.15.0
  • Upgrade commons-compress dependency to 1.25.0
  • Upgrade log4j-api dependency to 2.21.1
  • Upgrade xmlsec dependency to 3.0.3
  • Upgrade bouncycastle dependency to 1.77
  • Upgrade xmlbeans dependency to 5.2.0

Changes

TypeBugModuleDescription
fix67475SS_CommonBetter support for edge cases in TEXT function
fix67510XDDFFix issue where chart axes were defaulting to have blank number formats - which recent versions of Excel treat as corrupted.
add67735XWPFAdd Complex scripts support in XWPFRun
fix67579OOXMLPOI 5.2.4 had a regression where it did not close user-provided InputStreams. In POI 5.2.5, user-provided InputStreams are again closed. There are new constructors that allow you to control whether the streams are closed.
fix67785XSSFXSSFExcelExtractor does not format formula results like the streaming based extractor
fix68094XSSFImprove cell width logic to avoid rounding issues
fixgithub-505SL_CommonDrawTextFragment height should include leading space

Version 5.2.4 (2023-09-28)

Summary

  • Discontinued the binary packages to reduce maintenance overhead, please rebuild the sources locally or use Maven Central for binary files
  • Upgrade log4j-api dependency to 2.20.0
  • Upgrade xmlsec dependency to 3.0.2
  • Upgrade batik dependency to 1.17
  • Upgrade pdfbox dependency to 2.0.29, graphics2d to 0.43
  • Upgrade commons-codec dependency to 1.16.0
  • Upgrade commons-compress dependency to 1.24.0
  • Upgrade commons-io dependency to 2.13.0
  • Upgrade curvesapi dependency to 1.08
  • Upgrade SparseBitSet dependency to 1.3
  • Use jdk18on versions of bouncycastle jars (v1.76)

Changes

TypeBugModuleDescription
fix66598XSSFFix invalid loop-condition when cleaning up CTCells
fix47950POI_Overallmake stream/directory name lookup in OLE2 case insensitive
fix66521POI_OverallProvide a utility to clear all thread-locals to avoid reports of memory-leaks in web-application containers
fix66436POI_OverallFix handling padding when decrypting data
fix54373XSSFInclude alpha/transparency value when creating an XSSFColor from an AWT Color object
fix62272XSSFInclude alpha/transparency value when setting a color-value for a font
fix65260SXSSFFix graceful handling of missing font-system on the operating system
fix65543HSSFIncomplete Shared String Tables were causing read failures
fix66257XSSFNullPointerException in XSSFReader$SheetIterator.next()
fix66278XSLFMultiple gradient stops at the exact same location causing a rendering failure
add66301HSMFAdd a method to properly write the header necessary for a MSG attachment
fix66306XSLFMake XSLFDiagramGroupShape public
fix66312XWPFInserting paragraph into table from cursor
add66347XWPFAdd theme support to XWPF
fix66365XSSFFix issue where cells with formulas and cached results of string type do not properly support shared strings
fix66399XSLFText run highlight colors were ignored
fix66401SS_CommonFix parsing formulas with sheet-names which contain single quotes
fix66418XSSFFix performance issue with XSSFSheet.groupRow
fix66433SS_CommonImprove boolean functions empty cell handling
fix66473SXSSFFix performance issue with SXSSFCell.getColumnIndex()
fix66475POI_OverallSignatureConfig: remove ThreadLocals and deprecated code associated with them
fix66514POI_OverallRemove support for zip/tgz release artifacts
fix66532SXSSFImprove performance of SheetDataWriter outputEscapedString
fix66584OOXMLEnsure ZipPackage closes input stream when exceptions happen
fix66614SS_CommonIssue where OFFSET function applies limits that should only apply to xls format spreadsheets
fix66644POI_OverallMake jar build reproducible
fix66661XSSFFix issue with adding table formulas
fix66988XWPFXWPFTableCell: make setText fully replace the text and add appendText method to append
fix67005XSLFBasic for reading audio files in pptx files
fix67396OOXMLSet standalone="yes" in XML declarations when writing OOXML format files

Version 5.2.3 (2022-09-16)

Summary

  • Upgrade graphics2d dependency to 0.40, pdfbox to 2.0.26
  • Upgrade xmlsec dependency to 3.0.0
  • Upgrade xmlbeans dependency to 5.1.1
  • Upgrade log4j-api dependency to 2.18.0
  • Speed up processing of formulas with column-ranges, e.g. VLOOKUP(A4,$D:$E,2,0)
  • Speed up compilation of jar-files-only builds by avoiding direct dependency on test-execution
  • Avoid some more possible overly large memory allocations on certain input documents

Changes

TypeBugModuleDescription
fix51037SS_CommonsetDefaultColumnStyle() in XSSFSheet/SXSSFSheet was not working as expected
add55330SS_Commonadd PageMargin enum
add56155OOXMLSupport version property in CoreProperties
add58468SS_CommonSupport DAYS function
fix63575XWPFSupport capitalized text in XWPFWordExtractor
fix63576HWPFSupport capitalized text in WordExtractor
fix65562SXSSFSXSSF doesn't update dimension field
fix65473XSLFWhen slides were copied, the text shapes were still referencing original slide
fix65854OOXMLUse revert() instead of close() when OPCPackage is opened read-only
fix65973XSSFRow shifting does not properly handle hyperlinks that span multiple cells
fix65988SS_CommonRATE function fails in some cases
fix65993XSSFchange XSSFHyperlink code that copies HSSFWorkbook to respect cell ranges
fix66022SS_CommonFix issue with parsing formulas that have sheet names containing certain chars
fix66047SS_CommonFix rounding issue in MROUND function
fix66079XWPFFix bug where XWPFNumbering.removeAbstractNum removes by list index, not abstractNumId
fixgithub-321SS_CommonDataFormatter issue with rounding in some use cases
addgithub-330SS_CommonSupport AVERAGEIF function
fix66052SS_CommonXSSFColor could not be used the same time as org.apache.poi.ss.util classes
add66083SS_CommonSupport CEILING.MATH and FLOOR.MATH functions
fix66087SS_Commonsupport case insensitive matching in D* functions
add66090SS_Commonadd support for DCOUNT, DCOUNTA, DAVERAGE, DSTDEV, DSTDEVP, DVAR, DVARP and DPRODUCT functions
add66092SS_CommonAdd STDEVP, STDEVA, STDEVPA, VARA and VARPA functions
add66093SS_Commonadd support for unimplemented subfunctions to SUBTOTAL function
add66094SS_Commonadd support for STDEV.S, STDEV.P, VAR.S and VAR.P functions
add66095SS_Commonadd support for POISSON.DIST function
add66097SS_CommonSupport CEILING.PRECISE and FLOOR.PRECISE functions
add66098SS_CommonD* functions should support wildcard matches
add66105SS_CommonSupport excel correl, covar, pearson and forecast functions
fix66115HSSFSome Password protected XLS files are not read
add66123XSSFSupport the gte attribute with XSSFConditionalFormattingThreshold
add66145OOXMLgenerate poi-ooxml-full classes for dml-drawing xsd
add66146OOXMLgenerate poi-ooxml-full classes for threaded comment and word12 xsds
fix66173SS_Commonadd Sheet createSplitPane(int xSplitPos, int ySplitPos, int leftmostColumn, int topRow, PaneType activePane) to eventually replace the existing createSplitPane method (that has a bug in XSSFSheet)
fixgithub-360HSSFHSSFExtendedColor was not setting RGB colors properly
add66176XSLFIntegrate SmartArt diagrams from powerpoint presentations
fix66181SS_CommonPOI's implementation of VALUE function did not properly handle empty string input
fix66187XWPFCalling getTextHighlightColor() or getEmphasisMark() on XWPFRun can lead to corruption of file
fix66211XSSFXSSFTable.updateHeaders did not work for Worksheets created using current Excel versions
fix66212XSSFXSSFSheet.removeTable did not remove the links to the table part reference from the sheet
fix66213XSSFXSSFWorkbook.cloneSheet does not clone XSSFTables linked from the sheet
fix66215XSSFShifting rows or columns can damage formulas in tables
fix66216XSSFXSSFPivotTable.getPivotCacheDefinition() does not work properly when XSSFPivotTable was read from an existing *.xlsx file
fix66230SXSSFSXSSFWorkbook should work even when fonts not installed on OS
fix66242XSLFIssue with orphaned (in package) images and notes post slide removal

Version 5.2.2 (2022-03-19)

Summary

  • Upgrade log4j-api dependency to 2.17.2 and graphics2d dependency to 0.35 as well as some test dependencies

Changes

TypeBugModuleDescription
fix65915SS_CommonFix issue where Boolean functions (AND, OR) do not work properly in array context
add65934XSLFadd removeTextParagraph to text box API
add65935XSLFadd removeTextRun to paragraph API
fix65939XSSFFix stackoverflow issue when removing formulas with circular references
add65943SXSSFSupport rich text strings in SXSSFWorkbook (only when shared string table is used)
fix65946OOXMLPOIXMLPropertiesTextExtractor returns duplicate key for Core properties
fix65950POI_OverallPOI 5.2.1 can allocate byte arrays that are too big

Version 5.2.1 (2022-03-03)

Summary

  • Upgrade curvesapi dependency to 1.07

Changes

TypeBugModuleDescription
fix65887POI_OverallIOUtils.toByteArray did not fully take into account value set by IOUtils.setByteArrayMaxOverride
fix60541SS_CommonCollapsing a column group was incorrectly implemented
fix62857SS_CommonDOLLAR function is not properly implemented
fix65792SS_CommonMultiplication in cell formulas can have small rounding issues
fix65839SS_CommonPicture resize can lead to infinite loop
add65846SS_CommonAdd support for NUMBERVALUE function
add65850SS_CommonAdd support for Normal Distribution functions
add65870SS_CommonAdd support for BESSELJ function
add65871SS_CommonAdd support for DOLLARDE and DOLLARFR functions
add65879SS_CommonAdd support for WORKDAY.INTL functions
fix65899HMEFFix issue where malformed TNEF file can cause memory issues
fix65908OPCXAdES-XL modifications due to specification check errors

Version 5.2.0 (2022-01-14)

Summary

  • Refactor to XSSFReader, SharedStringsTable, CommentsTable and ThemesTable to make them more extensible
  • Upgrade log4j-api dependency to 2.17.1
  • Upgrade BouncyCastle dependency to 1.70
  • Upgrade PDFBox Graphics2d dependency to 0.34 and PDFBox dependency to 2.0.25

Changes

TypeBugModuleDescription
add65668OOXMLupgrade to xmlsec 2.3.0 - make secure validation configurable
add65672OOXMLDigital Signature - set commitment type and purpose
fix65676XSSFIssue in XSSFReader where string builder is not always cleared between cell reads
add65694HSLFhandle date/time fields and formats
fixgithub-281SS_CommonCell Conditional Formatting: Change regex to account for decimals with no leading digit
fixgithub-273SS_CommonLog warning when long sheet names are trimmed
addgithub-243SS_CommonAdd support for XLOOKUP and XMATCH functions
addgithub-290POI_OverallCustomize Spliterator implementations for better parallelism
fix63211SS_CommonDataFormatter incorrectly formats data formats with escaped percent character
fix64732XSSFXSSFSheet.createTable generates corrupted file when a header's cell contains a line break
fix65701OOXMLPassword Protecting a document when Saxon is on classpath can corrupt the output
add65703SS_CommonDataFormatter: add setUse4DigitYearsInAllDateFormats(boolean) method with default of false
add65730SS_CommonDataFormatter: add setUseCachedValuesForFormulaCells(boolean) method with default of false
fix65715OOXMLFix issue in XSSFSheet getDrawingPatriarch
fix65738OOXMLFix issue with excessive logging of invalid parts in OOXML files
fix65766SS_CommonCell copy does not respect rich text
fix65772POI_Overallstop using file deleteOnExit in DefaultTempFileCreationStrategy

Version 5.1.0 (2021-11-01)

Summary

  • XDDF - bug fixes
  • Upgrade Batik dependency to 1.14
  • Upgrade BouncyCastle dependency to 1.69 (including adding dependency on bcutil jar)
  • Upgrade Commons-Compress dependency to 1.21
  • Upgrade XMLSec dependency to 2.2.3
  • Upgrade PDFBox Graphics2d dependency to 0.33 (and test with PDFBox 2.0.24)
  • Add commons-io 2.11.0 as a dependency
  • Upgrade XMLBeans to 5.0.2
  • Internal logging in POI now uses Apache Log4J 2
  • Small refactor to XSSFReader to make it more extensible - should not affect most users unless they subclass XSSFReader
  • By default, no DTDs will be accepted in XML files. This can be relaxed by setting POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false).

Changes

TypeBugModuleDescription
fixgithub-221XSLFXSLFTable - revert addRow to behaviour before 4.1.2
fix65016XDDFDon't throw exception on empty data source
fix64950XDDFSet hole size for doughnut chart
fix63901XSSFXSSFDrawing - import chart from other drawing
fix63902XSSFXSSFWorkbook - reference cloned sheet in cloned chart data
fix54470XSSFXSSFWorkbook - clone sheet with chart
fix57835XSLFXSLFSlide - import slide notes when importing slide content
addgithub-228XDDFManipulate individual data point properties
add65192HSSFAllow change of EncryptionMode
add65206POI_OverallMigrate ant / maven to gradle build
fix65228XSLFthe method getCap() does not work correctly in xslf.usermodel.XSLFTextRun
fix65214OOXMLDocument signed by POI reported as 'partially' signed
fix65085HSLFLineRect shall throw more specific exceptions
fix64844SL_CommonIncorrect sizes of images in SVG
add65304POI_OverallAdd commons-io as a dependency
fix64473OOXMLHandle issue where OOXML file has metadata and metadata.xml
add60924SS_CommonSupport IFS and SWITCH functions
add64633SS_CommonSupport TEXTJOIN function
fix65230SS_CommonTRIM function should trim extra spaces between words
fix65464XSSFFix issue with removing parent formula when shared formulas are used
add65467SS_CommonSupport IFNA function
fix65471XSSFAdd support for T literal in DateTime formats
fix65475SS_CommonSUMIF and SUMIFS functions do not properly handle #N/A values
fixgithub-242SS_Commonadd support for MAXIFS, MINIFS, AVERAGEIFS functions
fix65501XSLFUse viewbox when rendering SVG images
add65581OOXMLadd optional support in ZipArchiveFakeEntry to use a temp file
fix65595SS_CommonStrip color formatting in headers and footers
fix65606SS_CommonFix issues with WEEKNUM function evaluation
fix65612XSLFXSLF CustomGeometry - replace XmlStreamReader access with XmlBeans delegate
fix49202SS_CommonSupport PERCENTRANK and related functions
fix64258SS_CommonSupport TDIST and related functions
fix65490XSSFBetter support for shared hyperlinks
fix65042OPCAdd support to ZipPackage to allow temp files to be used to save memory (useful for writing xlsx/pptx/docx files with pictures, etc.).
fix65372OPCAllow ZipSecureFile.setMaxEntrySize to accept sizes above 4Gb
fix65331XWPFFix issue in XWPFTable.setTableAlignment(TableRowAlign tra)
fix65623OPCCreate XAdES-T signature with XAdESXLSignatureFacet
fix62040SS_CommonQUOTIENT function does not support cell references
fix64542OPCAllow creation of POIFSFileSystem instances from FileChannels but with an optional flag to prevent POI from closing the channel
fix65452SS_CommonWorkbookFactory.create(File, ...) should throw exception if the input file is not in a supported format
fix65551XSLFIncorrect fetching paragraph and text runs props from master shape
fix65634XSLFSlideShowFactory.create(File, ...) should throw exception if the input file is not in a supported format
fix65648SXSSFRemove finalizer on SXSSF SheetDataWriter
fix65650POI_OverallUse image/x-pict as mime type for pict format pictures (previous versions used a mix of image/pict and image/x-pict)
fix65653HSLFHSLF FillType for texture and background color fills ignored

Version 5.0.0 (2021-01-20)

Summary

  • Upgrade to ECMA-376 5th edition (transitional) schemas - expect API breaks when using XmlBeans directly some smaller changes are necessary when code is using the low-level CT... classes
  • Change artifact names of poi-/ooxml-schemas to poi-ooxml-lite/full
  • ooxml-security is part of poi-ooxml-full (known as ooxml-schemas) now and won't be provided separately
  • updated dependencies to XMLSec 2.2.1, Bouncycastle 1.68, Commons-Codec 1.15, Commons-Compress 1.20
  • XWPF - improvements in table and paragraph
  • XSLF - improvements for paragraph
  • provide JigSaw modules - some classes moved between packages for the JDK 9+ support, e.g. ExtractorFactory, so imports need to be adjusted
  • removed dependencies to jaxb
  • removed deprecated code
  • new experimental DeferredSXSSFWorkbook which creates fewer temp files by lazily generating rows (see DeferredGeneration in poi-examples)

Changes

TypeBugModuleDescription
fix64494XSSFEnsure "applyAlignment" in cell-styles is enabled when necessary
fix64450OOXMLAllow to parse a file where the relationship-id is an empty string
fix64750XSSFDo not use CTDataValidations.getCount(), instead only rely on getDataValidationArray
fix64986SS_CommonSupport missing or blank match_type for function Match
fix64838XWPFDo not populate cells with a paragraph when loading an existing document
fix65009HSLFUse correct index for 1-based pictures
fix64460XSSFFix invalid moving of merged regions
fix64791HSSFUse proper position for the WriteAccessRecord
fix64238SS_CommonMake LOOKUP functions deal with empty last arg correctly
fix64322POIFSImprove performance of reading OLE2 files
add64393SS_CommonHandle MissingArgEval in relational operators
add64420XSSFAvoid NullPointerException in XSSFReader.SheetIterator.next() if files contain macros
addgithub-177SS_CommonAvoid NullPointerException if RangeCopier encounters empty/missing rows
add63294SS_CommonAdd some more methods to allow to use CellType everywhere
fixXSSFFix regression introduced via Bug 60845: There are more items in CTBorder that need to be handled in equals()
fix63845XWPFAdjust handling of formula-cells to fix regression with missing re-calculation introduced in 4.1.0
fix55966XWPFInclude content control text in word extraction also if it is part of a paragraph
fix64244XSSFTake the replacement of RichText strings into account when computing length of strings
addSS_CommonSS method to check if a Named Range is hidden or not
addSS_CommonSS method to check if a Named Range is hidden or not
addgithub-167HSMFHSMF enhancements - NamedIdChunk, MultiValueChunks, ByteChunkDeferred
fixSS_CommonFix incorrect handling of format which should not produce any digit for zero
fix58896 52834SS_CommonSpeed up auto-sizing of columns when the sheet contains merged regions
fix64186OPCDecrease usage of ThreadLocals in XML Signature API
fix64213SS_CommonPicture.resize(double scale) scales width wrong for small pictures and when dx1 is set
fix63712OPCupgrading xmlsec causes junit tests to fail
fix64241XSLFXSLF - Wrong scheme colors used when rendering
fix63624XWPFMethod setText in XWPFTableCell updates the xml and also updates the runs and iruns
fixgithub-170XWPFXWPFTableCell does not process bodyElements when handle paragraph
fixgithub-171XWPFXWPFNumbering.addAbstractNum will definitely throw an exception
fix64301OPCAllow try-with-resources with OPCPackage.revert()
fix63745HSSFAdd traversing and debugging interface to HSSF
fix64350POI_OverallSonar fix - "Iterator.next()" methods should throw "NoSuchElementException"
fix57843HWPFRuntimeException on extracting text from Word 97-2004 Document
fix55505HSSFCountryRecord not found
fix64387POIFSBig POIFS stream result in OOM
add64411POI_OverallProvide JigSaw modules (breaks backwards compatibility)
fix64441SS_CommonSynchronize code that initialises WorkbookFactory
add63819SS_CommonSupport DateValue function
addgithub-179SS_CommonAdd an option for RangeCopier.copyRange() also clone styles
fix63290XSLFRetrieve default run properties from paragraph
add64512POIFSOle10Native aka embedded / object packager - handle UTF16 variants
fix64561XWPFXWPFSDTContent.getText() is empty for nested SDT elements
fix64595SXSSFMissing quoting of pre-evaluated string values in formula cells causes corrupt files
fix64693HEMFPOI HwmfGraphics cannot read the embedded document title
fix64716HWMFWMF font typeface charset encoding error
fix64773POI_OverallVisual signatures for .xlsx/.docx
fix64817POIFSFix issue in testXLSXinPPT
fixgithub-193SS_CommonChange TRUNC implementation to use MathX
add64867SL_CommonProvide PDF rendering with PPTX2PNG
fix64964SS_CommonConverting cell values to boolean should throw IllegalStateException instead of RuntimeException when conversion is not possible
fix64971XSSFXSSFFont setCharset(FontCharset) should use latest class instead of deprecated one
fix60397XSSFImprove performance of cell merge
fixgithub-206SXSSFImprove performance of SXSSF cell evaluation
fix64976SS_CommonChange some methods to return ints instead of shorts (Font and CellStyle)
fix56205OOXMLUpgrade OOXML schema to 3rd edition (transitional) (breaks backwards compatibility)
fix64979OOXMLChange artifact names of poi-/ooxml-schemas
fix64981OOXMLUpgrade OOXML schema to 5th edition (transitional) (breaks backwards compatibility)
fix64876XSLFUnable to convert pptx to pdf
fix65026POI_OverallMigrate tests to Junit 5
addgithub-207POI_OverallUse SLF4J instead of commons-logging - use jcl-over-slf4j
fix65061XSSFHandle VmlDrawings containing spreadsheet-ml default namespace
fix65063HSLFWMF parsing failed on closed empty polygon
fixgithub-198POI_OverallRemove jdk.charset module dependency for spreadsheets generation
fixgithub-196OOXMLDelete unused certificate exceptions
fixgithub-191SS_CommonFix RuntimeException on array formula referencing blank cell
fixgithub-189SS_CommonMove date parsing logic to DateParser
fixgithub-187XSSFAdd length validation for Excel DataValidations that are list literals
fixgithub-184SXSSFNew EmittingSXSSFWorkbook
fixgithub-176XSSFRemove limit on number of rules in XSSFSheetConditionalFormatting
fixgithub-177HSSFAvoid NullPointerException if RangeCopier encounters empty/missing rows

Version 4.1.2 (2020-02-17)

Summary

  • Removed a lot of internal uses of StringBuffers
  • XDDF - some work on better chart support
  • Common SL / EMF - ongoing rendering fixes
  • XSLF - OOM fixes when parsing arbitrary shape ids + a new dependency to SparseBitSet 1.2
  • updated dependencies to Bouncycastle 1.64

Changes

TypeBugModuleDescription
fix64015POI_OverallSwap zaxxer.com:SparseBitSet for java.util.BitSet
fix63788XWPFWhen removing AbstractNum match by abstractNumId, not list index
fix63940POI_OverallAvoid endless loop/out of memory on string-replace with empty search string
fix63700POI_OverallMake D* functions work with numeric result column
fix63960SXSSFWrite pre-evaluated string-values in formula cells with the correct type
fix63984POI_OverallFunction AND / OR should treat missing parameters as FALSE
fix63749POI_OverallMake getFirstRowNum() and getFirstCellNum() return -1 consistently with empty data
fix63569POI_OverallMake IOUtils.setByteArrayMaxOverride() work correctly
addXSLFAdd, insert and remove columns on XSLFTable
fix63842POI_OverallFix issue with fractions where the whole number part is too large to store as an int
fix63889XDDFProduce valid PPTX file with several chart series
fix63918SL_Common XSLFFix texture fill - scale stretched images correctly
addXDDFAdd Doughnut chart data series support
fix63955HMEFHMEFContentsExtractor fails to extract content from winmail.dat
fix63927POI_OverallInconsistent mapping of Norwegian locales for date formats
fixgithub-163XSSFAdd set level numbering on XWPFParagraph
fixgithub-164XSSFFix Bug in XSSFTable.setCellReferences when table is single cell
fix64004POI_OverallReplace Cloneable / clone() with copy constructor
fix64036POI_OverallReplace reflection calls in factories for Java 9+
fix64044POI_OverallFix issue with setCellValue(LocalDate) not supporting nulls properly
fix64088SL_Common XSLFSlideShow rendering fixes
fix64098XWPFXWPFRun: Whitespace in text not preserved if starting with tab character.
fix64108POI_Overallunsafe pipe character ("|") in Relationship target attribute is not being encoded into a '%7C'.
fixgithub-166XDDFExpose invert if negative on bar charts
fix63998HSSFSupport commas, exclamation marks correctly in AreaReference
fix64045XSSFXSSFWorkbook constructor doesn't close ZipFile if an exception occurs
fix64130HSSFRegression in OldSheetRecord

Version 4.1.1 (2019-10-20)

Summary

  • XSSF: Memory improvements which use much less memory while writing large xlsx files
  • XDDF: Improved chart support: more types and some API changes around angles and width units
  • updated dependencies to Bouncycastle 1.62, Commons-Codec 1.13, Commons-Collections4 4.4, Commons-Compress 1.19
  • XWPF: Additional API methods
  • XSSF: Fixes to XSSFSheet.addMergedRegion() and XSSFRow.shiftRows()
  • EMF/HSLF: Rendering fixes
  • CVE-2019-12415 - XML External Entity (XXE) Processing in Apache POI

Changes

TypeBugModuleDescription
add63774POI_OverallCache pids to speed up custom properties "add" method
add63779SS_CommonAdd support for the new Java date/time API added in Java 8
fix59322HWPFAvoid NullPointerException when reading Word Document with tables and a cell with a null descriptor
fix61490HWPFRead cells of tables correctly in cases where the last cell is not 'fake'
fixHWPFDo not use WeakReference for parents in Ranges to avoid spurious failures in tests
fix63657XSSFFix regression with memory usage in XSSFRow.onDocumentWrite and some other temporary memory leaks
fix63842SS_CommonFractionFormat casts whole part of the value into 'int'
fix63818HSLFAllow multiple charsets for same font typeface
fix63768XSSFXSSFExportToXml adjust settings on SchemaFactory
fix63541XSLFNullPointerException from XSLFSimpleShape.getAnchor for empty xfrm tags
add63745POI_OverallAdd traversing and debugging interface
fix57423 62711XSSFFix regression when XSSFRow.shiftRows() is used
fix63580SL_Common HSLF XSLFFix texture paint handling
fix59004HSLFHSLF rendering - adjust values for presetShapeDefinition differs in HSLF/XSLF
fixHSLFDon't fallback to master shape properties, if master shape is not assigned
addPOI_OverallAdd a ThreadLocalUtil.clearAllThreadLocals which can be used to clear thread-locals
fix63371XSSFXSSFSheet.addMergedRegion should adjust count of merged cells
fix63073XSSFReturn value of XSSFSheet.addMergedRegion is off by one
fix54803OPCError opening XLSX after saving with a Drawing using POI
addgithub-135XDDFSupport to create new chart without reading template
addgithub-143HPSFMAPIType.isFixedLength: not true in case of length > 8
addgithub-144XDDFSupport for seven new chart types
addgithub-149HSMFimprove MAPIMessage.getHtmlBody
addgithub-150XWPFAdd XWPFPicture getWidth and getDepth methods
addgithub-151XWPFAdd XWPFRun getStyle method
addgithub-152XWPFAdd XWPFParagraph setKeepNext method
addgithub-153XWPFAdd XWPFParagraph createHyperlinkRun method
addgithub-154SXSSFImproved support for writing large files
addgithub-157OOXMLAdd setters to POIXMLProperties
fix63153XDDFEnable safe removal of data series from charts
fix59623XDDFProvide example of threshold line in bar chart

Version 4.1.0 (2019-04-09)

Summary

  • Improved support/fixes for Java 9+ and IBM JVM
  • New EMF renderer and support of SVG images in XSLF
  • Security, stability and memory/resource handling improvements
  • Various bug fixes across function and conditional format rule evaluation
  • Upgrade to XMLBeans 3.1.0
  • Upgrade to Bouncycastle 1.61
  • Upgrade to Curvesapi 1.06
  • Upgrade to Commons-Codec 1.12
  • Upgrade to Commons-Collections4 4.3
  • Upgrade to XMLSec 2.1.2

Changes

TypeBugModuleDescription
fix63200XSLFAvoid a possible NullPointerException in XSLFShape.selectPaint()
add60724SS_CommonImplement 'ignore hidden rows' variations for existing implemented variants
fix63264SS_CommonConditional Format rule evaluation calculates relative references incorrectly
fix61652SS_CommonFix NPE in EDATE function when date evaluates to an invalid value
fix62151POIFSWork around illegal reflective access in Java 9+ when freeing buffers
add63029OPCOPCPackage Potentially clobbers files on close()
add62980SS_Common XSSF HSSFMake D* functions ignore case in headings
fix60977XSSFAdding custom properties creates invalid .xlsx file on second write
fix60460SL_CommonNull pointer exception in ExternSheetNameResolver.prependSheetName method
fix60845XSSFFix copying styles/conditional formatting
add63054SS_Common XSSF HSSFImproved evaluation of array formulas with errors in arguments
fix63047POI_OverallMake POILogger subclassable
add62904SS_Common XSSF HSSFSupport array arguments in IF and logical IS*** functions
add63028SL_Common XSLF HSLFProvide font embedding for slideshows
fix61532SXSSFFix setting values/types during formula evaluation for SXSSF
fix62629OPCAllow to handle files with invalid content types for pictures
fix62839SL_CommonFix MathX.floor for negative n
fix62884SL_CommonSheetnum is not checked in InternalWorkbook.setSheetHidden()
fix62886OPCRegression extracting text from corrupted docx files
add63017SL_Common XSLFRemove rows from a XSLFTable
add60656SL_Common XSLF HSLFEMF image support in slideshows
add62365XSLFSVG image support in XSLF
addgithub-136XSSFSupport GEOMEAN function
fix63011OPCMultiple digital signature in excel file broke first signature
fix62999SL_CommonIBM JDK JIT causes AIOOBE in TexturePaintContext
fix62994POI_OverallIBM JCE workarounds
fix62966SL_Commoninit presetShapeDefinitions.xml fail under IBM jdk
fix62953SL_Common XSLF HSLFRendering of FreeformShapes with formula fails
fix63005POI_OverallRemove support for reading files that have XML entity definitions
fix63013XWPFadd XWPFRun setLang method
fix63240XSSFRemove unnecessary synchronization on DocumentHelper.newDocumentBuilder and SAXHelper.newXMLReader
fix61652SS_CommonFix NPE in EDATE function when date evaluates to an invalid value
fix63264SS_CommonConditional Format rule evaluation calculates relative references incorrectly
add60724SS_CommonImplement 'ignore hidden rows' variations for existing SUBTOTAL function variants
fix63268SS_CommonFix issue with CellUtil.setFont adding unnecessary styles
fix61700SS_CommongetForceFormulaRecalculation() returns wrong value
fix63292SS_CommonDataFormatter.formatCellValue() ignores use1904Windowing w/4-part date formats

Version 4.0.1 (2018-12-03)

Summary

  • Fixes pom.xml entries for commons-maths3 (missing), curvesapi and commons-codec
  • Improvements for XDDF charts and text manipulation
  • Upgrade to XMLBeans 3.0.2

Changes

TypeBugModuleDescription
fix59773POI_OverallMove loop invariants outside of loop for faster execution
fix59834POI_Overallpoi-ooxml pom.xml should include dependency on poi-scratchpad
fix62690POI_OverallMissing Maven dependency to commons-math3
fix62692OPCWildFly XML parser not properly supported - Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized
fix62699POI_OverallDownload page must link to https://www.apache.org/dist/poi/KEYS
fix62733XSLFXSLFBackground setFill() can corrupt the document
fix62735XSSFpoi-ooxml 4.0.0 should have dependency on curvesapi 1.05
fix62740XSSFXSSFTable constructor automatically assigns invalid (non-unique) column IDs
fix62768OPCOPCPackage#close() method is incorrectly synchronized
fix62796POI_OverallRemove XML Event parser code from PackagePropertiesMarshaller
fix62800XSLFFix null pointer exception if a picture shape has no blip id
fix62805POI_OverallFix Old-Xerces build issues
fix62805XSLFXSLFTableCell#removeBorder(BorderEdge.right) removes the bottom edge not the right edge.
fix62811POI_OverallPOI Encryption didn't work with 4.0.0 but did work with 3.17
fix62951POI_OverallFileMagic not correctly identified
fix62949SL_CommonSlideShow rendering - keyframe fractions must be increasing
fix62921POI_OverallProvide OOXMLLite alternative for Java 12+
fix62625POI_OverallHandle off-spec, variant REFERENCE_NAME record structure in VBAMacroReader
fix62624POI_OverallHandle module name mapping in VBAMacroReader
fix62836SS_CommonSupport TREND function
fix62859XWPFRare NPE while creating XWPFSDTContent
add62373SS_CommonSupport for FREQUENCY function
fix62831POI_OverallWorkbookFactory.create support for subclass of File, eg from JFileChooser
fix62815XSSFXLSB number extraction improvements
fix62373SS_CommonSupport FREQUENCY function
fix62742POI_OverallAdd common-compress jar to bin zip/tgz
fix62747POI_OverallUpgrade bouncycastle dependency to 1.60
fix62736XWPFRelations on XSLFPictureShape were removed unconditionally
addgithub-109XDDFDefine XDDF user model for text body, its paragraphs and text runs
addgithub-123XSSFImport chart on drawing
fix62746XDDFSupport axIds in XDDF
fix60509XSSFXSSFWorkbook.setSheetName() does not update references in charts
fix59625XWPFLocalisation (Internationalisation in other languages) when applied in charts corrupt the MS Word file

Version 4.0.0 (2018-09-07)

Summary

  • Removed support for Java 6 and 7 making Java 8 the minimum version supported
  • New OOXML schema (1.4) necessary, because of incompatible XMLBeans loading not anymore through POIXMLTypeLoader

Changes

TypeBugModuleDescription
remove62649POIFSRemove OPOIFS* (breaks backwards compatibility)
fix61589XSLFImporting content does not copy hyperlink address
fix62587XSLFrepeated call to XSLFSheet.removeShape leads to java.lang.IllegalArgumentException: partName
fix62513OOXMLDon't try to parse embedded package relationships
add59268OOXMLWork on providing an updated version of XMLBeans
fix62451HPSFDocument last printed in the year 27321
fix60713SXSSF XSSF OPC(S)XSSFWorkbook/POIXMLDocument.write(OutputStream) closes the OutputStream (breaks backwards compatibility)
add62452OPCExtract configuration while verifying XML signatures
fix62187OPCCompiling with Java 10 fails with ClassCastException / use commons-compress (breaks backwards compatibility)
fix62355POI_OverallUnsplit packages for Jigsaw / Java 9 compatibility (breaks backwards compatibility)
fix62041SL_CommonTestFonts fails on Mac
fix62051XSLFTwo shapes have the same shapeId within the same slide
fix61633XSLFZero width shapes aren't rendered
add62037SL_CommonSlideNames should not be null but have a default as if accessed by VBA
fix62381SL_CommonFix rendering of AutoShapes
fix59893POI_OverallForbid calls to InputStream.available
fix61905HSSFHSSFWorkbook.setActiveCell() does not actually make the cell selected in Excel
fix61459HSLFHSLFShape.getShapeName() returns name of shapeType and not the shape name
add62319SL_CommonDecommission XSLF-/PowerPointExtractor (breaks backwards compatibility)
add62092SL_CommonText not extracted from grouped text shapes in HSLF
add62159OPCSupport XML signature over windows certificate store
add57369XDDFAdd support for major and minor units on chart axes
add55954XWPFAdded methods to position table
add61947POI_OverallRemove deprecated classes (POI 4.0.0)
add55954XWPFAdd functions to get, set, remove outer borders for tables
addgithub-72XDDFDefine XDDF user model for shape properties to be shared between XSLF, XSSF and XWPF
add61543XSSFDo not fail with "part already exists" when tables are created/removed (breaks backwards compatibility)
add61550POI_OverallAdd more information to exception text and verify that it is thrown (breaks backwards compatibility)
add61609POI_OverallAdd .gitattribute file and set lf for one sample-file (breaks backwards compatibility)
add61797SL_CommonEmbed Excel / Ole objects into powerpoint (breaks backwards compatibility)
fix61943SL_Commonnarrow generics definition because of tighter java9 checks
add61942OPCRefactor PackagePartName handling and add getUnusedPartIndex method
fix61941POIFSMove Ole marker generation to Ole10Native
fix61940POI_OverallReplace ClassID statics with enum
add61939OPCProvide schema for AlternateContent - provide new ooxml-schemas-1.4.jar
fix61787HSSFChange how deleted content is detected to not incorrectly see too much text as deleted, this was introduced with bug 58067
fix61798HSSFFix usage of getLastCellNum() when calculating worksheet dimension during saving
fix61911HWPFAvoid IndexOutOfBounds access when reading pictures
fix61765HSSFSupport third party tool generated files using WorkBook as their POIFS directory name
fix61881HSLFRegression in ppt parsing: typeface can't be null or empty
addgithub-68XDDF XSLF XSSF XWPFShare chart data implementation between XSLFChart, XSSFChart and XWPFChart through XDDF
fix61809HPSFInfinite loop in SectionIDMap.get() and .put()
add60887XSSFSurface XSSF Header/Footer Attributes
add61730SS_CommonCellRangeAddresses support iterating over their CellAddresses
fix61727SS_CommonCellRangeUtil merge cell ranges broken for certain orders of arguments
fix57517HSSFFix various situations that were handled incorrectly in HSSFOptimiser
add61671XSLFXSLFSlide does not contain isHidden and setHidden like HSLFSlide does
update61630XSSFPerformance improvement to XSSFExportToXML
add58068XSSFAdd a method to pass the actual Color to StylesTable.findFont()
fix61096POIFSAdd support for modules in VBAMacroReader
fix61033XSSFAdd XSSFWorkbook.setCellFormulaValidation() to control if formulas are validated during Cell.setCellFormula()
fix61148SXSSFFix calculating/setting formula value
fix61064SS_CommonSupport behavior of function CEILING in newer versions of Microsoft Excel
fix61516SS_CommonCorrectly handle references that end up outside the workbook when cells with formulas are copied
add60737XSSFAdd endSheet() to XSSFEventBasedExcelExtractor
fix59747OPCExchange order of writing parts into Zip to allow some tools to handle files better
addgithub-69SS_CommonSupport matrix functions
fix60499OPCDeleting a picture that is used twice on a slide corrupt the slide
fix60279POI_OverallBack-off to brute-force search for macro content if macro offset is incorrect
add61528XSSFPivot table enhancements
fix61906XSSFadd API for working with RichStringText
fix61792SS_CommonAvoid iterating over chars (use codepoints instead)
fix62254SS_CommonUpdate OFFSET function to support optional values
update62435XSSFRename getAllEmbedds method to getAllEmbeddedParts (getAllEmbedds is retained but deprecated)
update62438POI_OverallReplace org.apache.poi.openxml4j.util.Nullable with java.lang.Optional (breaks backwards compatibility)
fixgithub-90XSSFChange default DSIG signing algorithm to SHA256
fixgithub-107SS_CommonSupport AREAS function
fixgithub-110XWPFRenames org.apache.poi.xwpf.usermodel.TextSegement to org.apache.poi.xwpf.usermodel.TextSegment (breaks backwards compatibility)
fixgithub-114XWPFBetter support for Footnotes and Endnotes