Apache POI Changelog

What's new in Apache POI 3.12

May 12, 2015
  • Initial XWPFStyles support for working with default document paragraph and run styles
  • fix 57889 - Fix potential NPE in XWPFParagraph.getNumFmt()
  • fix If an empty file or stream is given to WorkbookFactory.create, give a more informative exception - EmptyFileException
  • fix 57552 - Sort PackagePart returns from OPCPackage by name considering numbers in filenames, so Image10.png comes after Image9.png, fixing problems with XSLF adding 10+ images to a slide
  • fix 57880 - Handle >32,767 cell styles and formats in XSSF (file format limit is 64,000)
  • add 57593 - Allow WorkbookFactory.create methods to open xlsx files protected with the default password
  • add 57593 - Add overloaded WorkbookFactory.create methods which take the spreadsheet password
  • fix 57666 - When removing a SXSSF sheet, ensure temp files associated with it are disposed of
  • fix 57826 - If a XSSF shape has a buFont but no bullet character, mirror Excel and treat as un-bulleted
  • fix 57642 - Fix setSheetName with ISERROR on XSSF
  • add 57747 - Add ISERR() function
  • fix 57829 - Avoid XmlValueDisconnectedException when removing a XWPFRun from a XWPFParagraph by removing from IRuns as well
  • fix 57851 - Skip null properties in PropertyTableBase, which is how PropertyFactory reports unsupported POIFS properties
  • fix 57820 - Avoid NPE on HSLF Tables with a top position of -1
  • fix 56579 - Throw exception if max string length of 32767 chars is exceeded in XSSF and SXSSF.
  • fix 55386 - Fix handling of bold formatting in example application 'ToHtml'
  • fix 47304 - Use fixed encoding when extracting text in WordDocument
  • fix 56017 - Fix shifting comments with shifted rows
  • fix 56295 - Fix cloning of styles across workbooks and handling of default value of attribute applyFill
  • fix 56380 - Remove limitation of 1024 comments per Workbook
  • fix 56467 - Fix cloning of sheets with pictures
  • add More helpful ExtractorFactory exception if given a Visio VSDX ooxml file
  • fix 56799 - Include CTTblGrid in the smaller poi-ooxml-schemas jar
  • fix 57165 - Avoid PartAlreadyExistsException when removing/cloning sheets
  • fix 56893 - Additional check for supported string-length to avoid creating broken XLS files later one
  • fix When saving an OPCPackage with no Core Properties (eg from Jasper Reports), ensure they are always added even if not yet used
  • fix github-18 - Handle documents with a picture-only header
  • fix 57622 - Change from XMLEventFactory.newFactory to XMLEventFactory.newInstance, for IBM JDK Compatibility

New in Apache POI 3.11 (Dec 22, 2014)

  • Added workarounds to tests for JDK 6 LineBreakMeasurer bug
  • fix 57250 - XMLSlideShow.setSlideOrder() produces corrupted CTSlideIdList
  • fix 57272 - Deadlock on corrupted PPT file
  • fix XML signatures - ignore line breaks in Office 2007 .rels files
  • add Basic text extractor for older Excel 5 and 95 formats
  • add Basic text extractor for very old Excel formats such as Excel 4 (Biff4)
  • fix ClassCastException in validating xml signatures due to missing xml beans resources
  • fix 57164 - XSSFDrawing.createCellComment() does not honor dx and dy values passed in
  • add 55967 - Picture method to resize with different scales in width and height
  • add github-7 - Add Cell.removeHyperlink() for HSSF and XSSF

