Apache POI Changelog

What's new in Apache POI 5.2.3 Build 20220909

Sep 18, 2022
  • 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

New in Apache POI 5.2.2 Build 20220312 (Mar 20, 2022)

  • 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

New in Apache POI 5.2.1 Build 20220224 (Mar 4, 2022)

  • Upgrade curvesapi dependency to 1.07.

New in Apache POI 5.2.0 Build 20220106 (Jan 15, 2022)

  • 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

New in Apache POI 5.1.0 Build 20211024 (Nov 2, 2021)

  • 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
  • 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).

New in Apache POI 5.0.0 Build 20210120 (Jan 18, 2021)

  • 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.67, 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 avoids temp files by lazily generating rows (see DeferredGeneration in poi-examples)

New in Apache POI 4.1.2 Build 20200217 (Mar 9, 2020)

  • 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

New in Apache POI 4.1.1 Build 20191023 (Oct 21, 2019)

  • The most notable changes in this release are:
  • 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

New in Apache POI 4.1.0 Build 20190412 (Apr 9, 2019)

  • 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.

New in Apache POI 4.0.1 Build 20181203 (Dec 17, 2018)

  • The most notable changes in this release are:
  • dependency updates to XMLBeans 3.0.2 / Bouncycastle 1.60
  • XSSF: import chart on drawing
  • XDDF: Define XDDF user model for text body, its paragraphs and text runs
  • OPC: fixes on the newly introduced commons compress usage

