Upgrade batik dependency to 1.19Upgrade bouncycastle dependency to 1.80Upgrade commons-collections4 dependency to 4.5.0Upgrade commons-io dependency to 2.19.0Upgrade pdfbox dependency to 3.0.5Upgrade xmlsec dependency to 3.0.6Upgrade JaCoCo code-coverage tooling to 0.8.13Combination of XSSF and SXSSF may result in invalid filesSXSSF: check for null _fd instance in dispose callHandle slightly broken WriteAccessRecord gracefullyFix issue where Slide addTitle corrupts the ppt fileDecrease count when we remove merged regionsIssue in setBulletStyle in XSLFTextParagraphAdd support for SHEET functionNote: JDK 24 will change behavior of locale providers, some formatting might be different when upgradingUpgrade commons-codec dependency to 1.18.0Upgrade bouncycastle dependency to 1.80Upgrade pdfbox dependency to 3.0.4Upgrade graphics2d dependency to 3.0.3ZipPackage save should check that intermediate steps succeedAllow some OPC compliance checks to be tunedAdd getNumberOfTexts() methodAllow to use SXSSFSheet.setArbitraryExtraWidth() to define an adjustment-factor when auto-sizing columnsFix reading/writing of documents with many columnsHandle decimal format '0#' the same way as ExcelMultiple fixes found by fuzzing Apache POI via oss-fuzzAdd getNumberOfTexts method to XWPFRunContinue processing properties after multivalued propertiesStreamed reading: Log failures to format formulas and numbers instead of stopping processingFix arbitrary extra width supportHandle extra issue where FontSystem is missingCell copy support does not handle Time only values properlyIssue with date/time formats that leave a space before the AM/PM partAllow custom TempFileCreationStrategy per threadAdd support for SOURCE_DATE_EPOCH to allow to create reproducible binary files without creation/modification-timestamp being setBreaking change: Some invalid content in the compressed file-formats for xlsx/docx/pptx/... now fail parsing to prevent handling malicious input incorrectlyUpgrade ant dependency to 1.10.15Upgrade batik dependency to 1.18Upgrade commons-codec dependency to 1.17.1Upgrade commons-compress dependency to 1.27.1Upgrade commons-io dependency to 2.18.0Upgrade log4j-api dependency to 2.24.3 and add log4j-bom dependencyUpgrade pdfbox dependency to 3.0.3Upgrade xmlbeans dependency to 5.3.0Upgrade xmlsec dependency to 3.0.5Upgrade JaCoCo code-coverage tooling to 0.8.12Adjust HSSFWorkbook.getSheet() to return the first case-insensitive match, similar to XSSFFix searching text in paragraphs when text is spread across multiple runsSupport setting an arbitrary extra width value for column widths - not working - fixed in 69536 (5.4.1)XWPFRun.getText should support delInstrText and noBreakHyphenSupport removing XWPF StylesAdd word10.xsd to poi-ooxml-fullFix issue with param order in MIRR function evaluationNumber of blocks used by the property table missing from the file headerShifting columns with merged regions generates an error about overlapping regionsdefault ignoreMissingFontSystem to trueDefaultTempFileCreationStrategy should worry about OS deleting the temp diradd XSSFReader.getSheetIteratorIssue when evaluating WORKDAY function that has a cell ref as 2nd paramThrow exception if xlsx/docx/pptx contains duplicate file namesUpgrade log4j-api dependency to 2.23.1Upgrade commons-codec dependency to 1.17.0Upgrade commons-compress dependency to 1.26.2Upgrade commons-io dependency to 2.16.1Upgrade pdfbox dependency to 3.0.2 and graphics2d dependency to 3.0.2Upgrade xmlsec dependency to 3.0.4Upgrade bouncycastle dependency to 1.79Upgrade xmlbeans dependency to 5.2.1Add support for hyperlink based relationships which are stored separately from other relationshipsSome boolean attribute values are written as true instead of 1IllegalArgumentException: Unexpected color choice CTFontCollectionImpl when reading font color for a table cellFix issue in SXSSF when there are missing fontsSXSSFWorkbook now removes temp files when closed - removing need for a separate dispose callSupport allowStoredEntriesWithDataDescriptor=true when reading zip dataFix regression in date handling when evaluating TEXT functionRework exception handling for missing fonts to make it more robusthandle elliptical arcs that have colinear pointsSupport for polylinesSupport SVGs in XWPFUpgrade commons-io dependency to 2.15.0Upgrade commons-compress dependency to 1.25.0Upgrade log4j-api dependency to 2.21.1Upgrade xmlsec dependency to 3.0.3Upgrade bouncycastle dependency to 1.77Upgrade xmlbeans dependency to 5.2.0Better support for edge cases in TEXT functionFix issue where chart axes were defaulting to have blank number formats - which recent versions of Excel treat as corrupted.Add Complex scripts support in XWPFRunPOI 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 extractorImprove cell width logic to avoid rounding issuesDrawTextFragment height should include leading spaceDiscontinued the binary packages to reduce maintenance overhead, please rebuild the sources locally or use Maven Central for binary filesUpgrade log4j-api dependency to 2.20.0Upgrade xmlsec dependency to 3.0.2Upgrade batik dependency to 1.17Upgrade pdfbox dependency to 2.0.29, graphics2d to 0.43Upgrade commons-codec dependency to 1.16.0Upgrade commons-compress dependency to 1.24.0Upgrade commons-io dependency to 2.13.0Upgrade curvesapi dependency to 1.08Upgrade SparseBitSet dependency to 1.3Use jdk18on versions of bouncycastle jars (v1.76)Fix invalid loop-condition when cleaning up CTCellsmake stream/directory name lookup in OLE2 case insensitiveProvide a utility to clear all thread-locals to avoid reports of memory-leaks in web-application containersFix handling padding when decrypting dataInclude alpha/transparency value when creating an XSSFColor from an AWT Color objectInclude alpha/transparency value when setting a color-value for a fontFix graceful handling of missing font-system on the operating systemIncomplete Shared String Tables were causing read failuresNullPointerException in XSSFReader$SheetIterator.next()Multiple gradient stops at the exact same location causing a rendering failureAdd a method to properly write the header necessary for a MSG attachmentMake XSLFDiagramGroupShape publicInserting paragraph into table from cursorAdd theme support to XWPFFix issue where cells with formulas and cached results of string type do not properly support shared stringsText run highlight colors were ignoredFix parsing formulas with sheet-names which contain single quotesFix performance issue with XSSFSheet.groupRowImprove boolean functions empty cell handlingFix performance issue with SXSSFCell.getColumnIndex()SignatureConfig: remove ThreadLocals and deprecated code associated with themRemove support for zip/tgz release artifactsImprove performance of SheetDataWriter outputEscapedStringEnsure ZipPackage closes input stream when exceptions happenIssue where OFFSET function applies limits that should only apply to xls format spreadsheetsMake jar build reproducibleFix issue with adding table formulasXWPFTableCell: make setText fully replace the text and add appendText method to appendBasic for reading audio files in pptx filesSet standalone="yes" in XML declarations when writing OOXML format filesUpgrade graphics2d dependency to 0.40, pdfbox to 2.0.26Upgrade xmlsec dependency to 3.0.0Upgrade xmlbeans dependency to 5.1.1Upgrade log4j-api dependency to 2.18.0Speed 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-executionAvoid some more possible overly large memory allocations on certain input documentssetDefaultColumnStyle() in XSSFSheet/SXSSFSheet was not working as expectedadd PageMargin enumSupport version property in CorePropertiesSupport DAYS functionSupport capitalized text in XWPFWordExtractorSupport capitalized text in WordExtractorSXSSF doesn't update dimension fieldWhen slides were copied, the text shapes were still referencing original slideUse revert() instead of close() when OPCPackage is opened read-onlyRow shifting does not properly handle hyperlinks that span multiple cellsRATE function fails in some caseschange XSSFHyperlink code that copies HSSFWorkbook to respect cell rangesFix issue with parsing formulas that have sheet names containing certain charsFix rounding issue in MROUND functionFix bug where XWPFNumbering.removeAbstractNum removes by list index, not abstractNumIdDataFormatter issue with rounding in some use casesSupport AVERAGEIF functionXSSFColor could not be used the same time as org.apache.poi.ss.util classesSupport CEILING.MATH and FLOOR.MATH functionssupport case insensitive matching in D* functionsadd support for DCOUNT, DCOUNTA, DAVERAGE, DSTDEV, DSTDEVP, DVAR, DVARP and DPRODUCT functionsAdd STDEVP, STDEVA, STDEVPA, VARA and VARPA functionsadd support for unimplemented subfunctions to SUBTOTAL functionadd support for STDEV.S, STDEV.P, VAR.S and VAR.P functionsadd support for POISSON.DIST functionSupport CEILING.PRECISE and FLOOR.PRECISE functionsD* functions should support wildcard matchesSupport excel correl, covar, pearson and forecast functionsSome Password protected XLS files are not readSupport the gte attribute with XSSFConditionalFormattingThresholdgenerate poi-ooxml-full classes for dml-drawing xsdgenerate poi-ooxml-full classes for threaded comment and word12 xsdsadd 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 properlyIntegrate SmartArt diagrams from powerpoint presentationsPOI's implementation of VALUE function did not properly handle empty string inputCalling getTextHighlightColor() or getEmphasisMark() on XWPFRun can lead to corruption of fileXSSFTable.updateHeaders did not work for Worksheets created using current Excel versionsXSSFSheet.removeTable did not remove the links to the table part reference from the sheetXSSFWorkbook.cloneSheet does not clone XSSFTables linked from the sheetShifting rows or columns can damage formulas in tablesXSSFPivotTable.getPivotCacheDefinition() does not work properly when XSSFPivotTable was read from an existing *.xlsx fileSXSSFWorkbook should work even when fonts not installed on OSIssue with orphaned (in package) images and notes post slide removalUpgrade log4j-api dependency to 2.17.2 and graphics2d dependency to 0.35 as well as some test dependenciesFix issue where Boolean functions (AND, OR) do not work properly in array contextadd removeTextParagraph to text box APIadd removeTextRun to paragraph APIFix stackoverflow issue when removing formulas with circular referencesSupport rich text strings in SXSSFWorkbook (only when shared string table is used)POIXMLPropertiesTextExtractor returns duplicate key for Core propertiesPOI 5.2.1 can allocate byte arrays that are too bigUpgrade curvesapi dependency to 1.07IOUtils.toByteArray did not fully take into account value set by IOUtils.setByteArrayMaxOverrideCollapsing a column group was incorrectly implementedDOLLAR function is not properly implementedMultiplication in cell formulas can have small rounding issuesPicture resize can lead to infinite loopAdd support for NUMBERVALUE functionAdd support for Normal Distribution functionsAdd support for BESSELJ functionAdd support for DOLLARDE and DOLLARFR functionsAdd support for WORKDAY.INTL functionsFix issue where malformed TNEF file can cause memory issuesXAdES-XL modifications due to specification check errorsRefactor to XSSFReader, SharedStringsTable, CommentsTable and ThemesTable to make them more extensibleUpgrade log4j-api dependency to 2.17.1Upgrade BouncyCastle dependency to 1.70Upgrade PDFBox Graphics2d dependency to 0.34 and PDFBox dependency to 2.0.25upgrade to xmlsec 2.3.0 - make secure validation configurableDigital Signature - set commitment type and purposeIssue in XSSFReader where string builder is not always cleared between cell readshandle date/time fields and formatsCell Conditional Formatting: Change regex to account for decimals with no leading digitLog warning when long sheet names are trimmedAdd support for XLOOKUP and XMATCH functionsCustomize Spliterator implementations for better parallelismDataFormatter incorrectly formats data formats with escaped percent characterXSSFSheet.createTable generates corrupted file when a header's cell contains a line breakPassword Protecting a document when Saxon is on classpath can corrupt the outputDataFormatter: add setUse4DigitYearsInAllDateFormats(boolean) method with default of falseDataFormatter: add setUseCachedValuesForFormulaCells(boolean) method with default of falseFix issue in XSSFSheet getDrawingPatriarchFix issue with excessive logging of invalid parts in OOXML filesCell copy does not respect rich textstop using file deleteOnExit in DefaultTempFileCreationStrategyXDDF - bug fixesUpgrade Batik dependency to 1.14Upgrade BouncyCastle dependency to 1.69 (including adding dependency on bcutil jar)Upgrade Commons-Compress dependency to 1.21Upgrade XMLSec dependency to 2.2.3Upgrade PDFBox Graphics2d dependency to 0.33 (and test with PDFBox 2.0.24)Add commons-io 2.11.0 as a dependencyUpgrade XMLBeans to 5.0.2Internal logging in POI now uses Apache Log4J 2Small refactor to XSSFReader to make it more extensible - should not affect most users unless they subclass XSSFReaderBy 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.2Don't throw exception on empty data sourceSet hole size for doughnut chartXSSFDrawing - import chart from other drawingXSSFWorkbook - reference cloned sheet in cloned chart dataXSSFWorkbook - clone sheet with chartXSLFSlide - import slide notes when importing slide contentManipulate individual data point propertiesAllow change of EncryptionModeMigrate ant / maven to gradle buildthe method getCap() does not work correctly in xslf.usermodel.XSLFTextRunDocument signed by POI reported as 'partially' signedLineRect shall throw more specific exceptionsIncorrect sizes of images in SVGAdd commons-io as a dependencyHandle issue where OOXML file has metadata and metadata.xmlSupport IFS and SWITCH functionsSupport TEXTJOIN functionTRIM function should trim extra spaces between wordsFix issue with removing parent formula when shared formulas are usedSupport IFNA functionAdd support for T literal in DateTime formatsSUMIF and SUMIFS functions do not properly handle #N/A valuesadd support for MAXIFS, MINIFS, AVERAGEIFS functionsUse viewbox when rendering SVG imagesadd optional support in ZipArchiveFakeEntry to use a temp fileStrip color formatting in headers and footersFix issues with WEEKNUM function evaluationXSLF CustomGeometry - replace XmlStreamReader access with XmlBeans delegateSupport PERCENTRANK and related functionsSupport TDIST and related functionsBetter support for shared hyperlinksAdd 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 4GbFix issue in XWPFTable.setTableAlignment(TableRowAlign tra)Create XAdES-T signature with XAdESXLSignatureFacetQUOTIENT function does not support cell referencesAllow creation of POIFSFileSystem instances from FileChannels but with an optional flag to prevent POI from closing the channelWorkbookFactory.create(File, ...) should throw exception if the input file is not in a supported formatIncorrect fetching paragraph and text runs props from master shapeSlideShowFactory.create(File, ...) should throw exception if the input file is not in a supported formatRemove finalizer on SXSSF SheetDataWriterUse 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 ignoredUpgrade 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/fullooxml-security is part of poi-ooxml-full (known as ooxml-schemas) now and won't be provided separatelyupdated dependencies to XMLSec 2.2.1, Bouncycastle 1.68, Commons-Codec 1.15, Commons-Compress 1.20XWPF - improvements in table and paragraphXSLF - improvements for paragraphprovide JigSaw modules - some classes moved between packages for the JDK 9+ support, e.g.
ExtractorFactory, so imports need to be adjustedremoved dependencies to jaxbremoved deprecated codenew experimental DeferredSXSSFWorkbook which creates fewer temp files by lazily generating rows (see DeferredGeneration in poi-examples)Ensure "applyAlignment" in cell-styles is enabled when necessaryAllow to parse a file where the relationship-id is an empty stringDo not use CTDataValidations.getCount(), instead only rely on getDataValidationArraySupport missing or blank match_type for function MatchDo not populate cells with a paragraph when loading an existing documentUse correct index for 1-based picturesFix invalid moving of merged regionsUse proper position for the WriteAccessRecordMake LOOKUP functions deal with empty last arg correctlyImprove performance of reading OLE2 filesHandle MissingArgEval in relational operatorsAvoid NullPointerException in XSSFReader.SheetIterator.next() if files contain macrosAvoid NullPointerException if RangeCopier encounters empty/missing rowsAdd some more methods to allow to use CellType everywhereFix 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.0Include content control text in word extraction also if it is part of a paragraphTake the replacement of RichText strings into account when computing length of stringsSS method to check if a Named Range is hidden or notSS method to check if a Named Range is hidden or notHSMF enhancements - NamedIdChunk, MultiValueChunks, ByteChunkDeferredFix incorrect handling of format which should not produce any digit for zeroSpeed up auto-sizing of columns when the sheet contains merged regionsDecrease usage of ThreadLocals in XML Signature APIPicture.resize(double scale) scales width wrong for small pictures and when dx1 is setupgrading xmlsec causes junit tests to failXSLF - Wrong scheme colors used when renderingMethod setText in XWPFTableCell updates the xml and also updates the runs and irunsXWPFTableCell does not process bodyElements when handle paragraphXWPFNumbering.addAbstractNum will definitely throw an exceptionAllow try-with-resources with OPCPackage.revert()Add traversing and debugging interface to HSSFSonar fix - "Iterator.next()" methods should throw "NoSuchElementException"RuntimeException on extracting text from Word 97-2004 DocumentCountryRecord not foundBig POIFS stream result in OOMProvide JigSaw modulesSynchronize code that initialises WorkbookFactorySupport DateValue functionAdd an option for RangeCopier.copyRange() also clone stylesRetrieve default run properties from paragraphOle10Native aka embedded / object packager - handle UTF16 variantsXWPFSDTContent.getText() is empty for nested SDT elementsMissing quoting of pre-evaluated string values in formula cells causes corrupt filesPOI HwmfGraphics cannot read the embedded document titleWMF font typeface charset encoding errorVisual signatures for .xlsx/.docxFix issue in testXLSXinPPTChange TRUNC implementation to use MathXProvide PDF rendering with PPTX2PNGConverting cell values to boolean should throw IllegalStateException instead of RuntimeException when conversion is not possibleXSSFFont setCharset(FontCharset) should use latest class instead of deprecated oneImprove performance of cell mergeImprove performance of SXSSF cell evaluationChange some methods to return ints instead of shorts (Font and CellStyle)Upgrade OOXML schema to 3rd edition (transitional)Change artifact names of poi-/ooxml-schemasUpgrade OOXML schema to 5th edition (transitional)Unable to convert pptx to pdfMigrate tests to Junit 5Use SLF4J instead of commons-logging - use jcl-over-slf4jHandle VmlDrawings containing spreadsheet-ml default namespaceWMF parsing failed on closed empty polygonRemove jdk.charset module dependency for spreadsheets generationDelete unused certificate exceptionsFix RuntimeException on array formula referencing blank cellMove date parsing logic to DateParserAdd length validation for Excel DataValidations that are list literalsNew EmittingSXSSFWorkbookRemove limit on number of rules in XSSFSheetConditionalFormattingAvoid NullPointerException if RangeCopier encounters empty/missing rowsRemoved a lot of internal uses of StringBuffersXDDF - some work on better chart supportCommon SL / EMF - ongoing rendering fixesXSLF - OOM fixes when parsing arbitrary shape ids + a new dependency to SparseBitSet 1.2updated dependencies to Bouncycastle 1.64Swap zaxxer.com:SparseBitSet for java.util.BitSetWhen removing AbstractNum match by abstractNumId, not list indexAvoid endless loop/out of memory on string-replace with empty search stringMake D* functions work with numeric result columnWrite pre-evaluated string-values in formula cells with the correct typeFunction AND / OR should treat missing parameters as FALSEMake getFirstRowNum() and getFirstCellNum() return -1 consistently with empty dataMake IOUtils.setByteArrayMaxOverride() work correctlyAdd, insert and remove columns on XSLFTableFix issue with fractions where the whole number part is too large to store as an intProduce valid PPTX file with several chart seriesFix texture fill - scale stretched images correctlyAdd Doughnut chart data series supportHMEFContentsExtractor fails to extract content from winmail.datInconsistent mapping of Norwegian locales for date formatsAdd set level numbering on XWPFParagraphFix Bug in XSSFTable.setCellReferences when table is single cellReplace Cloneable / clone() with copy constructorReplace reflection calls in factories for Java 9+Fix issue with setCellValue(LocalDate) not supporting nulls properlySlideShow rendering fixesXWPFRun: 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 chartsSupport commas, exclamation marks correctly in AreaReferenceXSSFWorkbook constructor doesn't close ZipFile if an exception occursRegression in OldSheetRecordXSSF: Memory improvements which use much less memory while writing large xlsx filesXDDF: Improved chart support: more types and some API changes around angles and width unitsupdated dependencies to Bouncycastle 1.62, Commons-Codec 1.13, Commons-Collections4 4.4, Commons-Compress 1.19XWPF: Additional API methodsXSSF: Fixes to XSSFSheet.addMergedRegion() and XSSFRow.shiftRows()EMF/HSLF: Rendering fixesCVE-2019-12415 - XML External Entity (XXE) Processing in Apache POICache pids to speed up custom properties "add" methodAdd support for the new Java date/time API added in Java 8Avoid NullPointerException when reading Word Document with tables and a cell with a null descriptorRead 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 testsFix regression with memory usage in XSSFRow.onDocumentWrite and some other temporary memory leaksFractionFormat casts whole part of the value into 'int'Allow multiple charsets for same font typefaceXSSFExportToXml adjust settings on SchemaFactoryNullPointerException from XSLFSimpleShape.getAnchor for empty xfrm tagsAdd traversing and debugging interfaceFix regression when XSSFRow.shiftRows() is usedFix texture paint handlingHSLF rendering - adjust values for presetShapeDefinition differs in HSLF/XSLFDon't fallback to master shape properties, if master shape is not assignedAdd a ThreadLocalUtil.clearAllThreadLocals which can be used to clear thread-localsXSSFSheet.addMergedRegion should adjust count of merged cellsReturn value of XSSFSheet.addMergedRegion is off by oneError opening XLSX after saving with a Drawing using POISupport to create new chart without reading templateMAPIType.isFixedLength: not true in case of length > 8Support for seven new chart typesimprove MAPIMessage.getHtmlBodyAdd XWPFPicture getWidth and getDepth methodsAdd XWPFRun getStyle methodAdd XWPFParagraph setKeepNext methodAdd XWPFParagraph createHyperlinkRun methodImproved support for writing large filesAdd setters to POIXMLPropertiesEnable safe removal of data series from chartsProvide example of threshold line in bar chartImproved support/fixes for Java 9+ and IBM JVMNew EMF renderer and support of SVG images in XSLFSecurity, stability and memory/resource handling improvementsVarious bug fixes across function and conditional format rule evaluationUpgrade to XMLBeans 3.1.0Upgrade to Bouncycastle 1.61Upgrade to Curvesapi 1.06Upgrade to Commons-Codec 1.12Upgrade to Commons-Collections4 4.3Upgrade to XMLSec 2.1.2Avoid a possible NullPointerException in XSLFShape.selectPaint()Implement 'ignore hidden rows' variations for existing implemented variantsConditional Format rule evaluation calculates relative references incorrectlyFix NPE in EDATE function when date evaluates to an invalid valueWork around illegal reflective access in Java 9+ when freeing buffersOPCPackage Potentially clobbers files on close()Make D* functions ignore case in headingsAdding custom properties creates invalid .xlsx file on second writeNull pointer exception in ExternSheetNameResolver.prependSheetName methodFix copying styles/conditional formattingImproved evaluation of array formulas with errors in argumentsMake POILogger subclassableSupport array arguments in IF and logical IS*** functionsProvide font embedding for slideshowsFix setting values/types during formula evaluation for SXSSFAllow to handle files with invalid content types for picturesFix MathX.floor for negative nSheetnum is not checked in InternalWorkbook.setSheetHidden()Regression extracting text from corrupted docx filesRemove rows from a XSLFTableEMF image support in slideshowsSVG image support in XSLFSupport GEOMEAN functionMultiple digital signature in excel file broke first signatureIBM JDK JIT causes AIOOBE in TexturePaintContextIBM JCE workaroundsinit presetShapeDefinitions.xml fail under IBM jdkRendering of FreeformShapes with formula failsRemove support for reading files that have XML entity definitionsadd XWPFRun setLang methodRemove unnecessary synchronization on DocumentHelper.newDocumentBuilder and SAXHelper.newXMLReaderFix NPE in EDATE function when date evaluates to an invalid valueConditional Format rule evaluation calculates relative references incorrectlyImplement 'ignore hidden rows' variations for existing SUBTOTAL function variantsFix issue with CellUtil.setFont adding unnecessary stylesgetForceFormulaRecalculation() returns wrong valueDataFormatter.formatCellValue() ignores use1904Windowing w/4-part date formatsFixes pom.xml entries for commons-maths3 (missing), curvesapi and commons-codecImprovements for XDDF charts and text manipulationUpgrade to XMLBeans 3.0.2Move loop invariants outside of loop for faster executionpoi-ooxml pom.xml should include dependency on poi-scratchpadMissing Maven dependency to commons-math3WildFly XML parser not properly supported - Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognizedDownload page must link to https://downloads.apache.org/poi/KEYSXSLFBackground setFill() can corrupt the documentpoi-ooxml 4.0.0 should have dependency on curvesapi 1.05XSSFTable constructor automatically assigns invalid (non-unique) column IDsOPCPackage#close() method is incorrectly synchronizedRemove XML Event parser code from PackagePropertiesMarshallerFix null pointer exception if a picture shape has no blip idFix Old-Xerces build issuesXSLFTableCell#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.17FileMagic not correctly identifiedSlideShow rendering - keyframe fractions must be increasingProvide OOXMLLite alternative for Java 12+Handle off-spec, variant REFERENCE_NAME record structure in VBAMacroReaderHandle module name mapping in VBAMacroReaderSupport TREND functionRare NPE while creating XWPFSDTContentSupport for FREQUENCY functionWorkbookFactory.create support for subclass of File, eg from JFileChooserXLSB number extraction improvementsSupport FREQUENCY functionAdd common-compress jar to bin zip/tgzUpgrade bouncycastle dependency to 1.60Relations on XSLFPictureShape were removed unconditionallyDefine XDDF user model for text body, its paragraphs and text runsImport chart on drawingSupport axIds in XDDFXSSFWorkbook.setSheetName() does not update references in chartsLocalisation (Internationalisation in other languages) when applied in charts corrupt the MS Word fileRemoved support for Java 6 and 7 making Java 8 the minimum version supportedNew OOXML schema (1.4) necessary, because of incompatible XMLBeans loading not anymore through POIXMLTypeLoaderRemove OPOIFS*Importing content does not copy hyperlink addressrepeated call to XSLFSheet.removeShape leads to java.lang.IllegalArgumentException: partNameDon't try to parse embedded package relationshipsWork on providing an updated version of XMLBeansDocument last printed in the year 27321(S)XSSFWorkbook/POIXMLDocument.write(OutputStream) closes the OutputStreamExtract configuration while verifying XML signaturesCompiling with Java 10 fails with ClassCastException / use commons-compressUnsplit packages for Jigsaw / Java 9 compatibilityTestFonts fails on MacTwo shapes have the same shapeId within the same slideZero width shapes aren't renderedSlideNames should not be null but have a default as if accessed by VBAFix rendering of AutoShapesForbid calls to InputStream.availableHSSFWorkbook.setActiveCell() does not actually make the cell selected in ExcelHSLFShape.getShapeName() returns name of shapeType and not the shape nameDecommission XSLF-/PowerPointExtractorText not extracted from grouped text shapes in HSLFSupport XML signature over windows certificate storeAdd support for major and minor units on chart axesAdded methods to position tableRemove deprecated classes (POI 4.0.0)Add functions to get, set, remove outer borders for tablesDefine XDDF user model for shape properties to be shared between XSLF, XSSF and XWPFDo not fail with "part already exists" when tables are created/removedAdd more information to exception text and verify that it is thrownAdd .gitattribute file and set lf for one sample-fileEmbed Excel / Ole objects into powerpointnarrow generics definition because of tighter java9 checksRefactor PackagePartName handling and add getUnusedPartIndex methodMove Ole marker generation to Ole10NativeReplace ClassID statics with enumProvide schema for AlternateContent - provide new ooxml-schemas-1.4.jarChange how deleted content is detected to not incorrectly see too much text as deleted, this was introduced with bug 58067Fix usage of getLastCellNum() when calculating worksheet dimension during savingAvoid IndexOutOfBounds access when reading picturesSupport third party tool generated files using WorkBook as their POIFS directory nameRegression in ppt parsing: typeface can't be null or emptyShare chart data implementation between XSLFChart, XSSFChart and XWPFChart through XDDFInfinite loop in SectionIDMap.get() and .put()Surface XSSF Header/Footer AttributesCellRangeAddresses support iterating over their CellAddressesCellRangeUtil merge cell ranges broken for certain orders of argumentsFix various situations that were handled incorrectly in HSSFOptimiserXSLFSlide does not contain isHidden and setHidden like HSLFSlide doesPerformance improvement to XSSFExportToXMLAdd a method to pass the actual Color to StylesTable.findFont()Add support for modules in VBAMacroReaderAdd XSSFWorkbook.setCellFormulaValidation() to control if formulas are validated during Cell.setCellFormula()Fix calculating/setting formula valueSupport behavior of function CEILING in newer versions of Microsoft ExcelCorrectly handle references that end up outside the workbook when cells with formulas are copiedAdd endSheet() to XSSFEventBasedExcelExtractorExchange order of writing parts into Zip to allow some tools to handle files betterSupport matrix functionsDeleting a picture that is used twice on a slide corrupt the slideBack-off to brute-force search for macro content if macro offset is incorrectPivot table enhancementsadd API for working with RichStringTextAvoid iterating over chars (use codepoints instead)Update OFFSET function to support optional valuesRename getAllEmbedds method to getAllEmbeddedParts (getAllEmbedds is retained but deprecated)Replace org.apache.poi.openxml4j.util.Nullable with java.lang.OptionalChange default DSIG signing algorithm to SHA256Support AREAS functionRenames org.apache.poi.xwpf.usermodel.TextSegement to org.apache.poi.xwpf.usermodel.TextSegmentBetter support for Footnotes and Endnotes