New in Apache POI 3.11 Beta 3 (Nov 19, 2014)

  • 57003 - Implement FIXED function
  • add github-7 - Form check box extraction with XWPFWordExtractor
  • add github-11 - Add Sheet.getDataValidations() for HSSF and XSSF
  • add github-12 - Add Comment.getClientAnchor() for HSSF and XSSF
  • fix 57185 - Correct naming from "Serie" to "Series"
  • fix 57176 - Include CTDefinedNamesImpl in the smaller poi-ooxml-schemas jar
  • fix 57162 - Could not open macro enabled xlsm file after writing using POI3.11beta2 version
  • add 57010 - Add implementation of function PROPER
  • fix 57166 - Add missing HSSFWorkbook constructor javadocs
  • add 57151 - And documentation and validation in CellRangeAddress to prevent invalid row/column combinations
  • add 55164 - Support for adding slide notes
  • fix 57143 - Javadocs and throws clause for WorkbookUtil
  • add 54542 - Add support for cropped images in XSLFPictureShape.drawContent()
  • add added ooxml-security-1.0 to the maven artifacts
  • fix 55864 - XSSFImportFromXML.importFromXML() does not support optional elements
  • fix 56835 - Unreadable content when adding multiple comments to cell
  • add SheetUtil.getCellWithMerges for getting a cell at a co-ordinate, or the primary one of it's merged region if it's a merged cell
  • add 56836 - XML signature support
  • fix 57080 - IndexOutOfBoundsException in poi decryptor
  • add The minimum Apache Ant version required to build has been increased to 1.8.x or later
  • add 56956 - Add a NPOIFSFileSystem constructor with a FileChannel and the read-only option
  • fix 56914 - XSSFRowShifter.updateConditionalFormatting throws IOOBE when there are more than 1 CTConditionalFormatting
  • fix 56913 - Replace usages of o.a.p.util.ArrayUtil.copyOf* methods with replacements from j.u.Arrays
  • fix 51483 - XSSF locking of specific features not working
  • fix 48195 - Formulas: Fix incorrect evaluation of IF() with ROW()/COLUMN() as else-result.
  • fix 55280 - XSSF: Greatly improve performance of shifting rows in sheets with many merged regions.
  • fix 51222 - XSSFColor.getARGBHex() returns wrong color for Excel 2007 xlsx file
  • fix 56730 - Fix exporting XML if schema contains ref-elements
  • fix 56864 - XWPFLatentStyles.isLatentStyle always returns true if there is at least 1 lsdException
  • fix 56854 - XMLBeans performance when using getXXXList() and other proxy methods