New in Apache POI 4.0.0 Build 20180907 (Oct 23, 2018)

  • Remove OPOIFS* (breaks backwards compatibility)
  • 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 (breaks backwards compatibility)
  • Extract configuration while verifying XML signatures
  • Compiling with Java 10 fails with ClassCastException / use commons-compress (breaks backwards compatibility)
  • Unsplit packages for Jigsaw / Java 9 compatibility (breaks backwards 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 (breaks backwards compatibility)
  • 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 (breaks backwards compatibility)
  • Add more information to exception text and verify that it is thrown (breaks backwards compatibility)
  • Add .gitattribute file and set lf for one sample-file (breaks backwards compatibility)
  • Embed Excel / Ole objects into powerpoint (breaks backwards compatibility)
  • 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 (breaks backwards compatibility)
  • Change default DSIG signing algorithm to SHA256
  • Support AREAS function
  • Renames org.apache.poi.xwpf.usermodel.TextSegement to org.apache.poi.xwpf.usermodel.TextSegment (breaks backwards compatibility)
  • Better support for Footnotes and Endnotes

New in Apache POI 3.17 (Oct 6, 2017)

  • Summary:
  • Removal of deprecated classes and methods that were marked for removal in v3.17
  • Various modules: add sanity checks and fix infinite loops / OOMs caused by fuzzed data
  • OPC: fix linebreak handling on XML signature calculation (#61182)
  • SS Common: fix number formatting (github-43/52, #60422)
  • SXSSF: fix XML processing - unicode surrogates and line breaks (#61048, #61246)
  • Changes:
  • POI OOXML-Schema lookup uses wrong classloader
  • Handle ruby (phonetic) elements in XWPFRun
  • PushbackInputStreams passed to ZipHelper may not hold 8 bytes
  • Support formula evaluation with functions containing more than 127 arguments
  • Fix issue with number formatting in non-default locales
  • Fix issue where carriage returns were being escaped as line feeds
  • Do not replace Unicode Surrogate chars with ? when writing SXXSF sheets
  • POI Overall Unify escher shape id allocation
  • OPC Use unsynchronized xmlbeans
  • HEMF Add more sanity checks before allocation of byte arrays in HEMF/HWMF.
  • fix 61338 HWMF Avoid infinite loop with corrupt file.
  • fix 61295 HPSF Avoid OOM in hpsf with corrupt file.
  • SL Common Font group handling / common font interface
  • POIFS Avoid infinite loop with corrupt file.
  • HSSF Handle zero-length headerfooter and 2 byte WriteProtectRecord
  • RoundUp and RoundDown functions round incorrectly in some scenarios
  • Support number formats with trailing commas
  • Fix bug that allowed IOUtils.skipFully to enter infinite loop
  • More helpful exception on unsupported old MS Write WRI files
  • Refactor and unify toString/toXml in DDF
  • Invalid signature created for streamed xlsx file

New in Apache POI 3.11 Beta 1 (Aug 20, 2014)

  • Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)
  • Correct XWPF createTOC handling of short style names
  • If the start+end row and cell are the same on an AreaPtg, avoid inverting the relative flag
  • HWPF where no parent style CHP exists, use an empty set when processing the style to avoid a NPE
  • When shifting XSSF rows with formula cells, if the formula can't be parsed, log + leave it unchanged rather than failing
  • Avoid NPE from XSSFHyperLink when setting the cell it references on a new link
  • If an unsupported BofRecord is found for a sheet, warn and skip rather than breaking
  • Support the ColInfoRecord coming after the cells, rather than before as is normal
  • Allow XSSF formula evaluation to also skip missing external workbook references, if requested, in line with existing HSSF support
  • XSSF support for creating Pivot Tables
  • Formula Evaluator support for multi-sheet references for those functions which support them, eg SUM(Sheet1:Sheet3!A1:B2)
  • Allow XSSF event model to find + return comments, and use this for the event based .xlsx text extractor. Required backwards-incompatible updates to XSSFSheetXMLHandler.SheetContentsHandler
  • HPSF thumbnail format tags are Int not UInt
  • - Allow a system wide setting of where Temp files (eg for SXSSF) go, via TempFile / TempFileCreationStrategy
  • Have XMLBeans request UTF-8 for strings by default, to avoid issues on the odd platform where that isn't already the case
  • Correct HSSFOptimiser logic for the case where the to-keep style wasn't previously in use
  • XSSF support for evaluating formula references to other Workbooks
  • Fix border cases in EDATE function: handle RefEval and BlankEval and also return #VALUE, not #REF in case of error
  • Initial support for XSSF External Links tables, which hold references to other workbooks referenced by formulas and names
  • If a cell is of type numeric but has an empty tag, return as 0
  • Make Workbook be Closeable, so you can call close() to explicitly free the file based resources when you're done
  • Read text from SDTs at the table cell level, including (sometimes) Cover Page, Table of Contents and Bibliography
  • Change how ColumnHelper finds CTCol instances, to speed up the more common use case when most are wanted for reading
  • HSSFCell should follow XSSF, and allow setting a null-style to return to the default style
  • Fix multithreading bug when reading 2 similar files
  • Fix a copy/paste error in CFRuleRecord.clone()
  • Fix a problem with cells in workbooks becoming disconnected
  • Add missing null-check if simple shape does not
  • Bug 54400 introduced a problem when removing a sheet with named ranges
  • - NoteRecord can sometimes be double-padded if there's no author set
  • Handle date format strings in an iso8601 style format, with a T in them
  • Correct SXSSF writing of tables when creating from a template
  • Writing a workbook more than once corrupts the file
  • Outlook sometimes stores a codepage of ANSI when it means 1252, detect and alias
  • Add XOR obfuscation/decryption support to HSSF
  • DateFormat - Rounding of fractionals
  • Excel 2007 and later allows for more than 3 Conditional Formatting rules per sheet, so change our hard limit to logging a compatibility warning
  • Add NPOIFS in-place write support, including updating the contents of existing entries
  • Complete NPOIFS write support
  • NPOIFS fixes for 2+gb files loaded via File (InputStream is limited to 2gb due to ByteBuffer limits)
  • Avoid a NPE if a comment has no associated NoteRecord (but we still don't know where it belongs)
  • Streaming write support in NPOIFS
  • Fix floating point rounding problems with ROUND function
  • Fix SXSSF encodings on EBCIDIC platforms, by setting the required encoding explicitly
  • Support loading .xlsx files with no Styles Table
  • Replace System.err in XSSFSheetXMLHandler with propert logging
  • Fix NPE during export to XML with xs:all
  • Fix compare/sorting of nodes in exported XML
  • Handle numeric formula values when exporting to XML
  • Handle date types when exporting to XML
  • Stop being compatible to JDK 1.5, we now require JDK 6
  • Use default style if the cell style attribute is not present
  • Upgrade third party libs to latest versions: commons-logging, commons-codec, log4j
  • Avoid warnings when a TextHeaderAtom is empty and has another straight after, or where there's a TextRulerAtom / MasterTextPropAtom / TextSpecInfoAtom before the Text Chars / Bytes
  • Add Change Tracking support to XWPF
  • Add password hash function to HWPF
  • Add document protection with password support to XWPF
  • Support OOXML ContentTypes which include parameters
  • PPT can't open, fails with "Couldn't instantiate ... StyleTextProp9Atom"
  • HSPF code page strings can be zero length
  • SXSSF Shared Strings option support
  • Mixed fonts issue with Chinese characters (unable to form images from ppt)
  • XSSF Event Text Extractor header/footer support
  • Hyperlink with a non-breaking space throws java.lang.IllegalStateException
  • Special Letters not exported correct
  • Expose the StyleIndex of HWPF CharacterRuns
  • Fix StringIndexOutOfBoundsException : Ole10Native. (parsing word file)

New in Apache POI 3.10.1 (Aug 20, 2014)

  • On supported XML parser versions (Xerces or JVM built-in, XMLBeans 2.6), enforce sensible limits on entity expansion in OOXML files, and ensure that subsequent normal files still pass fine (CVE-2014-3574)
  • Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)

New in Apache POI 3.10 (Aug 5, 2014)

  • WorkbookFactory.create() hangs when creating a workbook
  • add 55873 - Support for COUNTIFS function
  • Inconsistent behavior in HSSFSheet.setAutoFilter() function, also make XSSF work when setAutoFilter is called multiple times
  • Writing a workbook multiple times produces unreadable content
  • Fix corrupt file problem using TextRun.setText
  • AIOOBE with missing notes entries
  • Multiple Saves Causes Slide Corruption
  • Support embedding OLE objects into HSLF
  • Add encryption support
  • Fix StringBuilder logic in DataFormatter.cleanFormatForNumber
  • Fix org.apache.poi.ss.usermodel.BuiltinFormats.java for 0x29-0x2c
  • Avoid using RMI based exception from PropertySetFactory, as it's not needed nor helpful
  • Fix NullPointerException during Xml-extraction from xslx
  • Avoid IndexOutOfboundsException when setting nested row grouping
  • fix handling of tables in XSSF if there are comments as well
  • Patch for hiding slides in HSLF
  • Fixed auto shapes render problem in pptx files
  • CellStyle support for get/set Shrink To Fit
  • HSSF Row Style XfIndex is 12 not 16 bits of data
  • OOXML encrypted document fix for cspname being optional
  • XWPFWordExtractor needs to handle .docx files with neither headers nor footers
  • DataFormatter should format Error cells, returning the Excel error string
  • Performance improvement in HSSFCellStyle.getDataFormatString()
  • Performance improvement in DateUtil.isADateFormat(int, String)
  • Support embedding OLE1.0 packages in HSSF
  • Support embedding EMF/WMF pictures in HSSF
  • Fix handling some types of TNEF files
  • Updating the index in the LinkTable whenever sheets are removed
  • Apply patch to avoid XmlValueDisconnectedException when saving a file twice
  • Add support for collapsing rows in SXSSF
  • Give a more helpful error if an Encrypted .xlsx file is passed to HSSF
  • Avoid AIOOBE if a non-existant Xfs is requested for a style
  • Don't fail in SXSSF if a numeric cell is overwritten with a string
  • Constants for HAIR and DOTTED border styles are swapped
  • Add Eclipse project files
  • When creating a temp file, ensure the name isn't already taken
  • Extract text from HSLF tables
  • Support for SHA-512 hashes on OOXML protected documents, as used by Office 2013

New in Apache POI 3.10 Beta 2 (Nov 13, 2013)

  • Add fix for XmlValueDisconnectException during shifting rows(poi-developers)
  • handling of special case in FormulaShifter(poi-developers)
  • corruption of Workbook when setting sheet order(poi-developers)
  • SimpleFractionException when fraction goes to greater than overflow(poi-developers)
  • Add support for quoting in date formatting(poi-developers)
  • Do not make the XSSFSheet invalid during write()(poi-developers)
  • MultiOperandNumericFunction.collectValue() currently uses concrete final classes but should use interfaces instead(poi-developers)
  • Endless loop in CellRangeUtil.mergeRanges() when regions are overlapping(poi-developers)
  • Integrate 55292 into XSSF extractors -- extract text from text boxes in xlsx files(poi-developers)
  • /Tika 792 - Avoid CTMarkup NoSuchMethodException stack trace by adding two beans to ooxml-lite"(poi-developers)
  • Fix column grouping in XSSF.(poi-developers)
  • Enhancements to XSSFSimpleShape (textbox) including: ability to add multiple paragraphs, formatting (read/write) and text extraction.(poi-developers)
  • Avoid a ClassCastException if a HPSF string property isn't directly stored as a string(poi-developers)
  • HSMF ascii encoding detection should use the CodePage properties where available(poi-developers)
  • HSMF fixed length property parsing should be more forgiving of some type differences from the property default(poi-developers)
  • Some HPSF documents require UnicodeStrings to be 4-byte aligned, spot these from the otherwise invalid length(poi-developers)
  • addUpgrade version of JUnit to 4.11 to avoid problems when executing unit tests using Apache Ant >= 1.7(poi-developers)

New in Apache POI 3.10 Beta 1 (Nov 13, 2013)

  • Avoid issues if the length of a StyleTextPropAtom prop is longer than the parent text(poi-developers)
  • error message text for a workbook with no sheets when a sheet operation is performed(poi-developers)
  • Presence of PLV record shouldn't affect HSSF Data Validation(poi-developers)
  • Not all XWPF SDT blocks need newlines(poi-developers)
  • XSSFDrawing.createCellComment causes CommentsTable to lose reference to comment in cell A1(poi-developers)
  • ExtractorFactory does not close files when extracting via OCPPackage.open()(poi-developers)
  • NullPointerException in XSSFSheet.getTopRow() when the top row is 1(poi-developers)
  • Improve how DataFormatter handles fractions(poi-developers)
  • Don't load XWPF Footnotes twice(poi-developers)
  • Controlled content/Form (Std/StdBlock) content(poi-developers)
  • github2 - HSSFWorkbook.getAllEmbeddedObjects() needs to recurse into container Shapes(poi-developers)
  • addgithub4 - Expose from XWPFParagraph the number level and format, if applied(poi-developers)
  • addgithub3 - Extract references from XWPF footnotes(poi-developers)
  • Update License links following ECMA site re-organisation(poi-developers)
  • Support embedding EMF/WMF pictures in HSSF (poi-developers)
  • REPT formula support (poi-developers)
  • COMPLEX formula support (poi-developers)
  • CODE formula support (poi-developers)
  • Support Unicode text (TextCharsAtom) in HSLF TextShape(poi-developers)
  • UnhandledDataStructure should sanity check before allocating, not after(poi-developers)
  • Simple wildcard support in HLOOKUP, VOOLKUP, MATCH, COUNTIF (poi-developers)
  • Register user-defined functions in instance scope instead of static (poi-developers)
  • Support for financial functions IPMT and PPMT (poi-developers)
  • Avoid XmlValueDisconnectedException when merging slides (poi-developers)
  • Support of statistical function SLOPE(poi-developers)
  • Support of statistical function INTERCEPT(poi-developers)
  • Don't mis-detect format patterns like .000 as dates(poi-developers)
  • Support unusual .xls files with a BOOK directory entry (normally it is Workbook)(poi-developers)
  • EDATE formula support(poi-developers)
  • NPOIFS fix for 0 not -1 padded partially used XBATs(poi-developers)
  • IfError handling of indirect references(poi-developers)
  • add53966 - IfError support (from Analysis Toolpak)(poi-developers)
  • Prevent unreadable content and disalow to overwrite rows from input template in SXSSF(poi-developers)
  • Fixed XSSF to read cells with missing R attribute(poi-developers)
  • Ensure that shared formuals are updated when shifting rows in a spreadsheet(poi-developers)
  • Synchronize table headers with parent sheet in XSSF(poi-developers)
  • ed rendering text in flipped shapes in PPT2PNG and PPTX2PNG(poi-developers)

New in Apache POI 3.9 (Nov 13, 2013)

  • DateFormatConverter: an utility to convert instances of java.text.DateFormat to Excel format patterns(poi-developers)
  • show SSTIndex instead of XFIndex in LabelSSTRecord.toString()(poi-developers)
  • Tolerate missing Count and UniqueCount attributes when parsing shared strings table in XSSF eventusermodel(poi-developers)
  • added implementation for RANK()(poi-developers)
  • allow setting text with trailing carriage return in HSLF(poi-developers)
  • use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type(poi-developers)
  • support setting background color of sheet tab in XSSF(poi-developers)
  • support for enforcing fields update in XWPF(poi-developers)
  • support grouping rows in SXSSF(poi-developers)
  • support replacement of content types in OPC packages (poi-developers)
  • replace ISO control characters with question marks in SXSSF to be consistent with XSSF (poi-developers)
  • updated formula test framework to be aware of recently ed Functions (poi-developers)
  • support setting header / footer page margins in HSSF (poi-developers)
  • added WorkbookUtil#createSafeSheetName to escape colon (poi-developers)
  • added reading shared formulas in XSSF (poi-developers)
  • misc improvements in CellFormat (poi-developers)
  • added a getter for length of encrypted data in Ecma and Agile decryptors(poi-developers)
  • support ing TIFF,EPS and WPG pictures in OOXML documents (poi-developers)
  • avoid OutOfMemoryError when rendering groupped pictures in HSLF (poi-developers)
  • added XSSFRichtextString.append to preserve leading / trailing spaces (poi-developers)
  • tolerate hyperlinks that have neither location nor relation (poi-developers)
  • avoid duplicate text when rendering slides in HSLF(poi-developers)
  • respect slide background when rendering slides in HSLF(poi-developers)
  • added painting shape outlines in HSLF(poi-developers)
  • added seting vertical alignment for XSLFTableCell(poi-developers)
  • added merging slides with pictures with associated custom tags(poi-developers)
  • allow runtime registration of functions in FormulaEvaluator(poi-developers)
  • When reading from a ZipFileZipEntrySource that has already been closed, give IllegalArgumentException rather than NPE(poi-developers)
  • MAPIMessage may not always have name chunks when checking for 7 bit encodings(poi-developers)
  • added namespace issue in WordToFoConverter(poi-developers)
  • avoid trancated array and vector data when reading OLE properties(poi-developers)
  • CharacterRun NPE when fetching symbol fonts, where no fonts are defined(poi-developers)
  • support mergin table cells in XSLF(poi-developers)
  • validate row number and column index in SXSSF when creating new rows / cells(poi-developers)
  • added evaluation of blank cells in COUNTIF(poi-developers)
  • support changing external file references in HSSFWorkbook(poi-developers)
  • support external references in FormulaRenderer(poi-developers)
  • avoid exception when matching shared formula records in HSSF(poi-developers)
  • added methods to set/get an XWPFRun's text color(poi-developers)
  • added methods to set/get vertical alignment and color in XWPFTableCell(poi-developers)
  • added methods to get/set a table row's Can't Split and Repeat Header attributes in XWPF(poi-developers)
  • added methods to set table inside borders and cell margins in XWPF(poi-developers)
  • Support DConRefRecord in HSSF(poi-developers)
  • added an option to ignore missing workbook references in formula evaluator(poi-developers)
  • Validate ress of hyperlinks in XSSF(poi-developers)
  • Relax the M4.1 constraint on reading OOXML files, as some Office produced ones do have 2 Core Properties, despite the specification explicitly forbidding this(poi-developers)
  • added implementation for SUMIFS()(poi-developers)
  • POIXMLPropertiesTextExtractor support for extracting custom OOXML properties as text(poi-developers)
  • Support writing XWPF documents with glossaries (Glossaries are not yet supported, but can now be written out again without changes)(poi-developers)
  • Handle files which have been truncated by a few bytes in NPropertyTable(poi-developers)
  • Update CellDateFormatter to handle times without seconds(poi-developers)
  • Support ?/? as well as #/# fractions, and tighten DataFormatter rules for fraction matching(poi-developers)
  • Updated XWPF table example code (poi-developers)
  • Support for WORKDAY and NETWORKDAYS functions(poi-developers)
  • Merge the logic between the TEXT function and DataFormatter(poi-developers)
  • Correctly support excel style date format strings in the TEXT function(poi-developers)
  • XSSFExcelExtractor should format numeric cells based on the format strings applied to them(poi-developers)
  • Event based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler(poi-developers)
  • Avoid exception when creating cell style in a workbook that has an empty xf table(poi-developers)
  • added XSSFSimpleShape to set rich text attributes from XSSFRichtextString(poi-developers)
  • enhanced SheetUtil.getColumnWidth(poi-developers)

New in Apache POI 3.8 (Nov 13, 2013)

  • DateFormatConverter: an utility to convert instances of java.text.DateFormat to Excel format patterns(poi-developers)
  • show SSTIndex instead of XFIndex in LabelSSTRecord.toString()(poi-developers)
  • Tolerate missing Count and UniqueCount attributes when parsing shared strings table in XSSF eventusermodel(poi-developers)
  • add52818 - Added implementation for RANK()(poi-developers)
  • allow setting text with trailing carriage return in HSLF(poi-developers)
  • use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type(poi-developers)
  • addsupport setting background color of sheet tab in XSSF(poi-developers)
  • support for enforcing fields update in XWPF(poi-developers)
  • support grouping rows in SXSSF(poi-developers)
  • support replacement of content types in OPC packages (poi-developers)
  • replace ISO control characters with question marks in SXSSF to be consistent with XSSF (poi-developers)
  • updated formula test framework to be aware of recently added Functions (poi-developers)
  • support setting header / footer page margins in HSSF (poi-developers)
  • ed WorkbookUtil#createSafeSheetName to escape colon (poi-developers)
  • ed reading shared formulas in XSSF (poi-developers)
  • misc improvements in CellFormat (poi-developers)
  • added a getter for length of encrypted data in Ecma and Agile decryptors(poi-developers)
  • support adding TIFF,EPS and WPG pictures in OOXML documents (poi-developers)
  • avoid OutOfMemoryError when rendering groupped pictures in HSLF (poi-developers)
  • ed XSSFRichtextString.append to preserve leading / trailing spaces (poi-developers)
  • tolerate hyperlinks that have neither location nor relation (poi-developers)
  • avoid duplicate text when rendering slides in HSLF(poi-developers)
  • respect slide background when rendering slides in HSLF(poi-developers)
  • ed painting shape outlines in HSLF(poi-developers)
  • ed seting vertical alignment for XSLFTableCell(poi-developers)
  • ed merging slides with pictures with associated custom tags(poi-developers)
  • add allow runtime registration of functions in FormulaEvaluator(poi-developers)
  • When reading from a ZipFileZipEntrySource that has already been closed, give IllegalArgumentException rather than NPE(poi-developers)
  • MAPIMessage may not always have name chunks when checking for 7 bit encodings(poi-developers)
  • ed namespace issue in WordToFoConverter(poi-developers)
  • avoid trancated array and vector data when reading OLE properties(poi-developers)
  • CharacterRun NPE when fetching symbol fonts, where no fonts are defined(poi-developers)
  • add52658 - support mergin table cells in XSLF(poi-developers)
  • addvalidate row number and column index in SXSSF when creating new rows / cells(poi-developers)
  • ed evaluation of blank cells in COUNTIF(poi-developers)
  • support changing external file references in HSSFWorkbook(poi-developers)
  • support external references in FormulaRenderer(poi-developers)
  • avoid exception when matching shared formula records in HSSF(poi-developers)
  • Added methods to set/get an XWPFRun's text color(poi-developers)
  • Added methods to set/get vertical alignment and color in XWPFTableCell(poi-developers)
  • Added methods to get/set a table row's Can't Split and Repeat Header attributes in XWPF(poi-developers)
  • Added methods to set table inside borders and cell margins in XWPF(poi-developers)
  • Support DConRefRecord in HSSF(poi-developers)
  • added an option to ignore missing workbook references in formula evaluator(poi-developers)
  • addValidate address of hyperlinks in XSSF(poi-developers)
  • Relax the M4.1 constraint on reading OOXML files, as some Office produced ones do have 2 Core Properties, despite the specification explicitly forbidding this(poi-developers)
  • add52462 - Added implementation for SUMIFS()(poi-developers)
  • addPOIXMLPropertiesTextExtractor support for extracting custom OOXML properties as text(poi-developers)
  • Support writing XWPF documents with glossaries (Glossaries are not yet supported, but can now be written out again without changes)(poi-developers)
  • Handle files which have been truncated by a few bytes in NPropertyTable(poi-developers)
  • Update CellDateFormatter to handle times without seconds(poi-developers)
  • Support ?/? as well as #/# fractions, and tighten DataFormatter rules for fraction matching(poi-developers)
  • Updated XWPF table example code (poi-developers)
  • Support for WORKDAY and NETWORKDAYS functions(poi-developers)
  • Merge the logic between the TEXT function and DataFormatter(poi-developers)
  • Correctly support excel style date format strings in the TEXT function(poi-developers)
  • XSSFExcelExtractor should format numeric cells based on the format strings applied to them(poi-developers)
  • Event based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler(poi-developers)
  • Avoid exception when creating cell style in a workbook that has an empty xf table(poi-developers)
  • ed XSSFSimpleShape to set rich text attributes from XSSFRichtextString(poi-developers)
  • enhanced SheetUtil.getColumnWidth(poi-developers)

New in Apache POI 3.8 Beta 4 (Aug 30, 2011)

  • 51678 - Extracting text from Bug51524.zip is slow(poi-developers)
  • 51671 - HWPFDocument.write based on NPOIFSFileSystem throws a NullPointerException(poi-developers)
  • support for tables and hyperlinks in XSLF(poi-developers)
  • 51535 - correct signed vs unsigned short reading in NDocumentInputStream(poi-developers)
  • 51634 - support SXSSF streaming from templates(poi-developers)
  • initial support for XSLF usermodel API(poi-developers)
  • 51187 - fixed OPCPackage to correctly handle self references(poi-developers)
  • 51635 - Improved performance of XSSFSheet#write(poi-developers)
  • 47731 - Word Extractor considers text copied from some website as an embedded object(poi-developers)
  • Add Word-to-Text converter and use it as replacement for WordExtractor(poi-developers)
  • 51604 - replace text fails for doc ( poi 3.8 beta release from download site )(poi-developers)
  • Fixed incorrect encoding of non-breaking space (0xA0) in SXSSF(poi-developers)
  • Support for conditional formatting in XSSF(poi-developers)
  • Support isRightToLeft and setRightToLeft on the common spreadsheet Sheet interface, as per existing HSSF support(poi-developers)
  • 50209 - Fixed evaluation of Subtotals to ignore nested subtotals(poi-developers)
  • 44431 - HWPFDocument.write destroys fields(poi-developers)
  • 50401 - fixed EscherProperty to return property name instead of 'unknown' for complex properties (poi-developers)
  • Initial support for endnotes and footnotes in HWPF(poi-developers)
  • 51470 - avoid exception when cloning XSSF sheets with background images(poi-developers)
  • 51481 - Fixed autofilters in HSSF to avoid warnings in Excel 2007(poi-developers)
  • 51533 - Avoid exception when changing name of a sheet containing shared formulas(poi-developers)
  • Support for appending images to existing drawings in HSSF(poi-developers)
  • Initial support for bookmarks in HWPF(poi-developers)
  • 46250 - Fixed cloning worksheets with images(poi-developers)
  • 51524 - PapBinTable constructor is slow (regression)(poi-developers)
  • 51514 - allow HSSFObjectData to work with both POIFS and NPOIFS(poi-developers)
  • 51514 - avoid NPE when copying nodes from one HSSF workbook to a new one, when opened from NPOIFS(poi-developers)
  • 51504 - avoid NPE when DefaultRowHeight or DefaultColumnWidth records are missing(poi-developers)
  • 51502 - Correct Subtotal function javadoc entry(poi-developers)
  • Support for hyperlinks in SXSSF(poi-developers)
  • 49933 - Word 6/95 documents with sections cause ArrayIndexOutOfBoundsException(poi-developers)
  • 51469 - XSSF support for row styles, to match existing HSSF functionality(poi-developers)
  • 51476 - Correct XSSF cell formatting in HTML export(poi-developers)
  • 51486 - XWPF support for adding new footnotes(poi-developers)
  • 48065 - Problems with save output of HWPF (losing formatting)(poi-developers)
  • 47563 - Exception when working with table(poi-developers)
  • 47287 - StringIndexOutOfBoundsException in CharacterRun.replaceText()(poi-developers)
  • 46817 - Regression: Text from some table cells missing(poi-developers)
  • Add getOverallRange() method to HWPFDocumentCore(poi-developers)
  • PAPX referenced outside of TextPiecesTable are ignored now and not loaded(poi-developers)
  • Fix main part range (and section) detection for files with additional parts (like footers/headers).(poi-developers)
  • Fix wrong TextPiece parsing in very rare cases like Bug33519.doc(poi-developers)
  • Inner tables are correctly supported(poi-developers)
  • Allow user to retrieve Table nesting level (based on file information)(poi-developers)
  • Functionality of internal tool HWPFLister is greatly improved, including output of document PAPX and paragraphs(poi-developers)
  • Expand Word structures definitions (TAP, PAP, TLP, etc) based on official documentation(poi-developers)
  • Add Excel-to-HTML converter (2007 versions)(poi-developers)
  • Add Word-to-HTML converter (95-2007 versions)(poi-developers)
  • Skip wrong-type SPRMs when characters SPRM is expected(poi-developers)
  • Add toStrings() methods to internal HWPF structures: BorderCode, PAPX, Paragraph, PieceDescriptor, Section, SEPX, SprmOperation, TextPiece etc.(poi-developers)
  • 51474 - SXSSF handling for null strings(poi-developers)
  • 48294 - Fixed HSSFWorkbook.setSheetOrder() to respect inter-sheet references (poi-developers)
  • 51448 - Avoid exception when evaluating workbooks with more than 256 sheets (poi-developers)
  • 51458 - Correct BitField wrapping when setting large values(poi-developers)
  • 51460 - Improve HSSF performance when loading very long rows, by switching the CellValue array to an iterator(poi-developers)
  • 51444 - Prevent corrupted output when saving files created by LibreOffice 3.3 (poi-developers)
  • 51422 - Support using RecalcIdRecord to trigger a full formula recalculation on load (poi-developers)
  • 50474 - Example demonstrating how to update Excel workbook embedded in a WordprocessingML document (poi-developers)
  • 51431 - Avoid IndexOutOfBoundException when removing freeze panes in XSSF (poi-developers)
  • 48877 - Fixed XSSFRichTextString to respect leading and trailing line breaks (poi-developers)
  • 49564 - Fixed default behaviour of XSSFCellStyle.getLocked() (poi-developers)
  • 48314 - Fixed setting column and row breaks in XSSF(poi-developers)
  • 51424 - Ignore exceptions in ParagraphSprmUncompressor(poi-developers)
  • 51415 - Fixed Workbook.createSheet(sheetName) to truncate names longer than 31 characters(poi-developers)
  • 51332 - Fixed internal IDs of shapes generated by HSSFPatriarch when there are more than 1023 drawing objects (poi-developers)
  • 48408 - Improved documentation for Sheet.setColumnWidth (poi-developers)
  • 51390 - Added handling of additional properties to HWPF ParagraphSprmCompressor(poi-developers)
  • 51389 - Support for sprmPJc paragraph SPRM in HWPF(poi-developers)
  • 48469 - New Case Study for POI web site (poi-developers)
  • 50681 - Avoid exceptions in HSSFDataFormat.getDataFormatString() (poi-developers)
  • 50681 - Fixed autosizing columns beyond 255 character limit (poi-developers)
  • 51374 - Fixed incorrect setting of lastPrinted OOXML core property (poi-developers)
  • 51351 - Word to XSL-FO converter(poi-developers)
  • 50458 - Fixed missing shapeId in XSSF drawings (poi-developers)
  • 51339 - Fixed arithmetic rounding in formula evaluation (poi-developers)
  • 51356 - Support autoSizeColumn in SXSSF(poi-developers)
  • 51335 - Parse picture goal and crop sizes in HWPF(poi-developers)
  • 51305 - Add sprmTCellPaddingDefault support in HWPF(poi-developers)
  • 51265 - Enhanced Handling of Picture Parts in XWPF(poi-developers)
  • 51292 - Additional HWPF Table Cell Descriptor values(poi-developers)

New in Apache POI 3.7 (Aug 30, 2011)

  • OOXML:
  • support for reading aes-encrypted/write-protected ooxml files
  • support Java 1.5 in auto-generated xmlbeans for ooxml schemas
  • Spreadsheet (Excel):
  • initial support for autofilters
  • support for data validation for ooxml format
  • initial support for themes for ooxml format
  • added implementation for new functions: RANDBETWEEN, POISSON, SUBTOTAL, TEXT, TRUNC
  • support evaluation of indirect defined names in INDIRECT
  • numerous fixes and performance optimizations in the Formula Evaluation module
  • ability to add, modify and remove series from HSSF Charts
  • numerous improvements in the cell data formatter (handling more formatting rules, better color detection, allow overriding of default locale)
  • more examples including a rich "spreadsheet to HTML" converter
  • Document (Word):
  • initial support for the HWPF revision marks authors list
  • support for border codes in HWPF
  • support for processing of symbols in HWPF
  • support sections in Word 6 and Word 95 files
  • improved reading of auto-saved ("complex") documents in HWPF
  • improved support for manipulation of tables and paragraphs in XWPF
  • SlideShow (PowerPoint):
  • allow editing workbooks embedded into HSLF slide shows
  • Text Extraction:
  • support for text extraction from XSLF tables
  • add PublisherTextExtractor support to extractorfactory
  • support attachments as embedded documents within the new OutlookTextExtactor
  • new event based XSSF text extractor (XSSFEventBasedExcelExtractor)
  • make it easier to tell which content types each POIXMLTextExtractor handles
  • paragraph level as well as whole-file text extraction for word 6/95 files

New in Apache POI 3.5 Beta 5 (May 18, 2009)

  • 47089 - Fixed XSSFWorkbook.createSheet to properly increment sheetId(POI-DEVELOPERS)
  • 46568 - Fixed XSLFPowerPointExtractor to properly process line breaks(POI-DEVELOPERS)
  • 39056 - Fixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream(POI-DEVELOPERS)
  • 47054 - Fixed cloneStyleFrom to avoid exception when cloning styles of the same family(POI-DEVELOPERS)
  • 46186 - Fixed Sheet to read GutsRecord in the Sheet(RecordStream rs)(POI-DEVELOPERS)
  • 46714 - Automatically call sheet.setAlternativeExpression when sheet.setRowSumsBelow is called (POI-DEVELOPERS)
  • 46279 - Allow 255 arguments for excel functions in XSSF (POI-DEVELOPERS)
  • 47028 - Fixed XSSFCell to preserve cell style when cell value is set to blank(POI-DEVELOPERS)
  • 47026 - Avoid NPE in XSSFCell.setCellType() when workbook does not have SST(POI-DEVELOPERS)
  • 46987 - Allow RecordFactory to handle non-zero padding at the end of the workbook stream(POI-DEVELOPERS)
  • 47034 - Fix reading the name of a NameRecord when the name is very long(POI-DEVELOPERS)
  • 47001 - Fixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs(POI-DEVELOPERS)
  • 46973 - Fixed defined names to behave better when refersToFormula is unset(POI-DEVELOPERS)
  • 46832 - Allow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF(POI-DEVELOPERS)
  • 46951 - Fixed formula parser to better handle range operators and whole row/column refs.(POI-DEVELOPERS)
  • 46948 - Fixed evaluation of range operator to allow for area-ref operands(POI-DEVELOPERS)
  • 46918 - Fixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format(POI-DEVELOPERS)
  • 46898 - Fixed formula evaluator to not cache intermediate circular-reference error results(POI-DEVELOPERS)
  • 46917 - Fixed PageItemRecord(SXPI) to allow multiple field infos(POI-DEVELOPERS)
  • 46904 - Fix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files(POI-DEVELOPERS)
  • 46840 - PageSettingsBlock should include HEADERFOOTER record(POI-DEVELOPERS)
  • 46885 - update cell type when setting cached formula result in XSSFCell(POI-DEVELOPERS)
  • added modifiers for anchor type to XSSFClientAnchor(POI-DEVELOPERS)
  • 46772 - support built-in data formats in XSSFDataFormat(POI-DEVELOPERS)
  • 46719 - fixed XSSFSheet.shiftRows to correctly preserve row heights(POI-DEVELOPERS)
  • 46715 - preserve custom column widths across re-serialization of XSSFWorkbook(POI-DEVELOPERS)
  • 46703 - added setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet(POI-DEVELOPERS)
  • 46708 - added getMergedRegion(int) to common interface org.apache.poi.ss.usermodel.Sheet(POI-DEVELOPERS)
  • fixed Sheet.autoSizeColumn() to use cached formula values when processing formula cells (POI-DEVELOPERS)
  • Fixed formula parser to handle names with backslashes(POI-DEVELOPERS)
  • 46660 - added Workbook getHidden() and setHidden(boolean)(POI-DEVELOPERS)
  • 46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX(POI-DEVELOPERS)
  • 46627 - Fixed offset of added images if Pictures stream contains pictures with zero length(POI-DEVELOPERS)

New in Apache POI 3.5 Beta 4 (Dec 3, 2008)

  • Fixed FormulaRecordAggregate to gracefully ignore extra StringRecords(POI-DEVELOPERS)