<actiontype="fix"fixes-bug="68094"context="SXSSF">Allow to use SXSSFSheet.setArbitraryExtraWidth() to define an adjustment-factor when auto-sizing columns</action>
<actiontype="fix"fixes-bug="57603"context="HWPF">Fix reading/writing of documents with many columns</action>
<actiontype="fix"fixes-bug="65190"context="SS_Common">Handle decimal format '0#' the same way as Excel</action>
<actiontype="fix"fixes-bug="66425"context="POI_Overall">Multiple fixes found by fuzzing Apache POI via oss-fuzz</action>
<actiontype="add"fixes-bug="66260"context="XWPF">Add getNumberOfTexts method to XWPFRun</action>
<actiontype="fix"fixes-bug="69315"context="HSMF">Continue processing properties after multivalued properties</action>
<actiontype="fix"fixes-bug="69529"context="XSSF">Streamed reading: Log failures to format formulas and numbers instead of stopping processing</action>
<actiontype="fix"fixes-bug="69536"context="SXSSF">Fix arbitrary extra width support</action>
<actiontype="fix"fixes-bug="69555"context="SXSSF">Handle extra issue where FontSystem is missing</action>
<actiontype="fix"fixes-bug="69583"context="SS_Common">Cell copy support does not handle Time only values properly</action>
<actiontype="fix"fixes-bug="69681"context="SS_Common">Issue with date/time formats that leave a space before the AM/PM part</action>
<actiontype="add"fixes-bug="69714"context="POI_Overall">Allow custom TempFileCreationStrategy per thread</action>
</actions>
</release>
<releaseversion="5.4.0"date="2025-01-08">
<summary>
<summary-item>Add support for SOURCE_DATE_EPOCH to allow to create reproducible binary files without creation/modification-timestamp being set</summary-item>
<summary-item>Breaking change: Some invalid content in the compressed file-formats for xlsx/docx/pptx/... now fail parsing to prevent handling malicious input incorrectly</summary-item>
<summary-item>Upgrade ant dependency to 1.10.15</summary-item>
<summary-item>Upgrade batik dependency to 1.18</summary-item>
<summary-item>Upgrade commons-codec dependency to 1.17.1</summary-item>
<summary-item>Upgrade commons-compress dependency to 1.27.1</summary-item>
<summary-item>Upgrade commons-io dependency to 2.18.0</summary-item>
<summary-item>Upgrade log4j-api dependency to 2.24.3 and add log4j-bom dependency</summary-item>
<summary-item>Upgrade pdfbox dependency to 3.0.3</summary-item>
<summary-item>Upgrade xmlbeans dependency to 5.3.0</summary-item>
<summary-item>Upgrade xmlsec dependency to 3.0.5</summary-item>
<summary-item>Upgrade JaCoCo code-coverage tooling to 0.8.12</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="github-653"context="HSSF">Adjust HSSFWorkbook.getSheet() to return the first case-insensitive match, similar to XSSF</action>
<actiontype="fix"fixes-bug="github-655"context="XWPF">Fix searching text in paragraphs when text is spread across multiple runs</action>
<actiontype="fix"fixes-bug="github-657"context="SXSSF">Support setting an arbitrary extra width value for column widths - not working - fixed in 69536 (5.4.1)</action>
<actiontype="fix"fixes-bug="github-670"context="XWPF">XWPFRun.getText should support delInstrText and noBreakHyphen</action>
<actiontype="fix"fixes-bug="69418"context="SS_Common">Issue when evaluating WORKDAY function that has a cell ref as 2nd param</action>
<actiontype="fix"fixes-bug="69620"context="OOXML">Throw exception if xlsx/docx/pptx contains duplicate file names</action>
</actions>
</release>
<releaseversion="5.3.0"date="2024-07-02">
<summary>
<summary-item>Upgrade log4j-api dependency to 2.23.1</summary-item>
<summary-item>Upgrade commons-codec dependency to 1.17.0</summary-item>
<summary-item>Upgrade commons-compress dependency to 1.26.2</summary-item>
<summary-item>Upgrade commons-io dependency to 2.16.1</summary-item>
<summary-item>Upgrade pdfbox dependency to 3.0.2 and graphics2d dependency to 3.0.2</summary-item>
<summary-item>Upgrade xmlsec dependency to 3.0.4</summary-item>
<summary-item>Upgrade bouncycastle dependency to 1.79</summary-item>
<summary-item>Upgrade xmlbeans dependency to 5.2.1</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="63189"context="OOXML">Add support for hyperlink based relationships which are stored separately from other relationships</action>
<actiontype="fix"fixes-bug="68237"context="SXSSF">Some boolean attribute values are written as true instead of 1</action>
<actiontype="fix"fixes-bug="68703"context="XSLF">IllegalArgumentException: Unexpected color choice CTFontCollectionImpl when reading font color for a table cell</action>
<actiontype="fix"fixes-bug="68778"context="SXSSF">Fix issue in SXSSF when there are missing fonts</action>
<actiontype="fix"fixes-bug="68183"context="SXSSF">SXSSFWorkbook now removes temp files when closed - removing need for a separate dispose call</action>
<actiontype="add"fixes-bug="68987"context="OOXML">Support allowStoredEntriesWithDataDescriptor=true when reading zip data</action>
<actiontype="add"fixes-bug="69147"context="OOXML">Fix regression in date handling when evaluating TEXT function</action>
<actiontype="fix"fixes-bug="github-578"context="SXSSF">Rework exception handling for missing fonts to make it more robust</action>
<actiontype="fix"fixes-bug="github-601"context="XDGF">handle elliptical arcs that have colinear points</action>
<actiontype="add"fixes-bug="github-604"context="XDGF">Support for polylines</action>
<actiontype="add"fixes-bug="github-607"context="XWPF">Support SVGs in XWPF</action>
</actions>
</release>
<releaseversion="5.2.5"date="2023-11-25">
<summary>
<summary-item>Upgrade commons-io dependency to 2.15.0</summary-item>
<summary-item>Upgrade commons-compress dependency to 1.25.0</summary-item>
<summary-item>Upgrade log4j-api dependency to 2.21.1</summary-item>
<summary-item>Upgrade xmlsec dependency to 3.0.3</summary-item>
<summary-item>Upgrade bouncycastle dependency to 1.77</summary-item>
<summary-item>Upgrade xmlbeans dependency to 5.2.0</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="67475"context="SS_Common">Better support for edge cases in TEXT function</action>
<actiontype="fix"fixes-bug="67510"context="XDDF">Fix issue where chart axes were defaulting to have blank number formats - which recent versions of Excel treat as corrupted.</action>
<actiontype="add"fixes-bug="67735"context="XWPF">Add Complex scripts support in XWPFRun</action>
<actiontype="fix"fixes-bug="67579"context="OOXML">POI 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.</action>
<actiontype="fix"fixes-bug="67785"context="XSSF">XSSFExcelExtractor does not format formula results like the streaming based extractor</action>
<actiontype="fix"fixes-bug="68094"context="XSSF">Improve cell width logic to avoid rounding issues</action>
<actiontype="fix"fixes-bug="github-505"context="SL_Common">DrawTextFragment height should include leading space</action>
</actions>
</release>
<releaseversion="5.2.4"date="2023-09-28">
<summary>
<summary-item>Discontinued the binary packages to reduce maintenance overhead, please rebuild the sources locally or use Maven Central for binary files</summary-item>
<summary-item>Upgrade log4j-api dependency to 2.20.0</summary-item>
<summary-item>Upgrade xmlsec dependency to 3.0.2</summary-item>
<summary-item>Upgrade batik dependency to 1.17</summary-item>
<summary-item>Upgrade pdfbox dependency to 2.0.29, graphics2d to 0.43</summary-item>
<summary-item>Upgrade commons-codec dependency to 1.16.0</summary-item>
<summary-item>Upgrade commons-compress dependency to 1.24.0</summary-item>
<summary-item>Upgrade commons-io dependency to 2.13.0</summary-item>
<summary-item>Upgrade curvesapi dependency to 1.08</summary-item>
<summary-item>Upgrade SparseBitSet dependency to 1.3</summary-item>
<summary-item>Use jdk18on versions of bouncycastle jars (v1.76)</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="66598"context="XSSF">Fix invalid loop-condition when cleaning up CTCells</action>
<actiontype="fix"fixes-bug="47950"context="POI_Overall">make stream/directory name lookup in OLE2 case insensitive</action>
<actiontype="fix"fixes-bug="66521"context="POI_Overall">Provide a utility to clear all thread-locals to avoid reports of memory-leaks in web-application containers</action>
<actiontype="fix"fixes-bug="66436"context="POI_Overall">Fix handling padding when decrypting data</action>
<actiontype="fix"fixes-bug="54373"context="XSSF">Include alpha/transparency value when creating an XSSFColor from an AWT Color object</action>
<actiontype="fix"fixes-bug="62272"context="XSSF">Include alpha/transparency value when setting a color-value for a font</action>
<actiontype="fix"fixes-bug="65260"context="SXSSF">Fix graceful handling of missing font-system on the operating system</action>
<actiontype="fix"fixes-bug="65543"context="HSSF">Incomplete Shared String Tables were causing read failures</action>
<actiontype="fix"fixes-bug="66257"context="XSSF">NullPointerException in XSSFReader$SheetIterator.next()</action>
<actiontype="fix"fixes-bug="66278"context="XSLF">Multiple gradient stops at the exact same location causing a rendering failure</action>
<actiontype="add"fixes-bug="66301"context="HSMF">Add a method to properly write the header necessary for a MSG attachment</action>
<actiontype="fix"fixes-bug="66312"context="XWPF">Inserting paragraph into table from cursor</action>
<actiontype="add"fixes-bug="66347"context="XWPF">Add theme support to XWPF</action>
<actiontype="fix"fixes-bug="66365"context="XSSF">Fix issue where cells with formulas and cached results of string type do not properly support shared strings</action>
<actiontype="fix"fixes-bug="66399"context="XSLF">Text run highlight colors were ignored</action>
<actiontype="fix"fixes-bug="66401"context="SS_Common">Fix parsing formulas with sheet-names which contain single quotes</action>
<actiontype="fix"fixes-bug="66418"context="XSSF">Fix performance issue with XSSFSheet.groupRow</action>
<actiontype="fix"fixes-bug="66473"context="SXSSF">Fix performance issue with SXSSFCell.getColumnIndex()</action>
<actiontype="fix"fixes-bug="66475"context="POI_Overall">SignatureConfig: remove ThreadLocals and deprecated code associated with them</action>
<actiontype="fix"fixes-bug="66514"context="POI_Overall">Remove support for zip/tgz release artifacts</action>
<actiontype="fix"fixes-bug="66532"context="SXSSF">Improve performance of SheetDataWriter outputEscapedString</action>
<actiontype="fix"fixes-bug="66584"context="OOXML">Ensure ZipPackage closes input stream when exceptions happen</action>
<actiontype="fix"fixes-bug="66614"context="SS_Common">Issue where OFFSET function applies limits that should only apply to xls format spreadsheets</action>
<actiontype="fix"fixes-bug="66644"context="POI_Overall">Make jar build reproducible</action>
<actiontype="fix"fixes-bug="66661"context="XSSF">Fix issue with adding table formulas</action>
<actiontype="fix"fixes-bug="66988"context="XWPF">XWPFTableCell: make setText fully replace the text and add appendText method to append</action>
<actiontype="fix"fixes-bug="67005"context="XSLF">Basic for reading audio files in pptx files</action>
<actiontype="fix"fixes-bug="67396"context="OOXML">Set standalone="yes" in XML declarations when writing OOXML format files</action>
</actions>
</release>
<releaseversion="5.2.3"date="2022-09-16">
<summary>
<summary-item>Upgrade graphics2d dependency to 0.40, pdfbox to 2.0.26</summary-item>
<summary-item>Upgrade xmlsec dependency to 3.0.0</summary-item>
<summary-item>Upgrade xmlbeans dependency to 5.1.1</summary-item>
<summary-item>Upgrade log4j-api dependency to 2.18.0</summary-item>
<summary-item>Speed up processing of formulas with column-ranges, e.g. VLOOKUP(A4,$D:$E,2,0)</summary-item>
<summary-item>Speed up compilation of jar-files-only builds by avoiding direct dependency on test-execution</summary-item>
<summary-item>Avoid some more possible overly large memory allocations on certain input documents</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="51037"context="SS_Common">setDefaultColumnStyle() in XSSFSheet/SXSSFSheet was not working as expected</action>
<actiontype="fix"fixes-bug="66052"context="SS_Common">XSSFColor could not be used the same time as org.apache.poi.ss.util classes</action>
<actiontype="add"fixes-bug="66083"context="SS_Common">Support CEILING.MATH and FLOOR.MATH functions</action>
<actiontype="fix"fixes-bug="66087"context="SS_Common">support case insensitive matching in D* functions</action>
<actiontype="add"fixes-bug="66090"context="SS_Common">add support for DCOUNT, DCOUNTA, DAVERAGE, DSTDEV, DSTDEVP, DVAR, DVARP and DPRODUCT functions</action>
<actiontype="add"fixes-bug="66092"context="SS_Common">Add STDEVP, STDEVA, STDEVPA, VARA and VARPA functions</action>
<actiontype="add"fixes-bug="66093"context="SS_Common">add support for unimplemented subfunctions to SUBTOTAL function</action>
<actiontype="add"fixes-bug="66094"context="SS_Common">add support for STDEV.S, STDEV.P, VAR.S and VAR.P functions</action>
<actiontype="add"fixes-bug="66095"context="SS_Common">add support for POISSON.DIST function</action>
<actiontype="add"fixes-bug="66097"context="SS_Common">Support CEILING.PRECISE and FLOOR.PRECISE functions</action>
<actiontype="add"fixes-bug="66098"context="SS_Common">D* functions should support wildcard matches</action>
<actiontype="add"fixes-bug="66105"context="SS_Common">Support excel correl, covar, pearson and forecast functions</action>
<actiontype="fix"fixes-bug="66115"context="HSSF">Some Password protected XLS files are not read</action>
<actiontype="add"fixes-bug="66123"context="XSSF">Support the gte attribute with XSSFConditionalFormattingThreshold</action>
<actiontype="add"fixes-bug="66145"context="OOXML">generate poi-ooxml-full classes for dml-drawing xsd</action>
<actiontype="add"fixes-bug="66146"context="OOXML">generate poi-ooxml-full classes for threaded comment and word12 xsds</action>
<actiontype="fix"fixes-bug="66173"context="SS_Common">add 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)</action>
<actiontype="fix"fixes-bug="github-360"context="HSSF">HSSFExtendedColor was not setting RGB colors properly</action>
<actiontype="add"fixes-bug="66176"context="XSLF">Integrate SmartArt diagrams from powerpoint presentations</action>
<actiontype="fix"fixes-bug="66181"context="SS_Common">POI's implementation of VALUE function did not properly handle empty string input</action>
<actiontype="fix"fixes-bug="66187"context="XWPF">Calling getTextHighlightColor() or getEmphasisMark() on XWPFRun can lead to corruption of file</action>
<actiontype="fix"fixes-bug="66211"context="XSSF">XSSFTable.updateHeaders did not work for Worksheets created using current Excel versions</action>
<actiontype="fix"fixes-bug="66212"context="XSSF">XSSFSheet.removeTable did not remove the links to the table part reference from the sheet</action>
<actiontype="fix"fixes-bug="66213"context="XSSF">XSSFWorkbook.cloneSheet does not clone XSSFTables linked from the sheet</action>
<actiontype="fix"fixes-bug="66215"context="XSSF">Shifting rows or columns can damage formulas in tables</action>
<actiontype="fix"fixes-bug="66216"context="XSSF">XSSFPivotTable.getPivotCacheDefinition() does not work properly when XSSFPivotTable was read from an existing *.xlsx file</action>
<actiontype="fix"fixes-bug="66230"context="SXSSF">SXSSFWorkbook should work even when fonts not installed on OS</action>
<actiontype="fix"fixes-bug="66242"context="XSLF">Issue with orphaned (in package) images and notes post slide removal</action>
</actions>
</release>
<releaseversion="5.2.2"date="2022-03-19">
<summary>
<summary-item>Upgrade log4j-api dependency to 2.17.2 and graphics2d dependency to 0.35 as well as some test dependencies</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="65915"context="SS_Common">Fix issue where Boolean functions (AND, OR) do not work properly in array context</action>
<actiontype="add"fixes-bug="65934"context="XSLF">add removeTextParagraph to text box API</action>
<actiontype="add"fixes-bug="65935"context="XSLF">add removeTextRun to paragraph API</action>
<actiontype="fix"fixes-bug="65939"context="XSSF">Fix stackoverflow issue when removing formulas with circular references</action>
<actiontype="add"fixes-bug="65943"context="SXSSF">Support rich text strings in SXSSFWorkbook (only when shared string table is used)</action>
<actiontype="fix"fixes-bug="65946"context="OOXML">POIXMLPropertiesTextExtractor returns duplicate key for Core properties</action>
<actiontype="fix"fixes-bug="65950"context="POI_Overall">POI 5.2.1 can allocate byte arrays that are too big</action>
</actions>
</release>
<releaseversion="5.2.1"date="2022-03-03">
<summary>
<summary-item>Upgrade curvesapi dependency to 1.07</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="65887"context="POI_Overall">IOUtils.toByteArray did not fully take into account value set by IOUtils.setByteArrayMaxOverride</action>
<actiontype="fix"fixes-bug="60541"context="SS_Common">Collapsing a column group was incorrectly implemented</action>
<actiontype="fix"fixes-bug="62857"context="SS_Common">DOLLAR function is not properly implemented</action>
<actiontype="fix"fixes-bug="65792"context="SS_Common">Multiplication in cell formulas can have small rounding issues</action>
<actiontype="fix"fixes-bug="65839"context="SS_Common">Picture resize can lead to infinite loop</action>
<actiontype="add"fixes-bug="65846"context="SS_Common">Add support for NUMBERVALUE function</action>
<actiontype="add"fixes-bug="65850"context="SS_Common">Add support for Normal Distribution functions</action>
<actiontype="add"fixes-bug="65870"context="SS_Common">Add support for BESSELJ function</action>
<actiontype="add"fixes-bug="65871"context="SS_Common">Add support for DOLLARDE and DOLLARFR functions</action>
<actiontype="add"fixes-bug="65879"context="SS_Common">Add support for WORKDAY.INTL functions</action>
<actiontype="fix"fixes-bug="65899"context="HMEF">Fix issue where malformed TNEF file can cause memory issues</action>
<actiontype="fix"fixes-bug="65908"context="OPC">XAdES-XL modifications due to specification check errors</action>
</actions>
</release>
<releaseversion="5.2.0"date="2022-01-14">
<summary>
<summary-item>Refactor to XSSFReader, SharedStringsTable, CommentsTable and ThemesTable to make them more extensible</summary-item>
<summary-item>Upgrade log4j-api dependency to 2.17.1</summary-item>
<summary-item>Upgrade BouncyCastle dependency to 1.70</summary-item>
<summary-item>Upgrade PDFBox Graphics2d dependency to 0.34 and PDFBox dependency to 2.0.25</summary-item>
</summary>
<actions>
<actiontype="add"fixes-bug="65668"context="OOXML">upgrade to xmlsec 2.3.0 - make secure validation configurable</action>
<actiontype="add"fixes-bug="65672"context="OOXML">Digital Signature - set commitment type and purpose</action>
<actiontype="fix"fixes-bug="65676"context="XSSF">Issue in XSSFReader where string builder is not always cleared between cell reads</action>
<actiontype="add"fixes-bug="65694"context="HSLF">handle date/time fields and formats</action>
<actiontype="fix"fixes-bug="github-281"context="SS_Common">Cell Conditional Formatting: Change regex to account for decimals with no leading digit</action>
<actiontype="fix"fixes-bug="github-273"context="SS_Common">Log warning when long sheet names are trimmed</action>
<actiontype="add"fixes-bug="github-243"context="SS_Common">Add support for XLOOKUP and XMATCH functions</action>
<actiontype="add"fixes-bug="github-290"context="POI_Overall">Customize Spliterator implementations for better parallelism</action>
<actiontype="fix"fixes-bug="63211"context="SS_Common">DataFormatter incorrectly formats data formats with escaped percent character</action>
<actiontype="fix"fixes-bug="64732"context="XSSF">XSSFSheet.createTable generates corrupted file when a header's cell contains a line break</action>
<actiontype="fix"fixes-bug="65701"context="OOXML">Password Protecting a document when Saxon is on classpath can corrupt the output</action>
<actiontype="add"fixes-bug="65703"context="SS_Common">DataFormatter: add setUse4DigitYearsInAllDateFormats(boolean) method with default of false</action>
<actiontype="add"fixes-bug="65730"context="SS_Common">DataFormatter: add setUseCachedValuesForFormulaCells(boolean) method with default of false</action>
<actiontype="fix"fixes-bug="65715"context="OOXML">Fix issue in XSSFSheet getDrawingPatriarch</action>
<actiontype="fix"fixes-bug="65738"context="OOXML">Fix issue with excessive logging of invalid parts in OOXML files</action>
<actiontype="fix"fixes-bug="65766"context="SS_Common">Cell copy does not respect rich text</action>
<actiontype="fix"fixes-bug="65772"context="POI_Overall">stop using file deleteOnExit in DefaultTempFileCreationStrategy</action>
</actions>
</release>
<releaseversion="5.1.0"date="2021-11-01">
<summary>
<summary-item>XDDF - bug fixes</summary-item>
<summary-item>Upgrade Batik dependency to 1.14</summary-item>
<summary-item>Upgrade BouncyCastle dependency to 1.69 (including adding dependency on bcutil jar)</summary-item>
<summary-item>Upgrade Commons-Compress dependency to 1.21</summary-item>
<summary-item>Upgrade XMLSec dependency to 2.2.3</summary-item>
<summary-item>Upgrade PDFBox Graphics2d dependency to 0.33 (and test with PDFBox 2.0.24)</summary-item>
<summary-item>Add commons-io 2.11.0 as a dependency</summary-item>
<summary-item>Upgrade XMLBeans to 5.0.2</summary-item>
<summary-item>Internal logging in POI now uses Apache Log4J 2</summary-item>
<summary-item>Small refactor to XSSFReader to make it more extensible - should not affect most users unless they subclass XSSFReader</summary-item>
<summary-item>By default, no DTDs will be accepted in XML files. This can be relaxed by setting POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false).</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="github-221"context="XSLF">XSLFTable - revert addRow to behaviour before 4.1.2</action>
<actiontype="fix"fixes-bug="65016"context="XDDF">Don't throw exception on empty data source</action>
<actiontype="fix"fixes-bug="64950"context="XDDF">Set hole size for doughnut chart</action>
<actiontype="fix"fixes-bug="63901"context="XSSF">XSSFDrawing - import chart from other drawing</action>
<actiontype="fix"fixes-bug="63902"context="XSSF">XSSFWorkbook - reference cloned sheet in cloned chart data</action>
<actiontype="fix"fixes-bug="54470"context="XSSF">XSSFWorkbook - clone sheet with chart</action>
<actiontype="fix"fixes-bug="57835"context="XSLF">XSLFSlide - import slide notes when importing slide content</action>
<actiontype="add"fixes-bug="github-228"context="XDDF">Manipulate individual data point properties</action>
<actiontype="add"fixes-bug="65192"context="HSSF">Allow change of EncryptionMode</action>
<actiontype="add"fixes-bug="65206"context="POI_Overall">Migrate ant / maven to gradle build</action>
<actiontype="fix"fixes-bug="65228"context="XSLF">the method getCap() does not work correctly in xslf.usermodel.XSLFTextRun</action>
<actiontype="fix"fixes-bug="65214"context="OOXML">Document signed by POI reported as 'partially' signed</action>
<actiontype="fix"fixes-bug="65085"context="HSLF">LineRect shall throw more specific exceptions</action>
<actiontype="fix"fixes-bug="64844"context="SL_Common">Incorrect sizes of images in SVG</action>
<actiontype="add"fixes-bug="65304"context="POI_Overall">Add commons-io as a dependency</action>
<actiontype="fix"fixes-bug="64473"context="OOXML">Handle issue where OOXML file has metadata and metadata.xml</action>
<actiontype="add"fixes-bug="60924"context="SS_Common">Support IFS and SWITCH functions</action>
<actiontype="fix"fixes-bug="65471"context="XSSF">Add support for T literal in DateTime formats</action>
<actiontype="fix"fixes-bug="65475"context="SS_Common">SUMIF and SUMIFS functions do not properly handle #N/A values</action>
<actiontype="fix"fixes-bug="github-242"context="SS_Common">add support for MAXIFS, MINIFS, AVERAGEIFS functions</action>
<actiontype="fix"fixes-bug="65501"context="XSLF">Use viewbox when rendering SVG images</action>
<actiontype="add"fixes-bug="65581"context="OOXML">add optional support in ZipArchiveFakeEntry to use a temp file</action>
<actiontype="fix"fixes-bug="65595"context="SS_Common">Strip color formatting in headers and footers</action>
<actiontype="fix"fixes-bug="65606"context="SS_Common">Fix issues with WEEKNUM function evaluation</action>
<actiontype="fix"fixes-bug="65612"context="XSLF">XSLF CustomGeometry - replace XmlStreamReader access with XmlBeans delegate</action>
<actiontype="fix"fixes-bug="49202"context="SS_Common">Support PERCENTRANK and related functions</action>
<actiontype="fix"fixes-bug="64258"context="SS_Common">Support TDIST and related functions</action>
<actiontype="fix"fixes-bug="65490"context="XSSF">Better support for shared hyperlinks</action>
<actiontype="fix"fixes-bug="65042"context="OPC">Add support to ZipPackage to allow temp files to be used to save memory (useful for writing xlsx/pptx/docx files with pictures, etc.).</action>
<actiontype="fix"fixes-bug="65372"context="OPC">Allow ZipSecureFile.setMaxEntrySize to accept sizes above 4Gb</action>
<actiontype="fix"fixes-bug="65331"context="XWPF">Fix issue in XWPFTable.setTableAlignment(TableRowAlign tra)</action>
<actiontype="fix"fixes-bug="65623"context="OPC">Create XAdES-T signature with XAdESXLSignatureFacet</action>
<actiontype="fix"fixes-bug="62040"context="SS_Common">QUOTIENT function does not support cell references</action>
<actiontype="fix"fixes-bug="64542"context="OPC">Allow creation of POIFSFileSystem instances from FileChannels but with an optional flag to prevent POI from closing the channel</action>
<actiontype="fix"fixes-bug="65452"context="SS_Common">WorkbookFactory.create(File, ...) should throw exception if the input file is not in a supported format</action>
<actiontype="fix"fixes-bug="65551"context="XSLF">Incorrect fetching paragraph and text runs props from master shape</action>
<actiontype="fix"fixes-bug="65634"context="XSLF">SlideShowFactory.create(File, ...) should throw exception if the input file is not in a supported format</action>
<actiontype="fix"fixes-bug="65648"context="SXSSF">Remove finalizer on SXSSF SheetDataWriter</action>
<actiontype="fix"fixes-bug="65650"context="POI_Overall">Use image/x-pict as mime type for pict format pictures (previous versions used a mix of image/pict and image/x-pict)</action>
<actiontype="fix"fixes-bug="65653"context="HSLF">HSLF FillType for texture and background color fills ignored</action>
</actions>
</release>
<releaseversion="5.0.0"date="2021-01-20">
<summary>
<summary-item>Upgrade to ECMA-376 5th edition (transitional) schemas - expect API breaks when using XmlBeans directly<br/>
some smaller changes are necessary when code is using the low-level CT... classes </summary-item>
<summary-item>Change artifact names of poi-/ooxml-schemas to poi-ooxml-lite/full</summary-item>
<summary-item>ooxml-security is part of poi-ooxml-full (known as ooxml-schemas) now and won't be provided separately</summary-item>
<summary-item>new experimental DeferredSXSSFWorkbook which creates fewer temp files by lazily generating rows (see DeferredGeneration in poi-examples)</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="64494"context="XSSF">Ensure "applyAlignment" in cell-styles is enabled when necessary</action>
<actiontype="fix"fixes-bug="64450"context="OOXML">Allow to parse a file where the relationship-id is an empty string</action>
<actiontype="fix"fixes-bug="64750"context="XSSF">Do not use CTDataValidations.getCount(), instead only rely on getDataValidationArray</action>
<actiontype="fix"fixes-bug="64986"context="SS_Common">Support missing or blank match_type for function Match</action>
<actiontype="fix"fixes-bug="64838"context="XWPF">Do not populate cells with a paragraph when loading an existing document</action>
<actiontype="fix"fixes-bug="65009"context="HSLF">Use correct index for 1-based pictures</action>
<actiontype="fix"fixes-bug="64460"context="XSSF">Fix invalid moving of merged regions</action>
<actiontype="fix"fixes-bug="64791"context="HSSF">Use proper position for the WriteAccessRecord</action>
<actiontype="fix"fixes-bug="64238"context="SS_Common">Make LOOKUP functions deal with empty last arg correctly</action>
<actiontype="fix"fixes-bug="64322"context="POIFS">Improve performance of reading OLE2 files</action>
<actiontype="add"fixes-bug="64393"context="SS_Common">Handle MissingArgEval in relational operators</action>
<actiontype="add"fixes-bug="64420"context="XSSF">Avoid NullPointerException in XSSFReader.SheetIterator.next() if files contain macros</action>
<actiontype="add"fixes-bug="github-177"context="SS_Common">Avoid NullPointerException if RangeCopier encounters empty/missing rows</action>
<actiontype="add"fixes-bug="63294"context="SS_Common">Add some more methods to allow to use CellType everywhere</action>
<actiontype="fix"context="XSSF">Fix regression introduced via Bug 60845: There are more items in CTBorder that need to be handled in equals()</action>
<actiontype="fix"fixes-bug="63845"context="XWPF">Adjust handling of formula-cells to fix regression with missing re-calculation introduced in 4.1.0</action>
<actiontype="fix"fixes-bug="55966"context="XWPF">Include content control text in word extraction also if it is part of a paragraph</action>
<actiontype="fix"fixes-bug="64244"context="XSSF">Take the replacement of RichText strings into account when computing length of strings</action>
<actiontype="add"context="SS_Common">SS method to check if a Named Range is hidden or not</action>
<actiontype="add"context="SS_Common">SS method to check if a Named Range is hidden or not</action>
<actiontype="fix"fixes-bug="64561"context="XWPF">XWPFSDTContent.getText() is empty for nested SDT elements</action>
<actiontype="fix"fixes-bug="64595"context="SXSSF">Missing quoting of pre-evaluated string values in formula cells causes corrupt files</action>
<actiontype="fix"fixes-bug="64693"context="HEMF">POI HwmfGraphics cannot read the embedded document title</action>
<actiontype="fix"fixes-bug="64716"context="HWMF">WMF font typeface charset encoding error</action>
<actiontype="fix"fixes-bug="64773"context="POI_Overall">Visual signatures for .xlsx/.docx</action>
<actiontype="fix"fixes-bug="64817"context="POIFS">Fix issue in testXLSXinPPT</action>
<actiontype="fix"fixes-bug="github-193"context="SS_Common">Change TRUNC implementation to use MathX</action>
<actiontype="add"fixes-bug="64867"context="SL_Common">Provide PDF rendering with PPTX2PNG</action>
<actiontype="fix"fixes-bug="64964"context="SS_Common">Converting cell values to boolean should throw IllegalStateException instead of RuntimeException when conversion is not possible</action>
<actiontype="fix"fixes-bug="64971"context="XSSF">XSSFFont setCharset(FontCharset) should use latest class instead of deprecated one</action>
<actiontype="fix"fixes-bug="60397"context="XSSF">Improve performance of cell merge</action>
<actiontype="fix"fixes-bug="github-206"context="SXSSF">Improve performance of SXSSF cell evaluation</action>
<actiontype="fix"fixes-bug="64976"context="SS_Common">Change some methods to return ints instead of shorts (Font and CellStyle)</action>
<actiontype="fix"fixes-bug="56205"context="OOXML"breaks-compatibility="true">Upgrade OOXML schema to 3rd edition (transitional)</action>
<actiontype="fix"fixes-bug="64979"context="OOXML">Change artifact names of poi-/ooxml-schemas</action>
<actiontype="fix"fixes-bug="64981"context="OOXML"breaks-compatibility="true">Upgrade OOXML schema to 5th edition (transitional)</action>
<actiontype="fix"fixes-bug="64876"context="XSLF">Unable to convert pptx to pdf</action>
<actiontype="fix"fixes-bug="65026"context="POI_Overall">Migrate tests to Junit 5</action>
<actiontype="add"fixes-bug="github-207"context="POI_Overall">Use SLF4J instead of commons-logging - use jcl-over-slf4j</action>
<actiontype="fix"fixes-bug="64098"context="XWPF">XWPFRun: Whitespace in text not preserved if starting with tab character.</action>
<actiontype="fix"fixes-bug="64108"context="POI_Overall">unsafe pipe character ("|") in Relationship target attribute is not being encoded into a '%7C'.</action>
<actiontype="fix"fixes-bug="github-166"context="XDDF">Expose invert if negative on bar charts</action>
<actiontype="fix"fixes-bug="63998"context="HSSF">Support commas, exclamation marks correctly in AreaReference</action>
<actiontype="fix"fixes-bug="64045"context="XSSF">XSSFWorkbook constructor doesn't close ZipFile if an exception occurs</action>
<actiontype="fix"fixes-bug="64130"context="HSSF">Regression in OldSheetRecord</action>
</actions>
</release>
<releaseversion="4.1.1"date="2019-10-20">
<summary>
<summary-item>XSSF: Memory improvements which use much less memory while writing large xlsx files</summary-item>
<summary-item>XDDF: Improved chart support: more types and some API changes around angles and width units</summary-item>
<summary-item>CVE-2019-12415 - XML External Entity (XXE) Processing in Apache POI</summary-item>
</summary>
<actions>
<actiontype="add"fixes-bug="63774"context="POI_Overall">Cache pids to speed up custom properties "add" method</action>
<actiontype="add"fixes-bug="63779"context="SS_Common">Add support for the new Java date/time API added in Java 8</action>
<actiontype="fix"fixes-bug="59322"context="HWPF">Avoid NullPointerException when reading Word Document with tables and a cell with a null descriptor</action>
<actiontype="fix"fixes-bug="61490"context="HWPF">Read cells of tables correctly in cases where the last cell is not 'fake'</action>
<actiontype="fix"context="HWPF">Do not use WeakReference for parents in Ranges to avoid spurious failures in tests</action>
<actiontype="fix"fixes-bug="63657"context="XSSF">Fix regression with memory usage in XSSFRow.onDocumentWrite and some other temporary memory leaks</action>
<actiontype="fix"fixes-bug="63842"context="SS_Common">FractionFormat casts whole part of the value into 'int'</action>
<actiontype="fix"fixes-bug="63818"context="HSLF">Allow multiple charsets for same font typeface</action>
<actiontype="fix"fixes-bug="63768"context="XSSF">XSSFExportToXml adjust settings on SchemaFactory</action>
<actiontype="fix"fixes-bug="63541"context="XSLF">NullPointerException from XSLFSimpleShape.getAnchor for empty xfrm tags</action>
<actiontype="add"fixes-bug="63745"context="POI_Overall">Add traversing and debugging interface</action>
<actiontype="fix"fixes-bug="57423,62711"context="XSSF">Fix regression when XSSFRow.shiftRows() is used</action>
<actiontype="fix"fixes-bug="63240"context="XSSF">Remove unnecessary synchronization on DocumentHelper.newDocumentBuilder and SAXHelper.newXMLReader</action>
<actiontype="fix"fixes-bug="61652"context="SS_Common">Fix NPE in EDATE function when date evaluates to an invalid value</action>
<actiontype="fix"fixes-bug="63264"context="SS_Common">Conditional Format rule evaluation calculates relative references incorrectly</action>
<actiontype="add"fixes-bug="60724"context="SS_Common">Implement 'ignore hidden rows' variations for existing SUBTOTAL function variants</action>
<actiontype="fix"fixes-bug="63268"context="SS_Common">Fix issue with CellUtil.setFont adding unnecessary styles</action>
<actiontype="fix"fixes-bug="63292"context="SS_Common">DataFormatter.formatCellValue() ignores use1904Windowing w/4-part date formats</action>
</actions>
</release>
<releaseversion="4.0.1"date="2018-12-03">
<summary>
<summary-item>Fixes pom.xml entries for commons-maths3 (missing), curvesapi and commons-codec</summary-item>
<summary-item>Improvements for XDDF charts and text manipulation</summary-item>
<summary-item>Upgrade to XMLBeans 3.0.2</summary-item>
</summary>
<actions>
<actiontype="fix"fixes-bug="59773"context="POI_Overall">Move loop invariants outside of loop for faster execution</action>
<actiontype="fix"fixes-bug="59834"context="POI_Overall">poi-ooxml pom.xml should include dependency on poi-scratchpad</action>
<actiontype="fix"fixes-bug="62690"context="POI_Overall">Missing Maven dependency to commons-math3</action>
<actiontype="fix"fixes-bug="62692"context="OPC">WildFly XML parser not properly supported - Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized</action>
<actiontype="fix"fixes-bug="62699"context="POI_Overall">Download page must link to https://downloads.apache.org/poi/KEYS</action>
<actiontype="fix"fixes-bug="62733"context="XSLF">XSLFBackground setFill() can corrupt the document</action>
<actiontype="fix"fixes-bug="62735"context="XSSF">poi-ooxml 4.0.0 should have dependency on curvesapi 1.05</action>
<actiontype="fix"fixes-bug="62859"context="XWPF">Rare NPE while creating XWPFSDTContent</action>
<actiontype="add"fixes-bug="62373"context="SS_Common">Support for FREQUENCY function</action>
<actiontype="fix"fixes-bug="62831"context="POI_Overall">WorkbookFactory.create support for subclass of File, eg from JFileChooser</action>
<actiontype="fix"fixes-bug="62815"context="XSSF">XLSB number extraction improvements</action>
<actiontype="fix"fixes-bug="62373"context="SS_Common">Support FREQUENCY function</action>
<actiontype="fix"fixes-bug="62742"context="POI_Overall">Add common-compress jar to bin zip/tgz</action>
<actiontype="fix"fixes-bug="62747"context="POI_Overall">Upgrade bouncycastle dependency to 1.60</action>
<actiontype="fix"fixes-bug="62736"context="XWPF">Relations on XSLFPictureShape were removed unconditionally</action>
<actiontype="add"fixes-bug="github-109"context="XDDF">Define XDDF user model for text body, its paragraphs and text runs</action>
<actiontype="add"fixes-bug="github-123"context="XSSF">Import chart on drawing</action>
<actiontype="fix"fixes-bug="62746"context="XDDF">Support axIds in XDDF</action>
<actiontype="fix"fixes-bug="60509"context="XSSF">XSSFWorkbook.setSheetName() does not update references in charts</action>
<actiontype="fix"fixes-bug="59625"context="XWPF">Localisation (Internationalisation in other languages) when applied in charts corrupt the MS Word file</action>
</actions>
</release>
<releaseversion="4.0.0"date="2018-09-07">
<summary>
<summary-item>Removed support for Java 6 and 7 making Java 8 the minimum version supported</summary-item>
<summary-item>New OOXML schema (1.4) necessary, because of incompatible XMLBeans loading not anymore through POIXMLTypeLoader</summary-item>
<actiontype="fix"fixes-bug="61589"context="XSLF">Importing content does not copy hyperlink address</action>
<actiontype="fix"fixes-bug="62587"context="XSLF">repeated call to XSLFSheet.removeShape leads to java.lang.IllegalArgumentException: partName</action>
<actiontype="fix"fixes-bug="62513"context="OOXML">Don't try to parse embedded package relationships</action>
<actiontype="add"fixes-bug="59268"context="OOXML">Work on providing an updated version of XMLBeans</action>
<actiontype="fix"fixes-bug="62451"context="HPSF">Document last printed in the year 27321</action>
<actiontype="fix"fixes-bug="60713"breaks-compatibility="true"context="SXSSF XSSF OPC">(S)XSSFWorkbook/POIXMLDocument.write(OutputStream) closes the OutputStream</action>
<actiontype="add"fixes-bug="62452"context="OPC">Extract configuration while verifying XML signatures</action>
<actiontype="fix"fixes-bug="62187"breaks-compatibility="true"context="OPC">Compiling with Java 10 fails with ClassCastException / use commons-compress</action>
<actiontype="fix"fixes-bug="62355"breaks-compatibility="true"context="POI_Overall">Unsplit packages for Jigsaw / Java 9 compatibility</action>
<actiontype="fix"fixes-bug="62041"context="SL_Common">TestFonts fails on Mac</action>
<actiontype="fix"fixes-bug="62051"context="XSLF">Two shapes have the same shapeId within the same slide</action>
<actiontype="add"fixes-bug="55954"context="XWPF">Add functions to get, set, remove outer borders for tables</action>
<actiontype="add"fixes-bug="github-72"context="XDDF">Define XDDF user model for shape properties to be shared between XSLF, XSSF and XWPF</action>
<actiontype="add"fixes-bug="61543"breaks-compatibility="true"context="XSSF">Do not fail with "part already exists" when tables are created/removed</action>
<actiontype="add"fixes-bug="61550"breaks-compatibility="true"context="POI_Overall">Add more information to exception text and verify that it is thrown</action>
<actiontype="add"fixes-bug="61609"breaks-compatibility="true"context="POI_Overall">Add .gitattribute file and set lf for one sample-file</action>
<actiontype="add"fixes-bug="61797"breaks-compatibility="true"context="SL_Common">Embed Excel / Ole objects into powerpoint</action>
<actiontype="fix"fixes-bug="61943"context="SL_Common">narrow generics definition because of tighter java9 checks</action>
<actiontype="add"fixes-bug="61942"context="OPC">Refactor PackagePartName handling and add getUnusedPartIndex method</action>
<actiontype="fix"fixes-bug="61941"context="POIFS">Move Ole marker generation to Ole10Native</action>
<actiontype="fix"fixes-bug="61940"context="POI_Overall">Replace ClassID statics with enum</action>
<actiontype="add"fixes-bug="61939"context="OPC">Provide schema for AlternateContent - provide new ooxml-schemas-1.4.jar</action>
<actiontype="fix"fixes-bug="61787"context="HSSF">Change how deleted content is detected to not incorrectly see too much text as deleted, this was introduced with bug 58067</action>
<actiontype="fix"fixes-bug="61798"context="HSSF">Fix usage of getLastCellNum() when calculating worksheet dimension during saving</action>
<actiontype="fix"fixes-bug="61911"context="HWPF">Avoid IndexOutOfBounds access when reading pictures</action>
<actiontype="fix"fixes-bug="61765"context="HSSF">Support third party tool generated files using WorkBook as their POIFS directory name</action>
<actiontype="fix"fixes-bug="61881"context="HSLF">Regression in ppt parsing: typeface can't be null or empty</action>
<actiontype="add"fixes-bug="github-68"context="XDDF XSLF XSSF XWPF">Share chart data implementation between XSLFChart, XSSFChart and XWPFChart through XDDF</action>
<actiontype="fix"fixes-bug="61809"context="HPSF">Infinite loop in SectionIDMap.get() and .put()</action>
<actiontype="add"fixes-bug="61730"context="SS_Common">CellRangeAddresses support iterating over their CellAddresses</action>
<actiontype="fix"fixes-bug="61727"context="SS_Common">CellRangeUtil merge cell ranges broken for certain orders of arguments</action>
<actiontype="fix"fixes-bug="57517"context="HSSF">Fix various situations that were handled incorrectly in HSSFOptimiser</action>
<actiontype="add"fixes-bug="61671"context="XSLF">XSLFSlide does not contain isHidden and setHidden like HSLFSlide does</action>
<actiontype="update"fixes-bug="61630"context="XSSF">Performance improvement to XSSFExportToXML</action>
<actiontype="add"fixes-bug="58068"context="XSSF">Add a method to pass the actual Color to StylesTable.findFont()</action>
<actiontype="fix"fixes-bug="61096"context="POIFS">Add support for modules in VBAMacroReader</action>
<actiontype="fix"fixes-bug="61033"context="XSSF">Add XSSFWorkbook.setCellFormulaValidation() to control if formulas are validated during Cell.setCellFormula()</action>
<actiontype="fix"fixes-bug="61148"context="SXSSF">Fix calculating/setting formula value</action>
<actiontype="fix"fixes-bug="61064"context="SS_Common">Support behavior of function CEILING in newer versions of Microsoft Excel</action>
<actiontype="fix"fixes-bug="61516"context="SS_Common">Correctly handle references that end up outside the workbook when cells with formulas are copied</action>
<actiontype="add"fixes-bug="60737"context="XSSF">Add endSheet() to XSSFEventBasedExcelExtractor</action>
<actiontype="fix"fixes-bug="59747"context="OPC">Exchange order of writing parts into Zip to allow some tools to handle files better</action>
<actiontype="fix"fixes-bug="61906"context="XSSF">add API for working with RichStringText</action>
<actiontype="fix"fixes-bug="61792"context="SS_Common">Avoid iterating over chars (use codepoints instead)</action>
<actiontype="fix"fixes-bug="62254"context="SS_Common">Update OFFSET function to support optional values</action>
<actiontype="update"fixes-bug="62435"context="XSSF">Rename getAllEmbedds method to getAllEmbeddedParts (getAllEmbedds is retained but deprecated)</action>
<actiontype="update"fixes-bug="62438"breaks-compatibility="true"context="POI_Overall">Replace org.apache.poi.openxml4j.util.Nullable with java.lang.Optional</action>
<actiontype="fix"fixes-bug="github-90"context="XSSF">Change default DSIG signing algorithm to SHA256</action>
<actiontype="fix"fixes-bug="github-107"context="SS_Common">Support AREAS function</action>
<actiontype="fix"fixes-bug="github-110"breaks-compatibility="true"context="XWPF">Renames org.apache.poi.xwpf.usermodel.TextSegement to org.apache.poi.xwpf.usermodel.TextSegment</action>
<actiontype="fix"fixes-bug="github-114"context="XWPF">Better support for Footnotes and Endnotes</action>