New in Apache POI 3.11 Beta 2 (Aug 23, 2014)

  • Changes:
  • This release fixes two security issues with OOXML:
  • Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529).
  • 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).
  • Please note: You should use xmlbeans-2.6.jar (as shipped with this release) instead of the xmlbeans-2.3.jar version from the 3.10-FINAL release to work around CVE-2014-3574. If you have an alternate XML parser like Apache Xerces in classpath, be sure to use a recent version! Older versions are likely to break on setting required security features.
  • Other notable changes in this release are:
  • Switch from dom4j to JAXP: dom4j is no longer a dependency of Apache POI, it solely uses xmlbeans-2.6.jar and the DOM implementation as shipped by the JDK.
  • For XSLF Pictures, provide a way to get the URI of externally linked pictures
  • Provide a helpful exception, XLSBUnsupportedException, if XSSFWorkbook is passed a .xlsb 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.11 Beta 1 (Aug 5, 2014)

  • fix 55196 - Correct XWPF createTOC handling of short style names
  • fix 55050 - If the start+end row and cell are the same on an AreaPtg, avoid inverting the relative flag
  • fix 54725 - HWPF where no parent style CHP exists, use an empty set when processing the style to avoid a NPE
  • fix 56502 - When shifting XSSF rows with formula cells, if the formula can't be parsed, log + leave it unchanged rather than failing
  • fix 56527 - Avoid NPE from XSSFHyperLink when setting the cell it references on a new link
  • fix 53984 - If an unsupported BofRecord is found for a sheet, warn and skip rather than breaking
  • fix 53984 - Support the ColInfoRecord coming after the cells, rather than before as is normal
  • fix 56132 - Allow XSSF formula evaluation to also skip missing external workbook references, if requested, in line with existing HSSF support
  • add 56020 - XSSF support for creating Pivot Tables
  • add 55906 - Formula Evaluator support for multi-sheet references for those functions which support them, eg SUM(Sheet1:Sheet3!A1:B2)
  • add 56023 - 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
  • fix 56194 - HPSF thumbnail format tags are Int not UInt
  • fix 56735 - Allow a system wide setting of where Temp files (eg for SXSSF) go, via TempFile / TempFileCreationStrategy
  • fix 56683 - Have XMLBeans request UTF-8 for strings by default, to avoid issues on the odd platform where that isn't already the case
  • fix 54443 - Correct HSSFOptimiser logic for the case where the to-keep style wasn't previously in use
  • add 56737 - XSSF support for evaluating formula references to other Workbooks
  • fix 56688 - Fix border cases in EDATE function: handle RefEval and BlankEval and also return #VALUE, not #REF in case of error
  • add 56744 - Initial support for XSSF External Links tables, which hold references to other workbooks referenced by formulas and names
  • fix 56702 - If a cell is of type numeric but has an empty tag, return as 0
  • fix 56537 - Make Workbook be Closeable, so you can call close() to explicitly free the file based resources when you're done
  • fix 54771 - Read text from SDTs at the table cell level, including (sometimes) Cover Page, Table of Contents and Bibliography
  • fix 56556 - Change how ColumnHelper finds CTCol instances, to speed up the more common use case when most are wanted for reading
  • fix 56572 - HSSFCell should follow XSSF, and allow setting a null-style to return to the default style
  • fix 56563 - Fix multithreading bug when reading 2 similar files
  • fix 53691 - Fix a copy/paste error in CFRuleRecord.clone()
  • fix 56170 - Fix a problem with cells in workbooks becoming disconnected
  • fix 56514 - Add missing null-check if simple shape does not
  • fix 56325 - Bug 54400 introduced a problem when removing a sheet with named ranges
  • fix 47251 - NoteRecord can sometimes be double-padded if there's no author set
  • fix 54034 - Handle date format strings in an iso8601 style format, with a T in them
  • fix 56274 - Correct SXSSF writing of tables when creating from a template
  • fix 56468 - Writing a workbook more than once corrupts the file
  • fix 53983 - Outlook sometimes stores a codepage of ANSI when it means 1252, detect and alias
  • add 56486 - Add XOR obfuscation/decryption support to HSSF
  • add 56269 - DateFormat - Rounding of fractionals
  • fix 56482 - 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 Add NPOIFS in-place write support, including updating the contents of existing entries
  • add Complete NPOIFS write support
  • fix 56447 - NPOIFS fixes for 2+gb files loaded via File (InputStream is limited to 2gb due to ByteBuffer limits)
  • fix 56450 - Avoid a NPE if a comment has no associated NoteRecord (but we still don't know where it belongs)
  • fix 56437 - Streaming write support in NPOIFS
  • fix 56315 - Fix floating point rounding problems with ROUND function
  • fix 55594 - Fix SXSSF encodings on EBCIDIC platforms, by setting the required encoding explicitly
  • fix 56278 - Support loading .xlsx files with no Styles Table
  • fix 56195 - Replace System.err in XSSFSheetXMLHandler with propert logging
  • fix 56169 - Fix NPE during export to XML with xs:all
  • fix 55923 - Fix compare/sorting of nodes in exported XML
  • fix 55926 - Handle numeric formula values when exporting to XML
  • fix 55927 - Handle date types when exporting to XML
  • add Stop being compatible to JDK 1.5, we now require JDK 6
  • fix 56011 - Use default style if the cell style attribute is not present
  • add Upgrade third party libs to latest versions: commons-logging, commons-codec, log4j
  • fix 56260 - 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 56075 - Add Change Tracking support to XWPF
  • add 56077 - Add password hash function to HWPF
  • add 56076 - Add document protection with password support to XWPF
  • fix 55026 - Support OOXML ContentTypes which include parameters
  • fix 55732 - PPT can't open, fails with "Couldn't instantiate ... StyleTextProp9Atom"
  • fix 56138 - HSPF code page strings can be zero length
  • add 53130 - SXSSF Shared Strings option support
  • fix 55902 - Mixed fonts issue with Chinese characters (unable to form images from ppt)
  • add 56022 - XSSF Event Text Extractor header/footer support
  • fix 53282 - Hyperlink with a non-breaking space throws java.lang.IllegalStateException
  • fix 55802 - Special Letters not exported correct
  • add Expose the StyleIndex of HWPF CharacterRuns
  • fix 51891 - Fix StringIndexOutOfBoundsException : Ole10Native. (parsing word file)

New in Apache POI 3.10 (Apr 3, 2014)

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

New in Apache POI 3.8 Beta 5 (Jan 4, 2012)

  • fixed XSSFSimpleShape to set rich text attributes from XSSFRichtextString(poi-developers)
  • fix52314 - enhanced SheetUtil.getColumnWidth(poi-developers)