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)