Previous releases

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

Upgrade batik dependency to 1.19 Upgrade bouncycastle dependency to 1.80 Upgrade commons-collections4 dependency to 4.5.0 Upgrade commons-io dependency to 2.19.0 Upgrade pdfbox dependency to 3.0.5 Upgrade xmlsec dependency to 3.0.6 Upgrade JaCoCo code-coverage tooling to 0.8.13 Combination of XSSF and SXSSF may result in invalid files SXSSF: check for null _fd instance in dispose call Handle slightly broken WriteAccessRecord gracefully Fix issue where Slide addTitle corrupts the ppt file Decrease count when we remove merged regions Issue in setBulletStyle in XSLFTextParagraph Add support for SHEET function Note: JDK 24 will change behavior of locale providers, some formatting might be different when upgrading Upgrade commons-codec dependency to 1.18.0 Upgrade bouncycastle dependency to 1.80 Upgrade pdfbox dependency to 3.0.4 Upgrade graphics2d dependency to 3.0.3 ZipPackage save should check that intermediate steps succeed Allow some OPC compliance checks to be tuned Add getNumberOfTexts() method Allow to use SXSSFSheet.setArbitraryExtraWidth() to define an adjustment-factor when auto-sizing columns Fix reading/writing of documents with many columns Handle decimal format '0#' the same way as Excel Multiple fixes found by fuzzing Apache POI via oss-fuzz Add getNumberOfTexts method to XWPFRun Continue processing properties after multivalued properties Streamed reading: Log failures to format formulas and numbers instead of stopping processing Fix arbitrary extra width support Handle extra issue where FontSystem is missing Cell copy support does not handle Time only values properly Issue with date/time formats that leave a space before the AM/PM part Allow custom TempFileCreationStrategy per thread Add support for SOURCE_DATE_EPOCH to allow to create reproducible binary files without creation/modification-timestamp being set Breaking change: Some invalid content in the compressed file-formats for xlsx/docx/pptx/... now fail parsing to prevent handling malicious input incorrectly Upgrade ant dependency to 1.10.15 Upgrade batik dependency to 1.18 Upgrade commons-codec dependency to 1.17.1 Upgrade commons-compress dependency to 1.27.1 Upgrade commons-io dependency to 2.18.0 Upgrade log4j-api dependency to 2.24.3 and add log4j-bom dependency Upgrade pdfbox dependency to 3.0.3 Upgrade xmlbeans dependency to 5.3.0 Upgrade xmlsec dependency to 3.0.5 Upgrade JaCoCo code-coverage tooling to 0.8.12 Adjust HSSFWorkbook.getSheet() to return the first case-insensitive match, similar to XSSF Fix searching text in paragraphs when text is spread across multiple runs Support setting an arbitrary extra width value for column widths - not working - fixed in 69536 (5.4.1) XWPFRun.getText should support delInstrText and noBreakHyphen Support removing XWPF Styles Add word10.xsd to poi-ooxml-full Fix issue with param order in MIRR function evaluation Number of blocks used by the property table missing from the file header Shifting columns with merged regions generates an error about overlapping regions default ignoreMissingFontSystem to true DefaultTempFileCreationStrategy should worry about OS deleting the temp dir add XSSFReader.getSheetIterator Issue when evaluating WORKDAY function that has a cell ref as 2nd param Throw exception if xlsx/docx/pptx contains duplicate file names Upgrade log4j-api dependency to 2.23.1 Upgrade commons-codec dependency to 1.17.0 Upgrade commons-compress dependency to 1.26.2 Upgrade commons-io dependency to 2.16.1 Upgrade pdfbox dependency to 3.0.2 and graphics2d dependency to 3.0.2 Upgrade xmlsec dependency to 3.0.4 Upgrade bouncycastle dependency to 1.79 Upgrade xmlbeans dependency to 5.2.1 Add support for hyperlink based relationships which are stored separately from other relationships Some boolean attribute values are written as true instead of 1 IllegalArgumentException: Unexpected color choice CTFontCollectionImpl when reading font color for a table cell Fix issue in SXSSF when there are missing fonts SXSSFWorkbook now removes temp files when closed - removing need for a separate dispose call Support allowStoredEntriesWithDataDescriptor=true when reading zip data Fix regression in date handling when evaluating TEXT function Rework exception handling for missing fonts to make it more robust handle elliptical arcs that have colinear points Support for polylines Support SVGs in XWPF 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 Better support for edge cases in TEXT function Fix issue where chart axes were defaulting to have blank number formats - which recent versions of Excel treat as corrupted. Add Complex scripts support in XWPFRun 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. XSSFExcelExtractor does not format formula results like the streaming based extractor Improve cell width logic to avoid rounding issues DrawTextFragment height should include leading space 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) Fix invalid loop-condition when cleaning up CTCells make stream/directory name lookup in OLE2 case insensitive Provide a utility to clear all thread-locals to avoid reports of memory-leaks in web-application containers Fix handling padding when decrypting data Include alpha/transparency value when creating an XSSFColor from an AWT Color object Include alpha/transparency value when setting a color-value for a font Fix graceful handling of missing font-system on the operating system Incomplete Shared String Tables were causing read failures NullPointerException in XSSFReader$SheetIterator.next() Multiple gradient stops at the exact same location causing a rendering failure Add a method to properly write the header necessary for a MSG attachment Make XSLFDiagramGroupShape public Inserting paragraph into table from cursor Add theme support to XWPF Fix issue where cells with formulas and cached results of string type do not properly support shared strings Text run highlight colors were ignored Fix parsing formulas with sheet-names which contain single quotes Fix performance issue with XSSFSheet.groupRow Improve boolean functions empty cell handling Fix performance issue with SXSSFCell.getColumnIndex() SignatureConfig: remove ThreadLocals and deprecated code associated with them Remove support for zip/tgz release artifacts Improve performance of SheetDataWriter outputEscapedString Ensure ZipPackage closes input stream when exceptions happen Issue where OFFSET function applies limits that should only apply to xls format spreadsheets Make jar build reproducible Fix issue with adding table formulas XWPFTableCell: make setText fully replace the text and add appendText method to append Basic for reading audio files in pptx files Set standalone="yes" in XML declarations when writing OOXML format files 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 setDefaultColumnStyle() in XSSFSheet/SXSSFSheet was not working as expected add PageMargin enum Support version property in CoreProperties Support DAYS function Support capitalized text in XWPFWordExtractor Support capitalized text in WordExtractor SXSSF doesn't update dimension field When slides were copied, the text shapes were still referencing original slide Use revert() instead of close() when OPCPackage is opened read-only Row shifting does not properly handle hyperlinks that span multiple cells RATE function fails in some cases change XSSFHyperlink code that copies HSSFWorkbook to respect cell ranges Fix issue with parsing formulas that have sheet names containing certain chars Fix rounding issue in MROUND function Fix bug where XWPFNumbering.removeAbstractNum removes by list index, not abstractNumId DataFormatter issue with rounding in some use cases Support AVERAGEIF function XSSFColor could not be used the same time as org.apache.poi.ss.util classes Support CEILING.MATH and FLOOR.MATH functions support case insensitive matching in D* functions add support for DCOUNT, DCOUNTA, DAVERAGE, DSTDEV, DSTDEVP, DVAR, DVARP and DPRODUCT functions Add STDEVP, STDEVA, STDEVPA, VARA and VARPA functions add support for unimplemented subfunctions to SUBTOTAL function add support for STDEV.S, STDEV.P, VAR.S and VAR.P functions add support for POISSON.DIST function Support CEILING.PRECISE and FLOOR.PRECISE functions D* functions should support wildcard matches Support excel correl, covar, pearson and forecast functions Some Password protected XLS files are not read Support the gte attribute with XSSFConditionalFormattingThreshold generate poi-ooxml-full classes for dml-drawing xsd generate poi-ooxml-full classes for threaded comment and word12 xsds 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) HSSFExtendedColor was not setting RGB colors properly Integrate SmartArt diagrams from powerpoint presentations POI's implementation of VALUE function did not properly handle empty string input Calling getTextHighlightColor() or getEmphasisMark() on XWPFRun can lead to corruption of file XSSFTable.updateHeaders did not work for Worksheets created using current Excel versions XSSFSheet.removeTable did not remove the links to the table part reference from the sheet XSSFWorkbook.cloneSheet does not clone XSSFTables linked from the sheet Shifting rows or columns can damage formulas in tables XSSFPivotTable.getPivotCacheDefinition() does not work properly when XSSFPivotTable was read from an existing *.xlsx file SXSSFWorkbook should work even when fonts not installed on OS Issue with orphaned (in package) images and notes post slide removal Upgrade log4j-api dependency to 2.17.2 and graphics2d dependency to 0.35 as well as some test dependencies Fix issue where Boolean functions (AND, OR) do not work properly in array context add removeTextParagraph to text box API add removeTextRun to paragraph API Fix stackoverflow issue when removing formulas with circular references Support rich text strings in SXSSFWorkbook (only when shared string table is used) POIXMLPropertiesTextExtractor returns duplicate key for Core properties POI 5.2.1 can allocate byte arrays that are too big Upgrade curvesapi dependency to 1.07 IOUtils.toByteArray did not fully take into account value set by IOUtils.setByteArrayMaxOverride Collapsing a column group was incorrectly implemented DOLLAR function is not properly implemented Multiplication in cell formulas can have small rounding issues Picture resize can lead to infinite loop Add support for NUMBERVALUE function Add support for Normal Distribution functions Add support for BESSELJ function Add support for DOLLARDE and DOLLARFR functions Add support for WORKDAY.INTL functions Fix issue where malformed TNEF file can cause memory issues XAdES-XL modifications due to specification check errors 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 upgrade to xmlsec 2.3.0 - make secure validation configurable Digital Signature - set commitment type and purpose Issue in XSSFReader where string builder is not always cleared between cell reads handle date/time fields and formats Cell Conditional Formatting: Change regex to account for decimals with no leading digit Log warning when long sheet names are trimmed Add support for XLOOKUP and XMATCH functions Customize Spliterator implementations for better parallelism DataFormatter incorrectly formats data formats with escaped percent character XSSFSheet.createTable generates corrupted file when a header's cell contains a line break Password Protecting a document when Saxon is on classpath can corrupt the output DataFormatter: add setUse4DigitYearsInAllDateFormats(boolean) method with default of false DataFormatter: add setUseCachedValuesForFormulaCells(boolean) method with default of false Fix issue in XSSFSheet getDrawingPatriarch Fix issue with excessive logging of invalid parts in OOXML files Cell copy does not respect rich text stop using file deleteOnExit in DefaultTempFileCreationStrategy 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). XSLFTable - revert addRow to behaviour before 4.1.2 Don't throw exception on empty data source Set hole size for doughnut chart XSSFDrawing - import chart from other drawing XSSFWorkbook - reference cloned sheet in cloned chart data XSSFWorkbook - clone sheet with chart XSLFSlide - import slide notes when importing slide content Manipulate individual data point properties Allow change of EncryptionMode Migrate ant / maven to gradle build the method getCap() does not work correctly in xslf.usermodel.XSLFTextRun Document signed by POI reported as 'partially' signed LineRect shall throw more specific exceptions Incorrect sizes of images in SVG Add commons-io as a dependency Handle issue where OOXML file has metadata and metadata.xml Support IFS and SWITCH functions Support TEXTJOIN function TRIM function should trim extra spaces between words Fix issue with removing parent formula when shared formulas are used Support IFNA function Add support for T literal in DateTime formats SUMIF and SUMIFS functions do not properly handle #N/A values add support for MAXIFS, MINIFS, AVERAGEIFS functions Use viewbox when rendering SVG images add optional support in ZipArchiveFakeEntry to use a temp file Strip color formatting in headers and footers Fix issues with WEEKNUM function evaluation XSLF CustomGeometry - replace XmlStreamReader access with XmlBeans delegate Support PERCENTRANK and related functions Support TDIST and related functions Better support for shared hyperlinks Add support to ZipPackage to allow temp files to be used to save memory (useful for writing xlsx/pptx/docx files with pictures, etc.). Allow ZipSecureFile.setMaxEntrySize to accept sizes above 4Gb Fix issue in XWPFTable.setTableAlignment(TableRowAlign tra) Create XAdES-T signature with XAdESXLSignatureFacet QUOTIENT function does not support cell references Allow creation of POIFSFileSystem instances from FileChannels but with an optional flag to prevent POI from closing the channel WorkbookFactory.create(File, ...) should throw exception if the input file is not in a supported format Incorrect fetching paragraph and text runs props from master shape SlideShowFactory.create(File, ...) should throw exception if the input file is not in a supported format Remove finalizer on SXSSF SheetDataWriter Use image/x-pict as mime type for pict format pictures (previous versions used a mix of image/pict and image/x-pict) HSLF FillType for texture and background color fills ignored 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)
Ensure "applyAlignment" in cell-styles is enabled when necessary Allow to parse a file where the relationship-id is an empty string Do not use CTDataValidations.getCount(), instead only rely on getDataValidationArray Support missing or blank match_type for function Match Do not populate cells with a paragraph when loading an existing document Use correct index for 1-based pictures Fix invalid moving of merged regions Use proper position for the WriteAccessRecord Make LOOKUP functions deal with empty last arg correctly Improve performance of reading OLE2 files Handle MissingArgEval in relational operators Avoid NullPointerException in XSSFReader.SheetIterator.next() if files contain macros Avoid NullPointerException if RangeCopier encounters empty/missing rows Add some more methods to allow to use CellType everywhere Fix regression introduced via Bug 60845: There are more items in CTBorder that need to be handled in equals() Adjust handling of formula-cells to fix regression with missing re-calculation introduced in 4.1.0 Include content control text in word extraction also if it is part of a paragraph Take the replacement of RichText strings into account when computing length of strings SS method to check if a Named Range is hidden or not SS method to check if a Named Range is hidden or not HSMF enhancements - NamedIdChunk, MultiValueChunks, ByteChunkDeferred Fix incorrect handling of format which should not produce any digit for zero Speed up auto-sizing of columns when the sheet contains merged regions Decrease usage of ThreadLocals in XML Signature API Picture.resize(double scale) scales width wrong for small pictures and when dx1 is set upgrading xmlsec causes junit tests to fail XSLF - Wrong scheme colors used when rendering Method setText in XWPFTableCell updates the xml and also updates the runs and iruns XWPFTableCell does not process bodyElements when handle paragraph XWPFNumbering.addAbstractNum will definitely throw an exception Allow try-with-resources with OPCPackage.revert() Add traversing and debugging interface to HSSF Sonar fix - "Iterator.next()" methods should throw "NoSuchElementException" RuntimeException on extracting text from Word 97-2004 Document CountryRecord not found Big POIFS stream result in OOM Provide JigSaw modules Synchronize code that initialises WorkbookFactory Support DateValue function Add an option for RangeCopier.copyRange() also clone styles Retrieve default run properties from paragraph Ole10Native aka embedded / object packager - handle UTF16 variants XWPFSDTContent.getText() is empty for nested SDT elements Missing quoting of pre-evaluated string values in formula cells causes corrupt files POI HwmfGraphics cannot read the embedded document title WMF font typeface charset encoding error Visual signatures for .xlsx/.docx Fix issue in testXLSXinPPT Change TRUNC implementation to use MathX Provide PDF rendering with PPTX2PNG Converting cell values to boolean should throw IllegalStateException instead of RuntimeException when conversion is not possible XSSFFont setCharset(FontCharset) should use latest class instead of deprecated one Improve performance of cell merge Improve performance of SXSSF cell evaluation Change some methods to return ints instead of shorts (Font and CellStyle) Upgrade OOXML schema to 3rd edition (transitional) Change artifact names of poi-/ooxml-schemas Upgrade OOXML schema to 5th edition (transitional) Unable to convert pptx to pdf Migrate tests to Junit 5 Use SLF4J instead of commons-logging - use jcl-over-slf4j Handle VmlDrawings containing spreadsheet-ml default namespace WMF parsing failed on closed empty polygon Remove jdk.charset module dependency for spreadsheets generation Delete unused certificate exceptions Fix RuntimeException on array formula referencing blank cell Move date parsing logic to DateParser Add length validation for Excel DataValidations that are list literals New EmittingSXSSFWorkbook Remove limit on number of rules in XSSFSheetConditionalFormatting Avoid NullPointerException if RangeCopier encounters empty/missing rows
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 Swap zaxxer.com:SparseBitSet for java.util.BitSet When removing AbstractNum match by abstractNumId, not list index Avoid endless loop/out of memory on string-replace with empty search string Make D* functions work with numeric result column Write pre-evaluated string-values in formula cells with the correct type Function AND / OR should treat missing parameters as FALSE Make getFirstRowNum() and getFirstCellNum() return -1 consistently with empty data Make IOUtils.setByteArrayMaxOverride() work correctly Add, insert and remove columns on XSLFTable Fix issue with fractions where the whole number part is too large to store as an int Produce valid PPTX file with several chart series Fix texture fill - scale stretched images correctly Add Doughnut chart data series support HMEFContentsExtractor fails to extract content from winmail.dat Inconsistent mapping of Norwegian locales for date formats Add set level numbering on XWPFParagraph Fix Bug in XSSFTable.setCellReferences when table is single cell Replace Cloneable / clone() with copy constructor Replace reflection calls in factories for Java 9+ Fix issue with setCellValue(LocalDate) not supporting nulls properly SlideShow rendering fixes XWPFRun: Whitespace in text not preserved if starting with tab character. unsafe pipe character ("|") in Relationship target attribute is not being encoded into a '%7C'. Expose invert if negative on bar charts Support commas, exclamation marks correctly in AreaReference XSSFWorkbook constructor doesn't close ZipFile if an exception occurs Regression in OldSheetRecord 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 Cache pids to speed up custom properties "add" method Add support for the new Java date/time API added in Java 8 Avoid NullPointerException when reading Word Document with tables and a cell with a null descriptor Read cells of tables correctly in cases where the last cell is not 'fake' Do not use WeakReference for parents in Ranges to avoid spurious failures in tests Fix regression with memory usage in XSSFRow.onDocumentWrite and some other temporary memory leaks FractionFormat casts whole part of the value into 'int' Allow multiple charsets for same font typeface XSSFExportToXml adjust settings on SchemaFactory NullPointerException from XSLFSimpleShape.getAnchor for empty xfrm tags Add traversing and debugging interface Fix regression when XSSFRow.shiftRows() is used Fix texture paint handling HSLF rendering - adjust values for presetShapeDefinition differs in HSLF/XSLF Don't fallback to master shape properties, if master shape is not assigned Add a ThreadLocalUtil.clearAllThreadLocals which can be used to clear thread-locals XSSFSheet.addMergedRegion should adjust count of merged cells Return value of XSSFSheet.addMergedRegion is off by one Error opening XLSX after saving with a Drawing using POI Support to create new chart without reading template MAPIType.isFixedLength: not true in case of length > 8 Support for seven new chart types improve MAPIMessage.getHtmlBody Add XWPFPicture getWidth and getDepth methods Add XWPFRun getStyle method Add XWPFParagraph setKeepNext method Add XWPFParagraph createHyperlinkRun method Improved support for writing large files Add setters to POIXMLProperties Enable safe removal of data series from charts Provide example of threshold line in bar chart 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 Avoid a possible NullPointerException in XSLFShape.selectPaint() Implement 'ignore hidden rows' variations for existing implemented variants Conditional Format rule evaluation calculates relative references incorrectly Fix NPE in EDATE function when date evaluates to an invalid value Work around illegal reflective access in Java 9+ when freeing buffers OPCPackage Potentially clobbers files on close() Make D* functions ignore case in headings Adding custom properties creates invalid .xlsx file on second write Null pointer exception in ExternSheetNameResolver.prependSheetName method Fix copying styles/conditional formatting Improved evaluation of array formulas with errors in arguments Make POILogger subclassable Support array arguments in IF and logical IS*** functions Provide font embedding for slideshows Fix setting values/types during formula evaluation for SXSSF Allow to handle files with invalid content types for pictures Fix MathX.floor for negative n Sheetnum is not checked in InternalWorkbook.setSheetHidden() Regression extracting text from corrupted docx files Remove rows from a XSLFTable EMF image support in slideshows SVG image support in XSLF Support GEOMEAN function Multiple digital signature in excel file broke first signature IBM JDK JIT causes AIOOBE in TexturePaintContext IBM JCE workarounds init presetShapeDefinitions.xml fail under IBM jdk Rendering of FreeformShapes with formula fails Remove support for reading files that have XML entity definitions add XWPFRun setLang method Remove unnecessary synchronization on DocumentHelper.newDocumentBuilder and SAXHelper.newXMLReader Fix NPE in EDATE function when date evaluates to an invalid value Conditional Format rule evaluation calculates relative references incorrectly Implement 'ignore hidden rows' variations for existing SUBTOTAL function variants Fix issue with CellUtil.setFont adding unnecessary styles getForceFormulaRecalculation() returns wrong value DataFormatter.formatCellValue() ignores use1904Windowing w/4-part date formats 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 Move loop invariants outside of loop for faster execution poi-ooxml pom.xml should include dependency on poi-scratchpad Missing Maven dependency to commons-math3 WildFly XML parser not properly supported - Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized Download page must link to https://downloads.apache.org/poi/KEYS XSLFBackground setFill() can corrupt the document poi-ooxml 4.0.0 should have dependency on curvesapi 1.05 XSSFTable constructor automatically assigns invalid (non-unique) column IDs OPCPackage#close() method is incorrectly synchronized Remove XML Event parser code from PackagePropertiesMarshaller Fix null pointer exception if a picture shape has no blip id Fix Old-Xerces build issues XSLFTableCell#removeBorder(BorderEdge.right) removes the bottom edge not the right edge. POI Encryption didn't work with 4.0.0 but did work with 3.17 FileMagic not correctly identified SlideShow rendering - keyframe fractions must be increasing Provide OOXMLLite alternative for Java 12+ Handle off-spec, variant REFERENCE_NAME record structure in VBAMacroReader Handle module name mapping in VBAMacroReader Support TREND function Rare NPE while creating XWPFSDTContent Support for FREQUENCY function WorkbookFactory.create support for subclass of File, eg from JFileChooser XLSB number extraction improvements Support FREQUENCY function Add common-compress jar to bin zip/tgz Upgrade bouncycastle dependency to 1.60 Relations on XSLFPictureShape were removed unconditionally Define XDDF user model for text body, its paragraphs and text runs Import chart on drawing Support axIds in XDDF XSSFWorkbook.setSheetName() does not update references in charts Localisation (Internationalisation in other languages) when applied in charts corrupt the MS Word file 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 Remove OPOIFS* Importing content does not copy hyperlink address repeated call to XSLFSheet.removeShape leads to java.lang.IllegalArgumentException: partName Don't try to parse embedded package relationships Work on providing an updated version of XMLBeans Document last printed in the year 27321 (S)XSSFWorkbook/POIXMLDocument.write(OutputStream) closes the OutputStream Extract configuration while verifying XML signatures Compiling with Java 10 fails with ClassCastException / use commons-compress Unsplit packages for Jigsaw / Java 9 compatibility TestFonts fails on Mac Two shapes have the same shapeId within the same slide Zero width shapes aren't rendered SlideNames should not be null but have a default as if accessed by VBA Fix rendering of AutoShapes Forbid calls to InputStream.available HSSFWorkbook.setActiveCell() does not actually make the cell selected in Excel HSLFShape.getShapeName() returns name of shapeType and not the shape name Decommission XSLF-/PowerPointExtractor Text not extracted from grouped text shapes in HSLF Support XML signature over windows certificate store Add support for major and minor units on chart axes Added methods to position table Remove deprecated classes (POI 4.0.0) Add functions to get, set, remove outer borders for tables Define XDDF user model for shape properties to be shared between XSLF, XSSF and XWPF Do not fail with "part already exists" when tables are created/removed Add more information to exception text and verify that it is thrown Add .gitattribute file and set lf for one sample-file Embed Excel / Ole objects into powerpoint narrow generics definition because of tighter java9 checks Refactor PackagePartName handling and add getUnusedPartIndex method Move Ole marker generation to Ole10Native Replace ClassID statics with enum Provide schema for AlternateContent - provide new ooxml-schemas-1.4.jar Change how deleted content is detected to not incorrectly see too much text as deleted, this was introduced with bug 58067 Fix usage of getLastCellNum() when calculating worksheet dimension during saving Avoid IndexOutOfBounds access when reading pictures Support third party tool generated files using WorkBook as their POIFS directory name Regression in ppt parsing: typeface can't be null or empty Share chart data implementation between XSLFChart, XSSFChart and XWPFChart through XDDF Infinite loop in SectionIDMap.get() and .put() Surface XSSF Header/Footer Attributes CellRangeAddresses support iterating over their CellAddresses CellRangeUtil merge cell ranges broken for certain orders of arguments Fix various situations that were handled incorrectly in HSSFOptimiser XSLFSlide does not contain isHidden and setHidden like HSLFSlide does Performance improvement to XSSFExportToXML Add a method to pass the actual Color to StylesTable.findFont() Add support for modules in VBAMacroReader Add XSSFWorkbook.setCellFormulaValidation() to control if formulas are validated during Cell.setCellFormula() Fix calculating/setting formula value Support behavior of function CEILING in newer versions of Microsoft Excel Correctly handle references that end up outside the workbook when cells with formulas are copied Add endSheet() to XSSFEventBasedExcelExtractor Exchange order of writing parts into Zip to allow some tools to handle files better Support matrix functions Deleting a picture that is used twice on a slide corrupt the slide Back-off to brute-force search for macro content if macro offset is incorrect Pivot table enhancements add API for working with RichStringText Avoid iterating over chars (use codepoints instead) Update OFFSET function to support optional values Rename getAllEmbedds method to getAllEmbeddedParts (getAllEmbedds is retained but deprecated) Replace org.apache.poi.openxml4j.util.Nullable with java.lang.Optional Change default DSIG signing algorithm to SHA256 Support AREAS function Renames org.apache.poi.xwpf.usermodel.TextSegement to org.apache.poi.xwpf.usermodel.TextSegment Better support for Footnotes and Endnotes