Search Apache POI

History of Changes

RSS

Version 3.13 (2015-09-25)

  • add 58216 - provide picture-shape resize that maintains the aspect ratio
  • add 57925 - Add a simple fix to avoid an NPE when Workbooks have invalid external references
  • add 57915 - Fix Dev2Hex for numbers larger than Integer.MAX_VALUE and less than Integer.MIN_VALUE
  • add 57890 - Add support for different datatypes in XSSFImportFromXML
  • add 58207 - Provide user access to the original image dimensions
  • add 58245 - Workbook support for iterating over Sheets
  • fix 58353 - Return correct value in Match-Function with match-type == -1
  • fix 58315 - Avoid NPE for RichTextString without font-details
  • fix 53275 - XSSFFont: reset indexed color flag when setting a non-indexed color
  • fix 58039 - Make DGet and DMin function implementations thread-safe
  • fix Fix DAYS360 handling for US/EU method
  • fix 58254 - CellFormatResult.text should check for nulls as per the javadoc
  • fix 58260 - Fix checks for limit on number of styles in XSSF/SXSSF, fix more than 32k styles in SXSSF workbooks
  • fix 58262 - ReadOnlySharedStringsTable now handles workbooks with an empty SST part
  • fix 52111 - Intersection formulae are now supported in XSSF
  • fix 58253 - CellReference upper-case check for #REF!, and javadoc improvements
  • fix 58252 - More CellReference unit testing coverage
  • fix 54938 - Throw InvalidFormatException as documented instead of IllegalArgumentException in WorkbookFactory.create()
  • fix 58237 - When adding a picture to a XWPF header or footer, attach it to the right part
  • fix 58220 - Improve the javadocs for XSSFFont and Font getFontHeight methods
  • fix 56479 - Don't hardcode dcterms as namespace alias in the attribute, but expect the actual alias that is used in the corresponding element
  • fix 56519 - XSLFSlide.draw is not working with text embeded in PPTX
  • fix 58205 - getSlideMasters() returns the master slides in the incorrect order
  • fix 57786 - XSLFFreeformShape ignores quadratic bezier curves
  • fix 58206 - provide a mechanism to find slide layouts by name
  • fix 58204 - STYLE: ShapeContainer interface makes internal getShapesList() redundant
  • add 58190 - The current picture handling uses raw integers for types and index, replace with enum and reference
  • fix 58203 - Apparently Maven uses plurals for all artifacts except javadocs, so tweak our naming to make it happy
  • add 58193 - Use input stream rather than byte array for checksum etc.
  • add 58200 - SXSSF support for evaluating formula cells, provided the cell and all its references are within the current window
  • fix 58098 - Avoid NPE in cleanup if NPOIFSFileSystem is opened on a locked File under Windows
  • add Merged common_sl branch to trunk
  • fix 57571 - Fix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
  • fix 58175 - Fix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
  • fix 58156 - Possible data corruption in hasPOIFSHeader and hasOOXMLHeader
  • add 57484 - Allow processing of non-OOXML core namespace packages
  • add 58130 - Conditional Formatting support for DataBars, Icon Sets / Multi-States, and Color Scales

Version 3.13-beta1 (2015-07-23)

  • add 56791 - The default POIFS implementation has been switched to NPOIFS. If you request a POIFSFileSystem, you will now get a NPOIFSFileSystem-based one. OPOIFSFileSystem remains for those who still want the old implementation
  • add 58138 - Conditional Formatting support for the common Color class, in addition to previous color shorts
  • fix 58133 - Agile encryption - wrong checksum calculation
  • fix 58113 - Regression: NullPointerException when setting cell value to null
  • add 57893 - Add a method for obtaining all merged regions on a worksheet. This is faster for XSSFSheet than obtaining each individually by iteration.
  • add 58036 - Add basic support for VBA macro-enabled workbooks (xlsm)
  • fix 57744 - Fix parsing the email submission data when id contains a hyphen
  • fix 57678 - Better handle years in mail-messages between 1980 and 1999
  • fix 54332 - WMF extraction failing in Tika for older PowerPoint Files
  • add 56865 - Limit number of bytes (by counting them) while opening office docs
  • add 50090 - zip bomb prevention
  • fix 58069 - Biff8RC4 xorShort returns wrong value for unsigned shorts
  • fix 56420 - Fix possible NullPointerException when empty cell is included in Sumif calculation
  • fix 58040 - Log Forging
  • fix 56328 - Improve AreaReference to take account of the spreadsheet format version when determining whether a reference is whole-column.
  • fix 57963 - Fix and verify in CI builds that we can compile most examples without requiring scratchpad-jar, update documentation.
  • fix 53109 - Correctly handle unicode strings in NameCommentRecord
  • add 57904 - Automatically verify that the resulting source-packages can be built
  • fix 57512 - Fix potential NPE in DateUtil for invalid dates
  • fix 57889 - Fix potential NPE in XWPFParagraph.getNumFmt()
  • fix 57951 - Use BigDecimal in some cases in DataFormatter.formatRawCellContents, to avoid rounding problems on JDK8
  • fix 55410 - Use specific ID value which prevents Excel from turning comments into giant curved arrows

Version 3.12 (2015-05-11)

  • add Initial XWPFStyles support for working with default document paragraph and run styles
  • 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

Version 3.12-beta1 (2015-02-28)

  • fix 57459 - Add method in SXSSFSheet to directly set row OutLineLevel
  • fix 57456 - Add workaround to read empty SSTRecord where Excel puts random number in unique-strings-count-field
  • fix 57535 - Add POI-specific error codes to FormulaError
  • add Start on common interfaces for Paragraphs and Character Runs for HWPF and XWPF
  • add Double Strikethrough support for XWPF runs, along the lines of the HWPF support
  • fix 57482 - Handle XSSF .xlsx files with no shared strings table in read-only mode
  • fix ExtractorFactory opening of OPCPackage from File should be read-only by default, as text extracting will never change things
  • add XSSFSheet support for getDrawingPatriarch(), alongside the existing createDrawingPatriarch() method
  • fix TIKA-1515 - Handle Excel 3 files with a 0x8001 codepage
  • add 53453 - Add methods to set margins in sections of HWPF documents
  • fix 46898 - XSSF: Return #VALUE! for circular references.
  • fix 46192 - Add methods to query outline level for HSSF and XSSF
  • fix 56240 - Handle PP97_DUALSTORAGE streams
  • fix 47261 - SlideShow.removeSlide makes PPT corrupted
  • add 49541 - Mapping of symbol characters to unicode equivalent
  • add 54541 - Add support for cropped images in Slide.draw()
  • add 57007 - Add initial implementations of DMIN and DGET functions
  • add Support for Office Binary Document RC4 CryptoAPI Encryption for HSLF
  • add 57195 - Support for Office Binary Document RC4 Encryption
  • fix 57373 - Fix get/setFirstVisibleTab() for XSSFWorkbook
  • fix 57362 - Properly initialize chart-axis datastructure when loading a spreadsheet which already contains one.
  • fix 56511 - Fix NullPointerException for RichText strings with no formatting for some runs.
  • add 56550 - Avoid IBM JDK fail immediately during loading some POI classes, note: IBM JDK 1.7 or higher is needed because of XML APIs.
  • add 56595 - Switch the cache in DateUtil.isADateFormat() to ThreadLocals to not have another syncpoint here.
  • fix 56644 - NullPointerException in XSSFCell Constructor with different MissingCellPolicy
  • fix 56888 - XSSFDataValidation ignores "allow blank" read from sheet, assumes true
  • fix 57171 - Adjust the active sheet in setSheetOrder()
  • fix 57163 - Adjust the active sheet in removeSheet()
  • fix 57231 - Add missing ArrayRecord.clone()
  • add Expose the version information from OldExcelExtractor
  • fix 57071 - 3+ XSSF column label names for pivot tables
  • add 57063 - XSSF custom column label names for pivot tables
  • fix 57254 - XWPF: Correctly build internal list of styles when styles are added
  • fix 57312 - XWPF: Add check for null value of underline w:val

Version 3.11 (2014-12-21)

  • fix 57479 - Typo in HSSFWorkbook javadocs and quick-guide.
  • fix 57480 - Fix some unnecessary casts, generics, Eclipse warnings, ...
  • add 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 57171 - Adjust active sheet correctly when sheets are moved.
  • fix 57163 - Adjust active sheet correctly when sheets are removed.
  • 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-13 - Add Cell.removeHyperlink() for HSSF and XSSF

Version 3.11-beta3 (2014-11-11)

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

Version 3.11-beta2 (2014-08-22)

  • fix 56812 - For XSLF Pictures, provide a way to get the URI of externally linked pictures
  • fix 54764 - 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)
  • fix Recommended Apache XMLBeans version increased to 2.6.0 (any version from 2.3.0 or later will work though)
  • fix 56800 - Provide a helpful exception, XLSBUnsupportedException, if XSSFWorkbook is passed a .xlsb file
  • fix 56814 - Switch from dom4j to JAXP

Version 3.10.1 (2014-08-18)

  • fix 54764 - 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)
  • fix 56164 - Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)

Version 3.11-beta1 (2014-08-04)

  • fix 56164 - Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)
  • 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 <v/> 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.<init> (parsing word file)

Version 3.10-FINAL (2014-02-08)

  • 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

Version 3.10-beta2 (2013-09-19)

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

Version 3.10-beta1 (2013-06-28)

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

Version 3.9 (2012-12-03)

  • fix 54188 - Avoid NPE in PPT2PNG
  • fix 52628 - Replace System.err info messages with a POILogger
  • fix 54137 - improved performance of DataFormatter with Fractions
  • fix 54099 - Ensure that CTHMerge and CTTcBorders go to poi-ooxml-schemas jar
  • fix 54111 - Fixed extracting text from table cells in HSLF
  • add 52583 - add support for drop-down lists in doc to html convertion
  • add 52863 - add workaround for files with broken CHP SPRMs
  • fix 53182 - Reading combined character styling and direct formatting of a character run
  • fix 52311 - Conversion to html : Problem in titles number
  • fix 53914 - TableRow#getTopBorder() return bottom's border
  • fix 53282 - Avoid exception when parsing OPC relationships with non-breaking spaces
  • fix 54016 - Avoid exception when parsing workbooks with DConRefRecord in row aggregate
  • fix 54008 - Fixed Ant build to support build directories with blanks
  • fix 53374 - Avoid exceptions when parsing hyperlinks of type "javascript://"
  • fix 53404 - Fixed compatibility bug with modifying xls files created by POI-3.6 and earlier
  • add 53979 - Support fetching properties of Numbered Lists from PPT files
  • add 53784 - Partial HSMF support for fixed sized properties
  • add 53943 - added method processSymbol() to allow converting word symbols
  • fix 53763 - avoid style mess when using HSSFOptimiser
  • fix 52972 - preserve leading / trailing spaces in SXSSF
  • fix 53965 - Fixed XmlValueOutOfRangeExceptio calling getDataValidations for custom validations with XSSFSheet
  • fix 53974 - Avoid NPE when constructing HSSFWorbook on Google App Engine
  • fix 53568 - Fixed null returned by XSSFPicture.getPictureData()
  • fix 53950 - fixed setForceFormulaRecalculation to reset workbook-level "manual" flag
  • fix 52211 - avoid unnessary re-coverting content types to US-ASCII, it can cause exceptions on ibm mainframes
  • fix 53568 - Set shapes anchors in XSSF when reading from existing drawings
  • add HSSFOptimiser will now also tidy away un-used cell styles, in addition to duplicate styles
  • fix 53493 - Fixed memory and temporary file leak in SXSSF
  • fix 53780 - Fixed memory and temporary file leak in SXSSF
  • fix 53380 - ArrayIndexOutOfBounds Excetion parsing word 97 document.
  • fix 53434 - Subtotal is not return correct value.
  • fix 53642 - XLS formula evaluation logging
  • fix 53561 - Unexpected adding of drawings into a workbook
  • fix 53413 - [GSoC] Improved work with shapes. HSSF
  • fix 53361 - feature: enhancements in EscherAggregate
  • fix 53302 - EscherAggregate does not handle Continue records
  • fix 53144 - First comment not cloned after cloneSheet()
  • fix 53028 - Broken auto fit row height in the cells with word wrap
  • fix 53010 - [GSoC2012] Improve drawing support in HSSF
  • fix 52764 - Unmodified cell comments disappear after HSSFWorkbook.write
  • fix 52300 - Corrupted File after cloneSheet()
  • fix 52272 - Inserting images on cloned sheet with images.
  • fix 51796 - The [EscherClientAnchorRecord] for object (eg: TextBox,Shape) may get lost.
  • fix 51683 - [HSSF] Improve support for Shapes and Shape Groups
  • fix 51676 - Using drawingPatriarch.createCellComment(anchor) leads to File error: data may have been lost
  • fix 51675 - Background images cause problems in HSSF spreadsheet
  • fix 51455 - It would be really nice to be able to set the background picture of a comment
  • fix 51341 - Adding Image to Header in Excel Using HSSF
  • fix 51280 - when we insert a new image to the existing excel file that corrupts the previous images
  • fix 50696 - File Error: data may have been lost
  • fix 48989 - If we have a comment but the row is not created we will not be able to get it.
  • fix 48873 - Comments not saving in XLS files with collapsible columns
  • fix 48654 - Not able to read Excel (xls) file having drawing objects
  • fix 48590 - Excel chrashes after using removeCellComment methods
  • fix 46444 - cloning cloned sheet with autofilters corrupts the workbook
  • fix 45129 - Lost picture in file output after saving with POI
  • fix 47624 - File Error Data May Have been Lost error while opening commented workbook(excel file)
  • fix 46143 - setLineStyleColor for comments donot work
  • fix 53699 - Patch to correct BorderStyle enum positions
  • add 53064 - Ugly Duckling case study
  • add 53644 - XLS formula bugfix (CalFieldFunc) + WeekDay addon
  • add 53446 - Fixed some problems extracting PNGs
  • fix 53205 - Fixed some parsing errors and encoding issues in HDGF
  • add 53204 - Improved performanceof PageSettingsBlock in HSSF
  • add 53500 - Getter for repeating rows and columns
  • fix 53369 - Fixed tests failing on JDK 1.7
  • fix 53360 - Fixed SXSSF to correctly write text before escaped Unicode control character
  • add Change HSMF Types to have full data on ID, Name and Length, rather than just being a simple ID
  • add 48469 - Updated case study
  • add 53476 - Support Complex Name in formulas
  • fix 53414 - properly update sheet dimensions when adding column
  • add Add File based constructor to OPCPackage, alongside existing String one (which constructed a File from the string internally)
  • fix 53389 - Handle formatting General and @ formats even if a locale is prefixed to them
  • fix 53271 - Removed unconditional asserts in SXSSF
  • add 53025 - Updatad documentation and example on using Data Validations
  • add 53227 - Corrected AddDimensionedImage.java to support XSSF/SXSSF
  • add 53058 - Utility for representing drawings contained in a binary Excel file as a XML tree
  • add 53165 - HWPF support for fetching the description (alt text) of a picture
  • fix 48528 - support negative arguments to the DATE() function
  • fix 53092 - allow specifying of a TimeZone to DateUtil.getJavaDate(), for when it is known that a file comes from a different (known) timezone to the current machine
  • fix 53043 - don't duplicate hyperlink relationships when saving XSSF file
  • fix 53101 - fixed evaluation of SUM over cell range > 255
  • fix 49529 - avoid exception when cloning sheets with no drawing records and initialized drawing patriarch

Version 3.8-FINAL (2012-03-26)

  • add 52928 - DateFormatConverter: an utility to convert instances of java.text.DateFormat to Excel format patterns
  • fix 52895 - show SSTIndex instead of XFIndex in LabelSSTRecord.toString()
  • fix 52835 - Tolerate missing Count and UniqueCount attributes when parsing shared strings table in XSSF eventusermodel
  • add 52818 - Added implementation for RANK()
  • fix 52682 - allow setting text with trailing carriage return in HSLF
  • fix 52244 - use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type
  • add support setting background color of sheet tab in XSSF
  • add 51564 - support for enforcing fields update in XWPF
  • add 51673 - support grouping rows in SXSSF
  • add 51780 - support replacement of content types in OPC packages
  • fix 52784 - replace ISO control characters with question marks in SXSSF to be consistent with XSSF
  • add 52057 - updated formula test framework to be aware of recently added Functions
  • add 52574 - support setting header / footer page margins in HSSF
  • add 52583 - fixed WorkbookUtil#createSafeSheetName to escape colon
  • add 51710 - fixed reading shared formulas in XSSF
  • add 52708 - misc improvements in CellFormat
  • add 52690 - added a getter for length of encrypted data in Ecma and Agile decryptors
  • fix 52255 - support adding TIFF,EPS and WPG pictures in OOXML documents
  • fix 52078 - avoid OutOfMemoryError when rendering groupped pictures in HSLF
  • fix 52745 - fixed XSSFRichtextString.append to preserve leading / trailing spaces
  • fix 52716 - tolerate hyperlinks that have neither location nor relation
  • fix 52599 - avoid duplicate text when rendering slides in HSLF
  • fix 52598 - respect slide background when rendering slides in HSLF
  • fix 51731 - fixed painting shape outlines in HSLF
  • fix 52701 - fixed seting vertical alignment for XSLFTableCell
  • fix 52687 - fixed merging slides with pictures with associated custom tags
  • add allow runtime registration of functions in FormulaEvaluator
  • fix 52665 - When reading from a ZipFileZipEntrySource that has already been closed, give IllegalArgumentException rather than NPE
  • fix 52664 - MAPIMessage may not always have name chunks when checking for 7 bit encodings
  • fix 52649 - fixed namespace issue in WordToFoConverter
  • fix 52385 - avoid trancated array and vector data when reading OLE properties
  • fix 52662 - CharacterRun NPE fix when fetching symbol fonts, where no fonts are defined
  • add 52658 - support mergin table cells in XSLF
  • add validate row number and column index in SXSSF when creating new rows / cells
  • fix 51498 - fixed evaluation of blank cells in COUNTIF
  • add 52576 - support changing external file references in HSSFWorkbook
  • add 49896 - support external references in FormulaRenderer
  • fix 52527 - avoid exception when matching shared formula records in HSSF
  • add 52568 - Added methods to set/get an XWPFRun's text color
  • add 52566 - Added methods to set/get vertical alignment and color in XWPFTableCell
  • add 52562 - Added methods to get/set a table row's Can't Split and Repeat Header attributes in XWPF
  • add 52561 - Added methods to set table inside borders and cell margins in XWPF
  • add 52569 - Support DConRefRecord in HSSF
  • add 52575 - added an option to ignore missing workbook references in formula evaluator
  • add Validate address of hyperlinks in XSSF
  • fix 52540 - 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
  • add 52462 - Added implementation for SUMIFS()
  • add POIXMLPropertiesTextExtractor support for extracting custom OOXML properties as text
  • fix 52449 - Support writing XWPF documents with glossaries (Glossaries are not yet supported, but can now be written out again without changes)
  • fix 52446 - Handle files which have been truncated by a few bytes in NPropertyTable
  • fix 52438 - Update CellDateFormatter to handle times without seconds
  • add 52389 - Support ?/? as well as #/# fractions, and tighten DataFormatter rules for fraction matching
  • add 52200 - Updated XWPF table example code
  • add 52378 - Support for WORKDAY and NETWORKDAYS functions
  • add 52349 - Merge the logic between the TEXT function and DataFormatter
  • fix 52349 - Correctly support excel style date format strings in the TEXT function
  • fix 52369 - XSSFExcelExtractor should format numeric cells based on the format strings applied to them
  • fix 52369 - Event based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler
  • fix 52348 - Avoid exception when creating cell style in a workbook that has an empty xf table
  • fix 52219 - fixed XSSFSimpleShape to set rich text attributes from XSSFRichtextString
  • fix 52314 - enhanced SheetUtil.getColumnWidth

Version 3.8-beta5 (2011-12-17)

  • fix 52204 - Deprecated XSSFWorkbook(String path) constructor because it does not close underlying .zip file
  • fix 46288 - fixed refcount of Fill pictures in HSLF
  • add 51961 - support compression of temp files in SXSSF
  • add 52268 - support cloning sheets with drawings in XSSF
  • add 52285 - Support XWPF smart tags text in Paragraphs
  • fix 51875 - More XSSF new-line in formula support
  • add POIFS EntryUtils.copyNodes(POFS,POIFS) now uses FilteringDirectoryNode, so can exclude from copying nodes not just directly under the root
  • add POIFS Helper FilteringDirectoryNode, which wraps a DirectoryEntry and allows certain parts to be ignored
  • fix 52209 - fixed inserting multiple pictures in XSLF
  • fix 51803 - fixed HSLF TextExtractor to extract content from master slide
  • fix 52190 - null check on XWPF setFontFamily
  • fix 52062 - ensure that temporary files in SXSSF are deleted
  • fix 50936 - Exception parsing MS Word 8.0 file (as duplicate of 47958)
  • fix 47958 - ArrayIndexOutOfBoundsException from PicturesTable.getAllPictures() during Escher tree walk
  • fix 51944 - PAPFormattedDiskPage.getPAPX - IndexOutOfBounds
  • fix 52032 - HWPF - ArrayIndexOutofBoundsException with no stack trace (broken after revision 1178063)
  • add support for converting pptx files into images with a PPTX2PNG tool
  • add 52050 - Support for the Excel RATE function
  • fix 51566 - HSLF fix for finishing parsing the picture stream on the first non-valid type
  • fix 51974 - Avoid HWPF issue when identifying the picture type
  • fix 52035 - Fix signed issue with very large word 6 files
  • fix 51949 - Avoid NPE on double close of ZipFileZipEntrySource
  • fix 51950 - XWPF fix for footnotes not always being present in a document
  • fix 51963 - Correct AreaReference handling of references containing a sheet name which includes a comma
  • fix 51955 - XSSFReader supplied StylesTables need to have the theme data available
  • fix 51716 - Removed incorrect assert in SXSSFSheet#getSXSSFSheet
  • fix 51834 - Opening and Writing .doc file results in corrupt document
  • fix 51902 - Picture.fillRawImageContent - ArrayIndexOutOfBoundsException (duplicate)
  • fix 51890 - ArrayIndexOutOfBounds ExceptionPicture.fillRawImageContent
  • add Allow the passing of a File object to WorkbookFactory.create, which permits lower memory processing than the InputStream version
  • fix 51873 - update HSMF to ignore Outlook 2002 Olk10SideProp entries, which don't behave like normal chunks
  • fix 51850 - support creating comments in XSSF on an earlier slide when later ones already have them
  • add 51804 - optionally include Master Slide text in XSLF text extraction, as HSLF already offers
  • add New PackagePart method getRelatedPart(PackageRelationship) to simplify navigation of relations between OPC Parts
  • fix 51832 - handle XLS files where the WRITEPROTECT record preceeds the FILEPASS one, rather than following as normal
  • fix 51809 - correct GTE handling in COUNTIF
  • add Add HWPF API to update range text and delete bookmarks
  • add HWPF Bookmarks tables are correctly updated on text updates
  • add 51670 - avoid LeftoverDataException when reading .xls files with invalid LabelRecords
  • add 51196 - prevent NPE in XWPFPicture.getPictureData()
  • add 51771 - prevent NPE when getting object data from OLEShape in HSLF
  • add 51196 - more progress with Chart APi in XSSF
  • fix 51785 - Allow XSSF setForceFormulaRecalculation to work with the minimal ooxml-schemas jar
  • fix 51772 - IllegalArgumentException Parsing MS Word 97 - 2003
  • add XSLFPowerPointExtractor support for including comment authors with comment text
  • fix Converted XSLFPowerPointExtractor to use UserModel for all text extraction
  • add XSLF initial UserModel support for Notes and Comments for Slides
  • add HSLF: support for uncompressed OLE embeddings

Version 3.8-beta4 (2011-08-26)

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

Version 3.8-beta3 (2011-06-06)

  • fix 51098 - Correctly calculate image width/height, if image fits into one cell
  • fix 47147 - Correct extra paragraphs from XWPF Table Cells
  • add 51188 - Support for getting and setting XPWF zoom settings
  • add 51134 - Support for adding Numbering and Styles to a XWPF document that doesn't already have them
  • fix 51273 - Formula Value Cache fix for repeated evaluations
  • add 51171 - Improved performance of SharedValueManager
  • fix 51236 - XSSF set colour support for black/white to match getter
  • add 51196 - Initial support for Spreadsheet Chart API
  • add Add support for OOXML Agile Encryption
  • add 51160 - Initial version of SXSSF, a low memory foortprint API to produce xlsx files
  • fix 51171 - Improved performance of opening large .xls files
  • add 51172 - Add XWPF support for GIF pictures
  • add NPOIFS Mini Streams now support extending the underlying big block stream to fit more data
  • fix 51148 - XWPFDocument now properly tracks paragraphs and tables when adding/removing them
  • fix 51153 - Correct sizing of LbsDataSubRecord with unused padding fields
  • fix 51143 - NameCommentRecord correction for writing non ASCII strings
  • fix 51112 - Correct XWPFTable tracking of new rows
  • fix 51113 - Correct XWPFParagraph tracking of inserted runs
  • fix 51111 - Correct XWPFParagraph tracking of new runs
  • fix 51115 - Handle DataFormatter escaping of "." in the same way as "-" and "/"
  • fix 51100 - Fix IOUtils issue for NPOIFS reading from an InputStream where every block is full
  • fix 50956 - Correct XSSF cell style cloning between workbooks
  • add Add get/setForceFormulaRecalculation for XSSF, and promote the methods to the common usermodel Sheet
  • fix Tweak the logic for sizing the HSSFCells array on a HSSFRow to reduce memory over allocation in many use cases
  • add 49765 - Support for adding a picture to a XSSFRun
  • fix Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features
  • fix 51061 - Correct target URI for new XSSF Tables
  • add Initial support for XSSF Charts. Provides easy access to the underlying CTChart object via the Sheet Drawing, but no high level interface onto the chart contents as yet.
  • fix 50884 - XSSF and HSSF freeze panes now behave the same
  • add Support for adding a table to a XSSFSheet
  • add Improve HSMF MAPIMessage access to the HTML and RTF versions of the message body (where available)
  • add Add new method to HSMF of MAPIMessage.has7BitEncodingStrings() to make it easier to decide when encoding guessing is needed
  • fix OutlookTextExtractor now requests 7 bit encoding guessing
  • add Improve HSMF encoding guessing for 7 bit fields in MAPIMessage
  • add Allow HSMF access to the HTML body contents in MAPIMessage

Version 3.8-beta2 (2011-04-08)

  • add Implement the load method on MemoryPackagePart
  • add 50967 - Support for continued ExtSSTRecords
  • add 48968 - Support for HOUR, MINUTE and SECOND date formulas
  • add Added NPOIFS constructors to most POIDocument classes and their extractors, and more widely deprecated the Document(DirectoryNode, POIFSFileSystem) constructor in favour of the more general Document(DirectoryNode) one
  • fix Fixed NPOIFS handling of new and empty Document Nodes
  • fix Fixed NPOIFS access to Document Nodes not in the top level directory
  • fix 50841 - Improved SpreadSheet DataFormatter to handle scientific notation, invalid dates and format spacers
  • fix 49381 - Correct createFreezePane in XSSF, so that the left row/column matches the documentation + HSSF
  • fix 49253 - When setting repeating rows and columns for XSSF, don't break the print settings if they were already there
  • fix 49219 - ExternalNameRecord support for DDE Link entries without an operation
  • fix 50846 - More XSSFColor theme improvements, this time for Cell Borders
  • fix 50939 - ChartEndObjectRecord is supposed to have 6 bytes at the end, but handle it not
  • add HMEF - New component which supports TNEF (Transport Neutral Encoding Format), aka winmail.dat
  • fix 50313 - support for getting HWPFDocument fields
  • fix 50912 - fixed setting named styles to HSSFCells
  • fix 50779 - fixed RecordFormatException when reading unicode strings with photenic data
  • fix 50718 - More helpful error message when you try to create a CellReference with #REF!
  • fix 50784 - XSSFColors return by XSSFFont now have theme information applied to them
  • fix 50846 - Improve how XSSFColor inherits from Themes
  • fix 50847 - XSSFFont now accepts the full range of Charsets from FontChartset
  • fix 50786 - Speed up calls to HSSFColor.getIndexHash() by returning a cached, unmodifiable Map. HSSFColor.getModifiableIndexHash() provides access to the old (slow but modifiable) functionality
  • fix 47100 - Change related formulas and named ranges when XSSFWorkbook.setSheetName is called

Version 3.8-beta1 (2011-03-07)

  • add 50610 - Ant tasks for running POI against a workbook
  • add 32903 - Correct XBAT chaining explanation in /poifs/fileformat.html
  • add 50829 - Support for getting the tables associated with a XSSFSheet
  • fix 50299 - More XSSFColor updates for ARGB vs RGB
  • fix 50581 - Use stax:stax-api instead of org.apache.geronimo.specs:geronimo-stax-api_1.0_spec
  • fix 50786 - Fix XSSFColor to fetch the RGB values of old-style indexed colours
  • fix 50299 - Fix XSSFColor fetching of white and black background themes
  • fix 50795 - Avoid NPE from xmlbeans when moving XSSF Comments from one cell to another
  • fix 46664 - When creating HSSF Print Areas, ensure the named range is reference based not value based
  • fix 50756 - When formatting numbers based on their Cell Style, treat GENERAL the same as the more typical General
  • fix fixed HSSFWorkbook.createCellStyle to throw exception if the maximum number of cell styles was exceeded
  • fix 50539 - Better fix for html-style br tags (invalid XML) inside XSSF documents
  • add 49928 - allow overridden built-in formats in HSSFCellStyle
  • add 50607 - Added implementation for CLEAN(), CHAR() and ADDRESS()
  • add 50587 - Improved documentation on user-defined functions
  • add Inside ExtractorFactory, support finding embedded OOXML documents and providing extractors for them
  • add Partial HDGF LZW compression support
  • add 50244 - Support for continued NameRecords
  • fix 50416 - Correct shifting of the first or last row in a sheet by multiple rows
  • fix 50440 - Support evaluating formulas with newlines in them, which XSSF may have (but HSSF may not)
  • add Added inline string support to XSSF EventModel
  • fix 50246 - Properly position GutsRecord when reading HSSF workbooks
  • add 48539 - Added implementation for MROUND(), VAR() and VARP()
  • add 50446 - Code cleanup and optimizations to keep some IDE quiet
  • add 50437 - Support passing ranges to NPV()
  • add 50409 - Added implementation for IRR()
  • add 47405 - Improved performance of RowRecordsAggregate.getStartRowNumberForBlock / getEndRowNumberForBlock
  • fix 50315 - Avoid crashing Excel when sorting XSSFSheet autofilter
  • add 50076 - Allow access from XSSFReader to sheet comments and headers/footers
  • add 50076 - Refactor XSSFEventBasedExcelExtractor to make it easier for you to have control over outputting the cell contents
  • fix 50258 - avoid corruption of XSSFWorkbook after applying XSSFRichTextRun#applyFont
  • fix 50154 - Allow white spaces and unicode in OPC relationship targets
  • fix 50113 - Remove cell from Calculation Chain after setting cell type to blank
  • fix 49966 - Ensure that XSSFRow#removeCell cleares calculation chain entries
  • fix 50096 - Fixed evaluation of cell references with column index greater than 255
  • fix 49761 - Tolerate Double.NaN when reading .xls files
  • fix 50211 - Use cached formula result when auto-sizing formula cells
  • fix 50118 - OLE2 does allow a directory with an empty name, so support this in POIFS
  • fix 50119 - avoid NPE when XSSFReader comes across chart sheets

Version 3.7 (2010-10-29)

  • fix 50075 - avoid NPE in ListLevel.getNumberText() when numberText is null
  • fix 50067 - marked commons-logging and log4j as optional dependencies in POI poms
  • add 49928 - allow overridden built-in formats in XSSFCellStyle
  • fix 49919 - support for BorderCode in HWPF
  • fix 49908 - support for processing of symbols in HWPF
  • fix 50022 - support for retrieving pictures from HSSF workbooks
  • fix 50020 - Avoid IllegalStateException when creating Data validation in sheet with macro
  • fix 50033 - Improved rounding in MOD
  • add Generate SHA1 hashes of distribution files, alongside existing MD5 ones

Version 3.7-beta3 (2010-09-24)

  • fix 48325 - If a HSSF header or footer lacks left/right/centre information, assume it is a centre one
  • fix 49966 - Correctly remove calcChain entries for XSSF cells that stop holding formulas
  • add 47582 - XSSFCellStyle support for creating a style in one workbook based on a style from a different one
  • fix 49931 - Avoid concurrency problems when re-ordering multiple HSSF header records for a PageSettingsBlock
  • fix 49765 - Fix XWPFDocument.addPicture so that it correctly sets up relationships
  • fix 48018 - Improve HWPF handling of lists in documents read and then saved, by preserving order better
  • fix 49820 - Fix HWPF paragraph levels, so that outline levels can be properly fetched
  • fix 47271 - Avoid infinite loops on broken HWPF documents with a corrupt CHP style with a parent of itself
  • fix 49936 - Handle HWPF documents with problematic HeaderStories better
  • fix 49933 - Support sections in Word 6 and Word 95 files (HWPFOldDocument)
  • fix 49941 - Correctly handle space preservation of XSSFRichTextRuns when applying fonts to parts of the string
  • fix Correct XWPFRun detection of bold/italic in a paragraph with multiple runs of different styles
  • add Link XWPFPicture to XWPFRun, so that embedded pictures can be access from where they live in the text stream
  • fix Improve handling of Hyperlinks inside XWPFParagraph objects through XWPFHyperlinkRun
  • fix Make XWPFParagraph make more use of XWPFRun, and less on internal StringBuffers
  • add Add a getBodyElements() method to XWPF IBody, to make access to embedded paragraphs and tables easier
  • add More XSLFRelation entries for common .pptx file parts
  • fix 49872 - avoid exception in XSSFFormulaEvaluator.evaluateInCell when evaluating shared formulas
  • fix 49895 - avoid corruption of XSSFWorkbook after removing all merged cells from sheet
  • fix 49907 - fixed inconsistent behaviour between HSSF and XSSF when creating consecutive names
  • add Add getMimeType() method to HWPF Picture, alongside existing file extension
  • add Add code for reading Ole10Native data
  • add Add getMimeType() method to HSSF/XSSF PictureData, alongside existing file extension
  • fix 49887 - allow sheet names longer than 31 chars in XSSF, enforce name uniqueness on the first 31 chars
  • fix 49878 - improved API for hiding sheets
  • fix 49875 - fixed XSSFWorkbook.createSheet to throw exception if sheet name begins or ends with a single quote (')
  • fix 49873 - fixed XSSFFormulaEvaluator to support blank cells
  • fix 49850 - added a getter for _iStartAt in ListFormatOverrideLevel
  • fix 49761 - change cell type to error when setting Double.NaN or Infinities
  • fix 49833 - ensure that CTNumPr is included in poi-ooxml-schemas.jar
  • fix 49841 - fixed LEFT and RIGHT to return #VALUE! when called with a negative operand
  • fix 49783 - fixed evaluation of XSSF workbooks containing formulas with reference errors (#REF!)
  • fix 49751 - fixed fetching names of user defined styles in HSSFCellStyle.getUserStyleName()
  • add 48900 - support for protecting a XSSF workbook
  • fix 49725 - fixed FormulaParser to correctly process defined names with underscore
  • add 48526 - added implementation for RANDBETWEEN()
  • fix 49725 - avoid exception in OperandResolver.parseDouble when input is minus ("-")
  • fix 49723 - fixed OperandResolver to correctly handle inputs with leading decimal place
  • add initial support for Excel autofilter

Version 3.7-beta2 (2010-08-09)

  • add 47990 - Support for .msg attachments within a MAPIMessage .msg
  • fix Improve handling and warnings when closing OPCPackage objects
  • fix 49702 - Correct XSSFWorkbook.getNumCellStyles to check the right styles list
  • add 49690 - Add WorkbookUtil, which provies a way of generating valid sheet names
  • fix 49694 - Use DataFormatter when autosizing columns, to better match the real display width of formatted cells
  • add 49441 - Allow overriding and guessing of HSMF non-unicode string encodings
  • fix 49689 - Allow the setting of user style names on newly created HSSF cell styles
  • add Make it easier to tell which content types each POIXMLTextExtractor handles
  • fix 49649 - Added clone support for UserSView* and Feat* families of records
  • fix 49653 - Support for escaped unicode characters in Shared String Table
  • fix 49579 - prevent ArrayIndexOutOfBoundException in UnknowEscherRecord
  • fix 49593 - preserve leading and trailing white spaces in XWPFRun
  • add 49455 - Insert the content of fldSimple fields into the XWPFWordTextExtractor output
  • fix 49640 - Fixed parsing formulas containing defined names beginning with an underscore
  • add 49538 - Added implementation for POISSON()
  • add 49524 - Support for setting cell text to be vertically rotated, via style.setRotation(0xff)
  • fix 49609 - Case insensitive matching of OOXML part names
  • add 49581 - Ability to add, modify and remove series from HSSF Charts
  • add 49185 - Support for HSSFNames where the comment is stored in a NameCommentRecord
  • fix 49599 - correct writing of noterecord author text when switching between ascii and unicode
  • fix hwpf: improve reading of auto-saved ("complex") documents
  • add paragraph level as well as whole-file text extraction for word 6/95 files through hwpf
  • add text extraction support for older word 6 and word 95 files via hwpf
  • add 49508 - allow the addition of paragraphs to xwpf table cells
  • fix 49446 - don't consider 17.16.23 field codes as properly part of the paragraph's text
  • fix xslfslideshow shouldn't break on .thmx (theme) files. support for them is still very limited though

Version 3.7-beta1 (2010-06-20)

  • fix 49432 - lazy caching of xssfcomment ctcomment objects by reference, to make repeated comment searching faster
  • fix better handling of outlook messages in hsmf when there's no recipient email address
  • fix when formatting numbers with dataformatter, handle brackets following colours
  • add 48574 - further xwpf support for tables, paragraphs, including enhanced support for adding new ones
  • add 48245 - tweak hwpf table cell detection to work across more files
  • add 48996 - initial support for external name references in hssf formula evaluation
  • fix 46664 - fix up tab ids when adding new sheets, so that print areas don't end up invalid
  • fix 45269 - improve replacetext on hwpf ranges
  • fix 47815 - correct documentation on what happens when you request a string from a non-string formula cell
  • fix 49386 - avoid npe when extracting ooxml file properties which are dates
  • fix 49377 - only call decimalformat.setroundingmode on java 1.6 - it's needed to match excel's rendering of numbers
  • fix 49378 - correct 1.6ism
  • add parse the hsmf headers chunk if present, and use it to find dates in text extraction if needed
  • fix 48494 - detect and support time formats like hh:mm;hh:mm
  • fix 48494 - have excelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
  • fix 48494 - have eventbasedexcelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
  • fix 49096 - add clone support to chart begin and end records, to allow cloning of more chart containing sheets
  • add list attachment names in the output of outlooktextextractor (to get attachment contents, use extractorfactory as normal)
  • fix 48872 - allow dateformatter.formatrawcellcontents to handle 1904 as well as 1900 dates
  • fix 48872 - handle mmmmm and elapsed time formatting rules in dataformatter
  • fix 48872 - handle zero formatting rules, and better color detection in dataformatter
  • fix 48872 - support for more kinds of formatting in dataformatter
  • fix 43161 - fixed construction of the dib picture header
  • add 49311 - initial support for reading aes-encrypted/write-protected ooxml files
  • fix 48718 - make the creation of multiple, un-modified fonts in a row in xssf match the old hssf behaviour
  • fix 44916 - allow access to the hssfpatriarch from hssfsheet once created
  • add 48779 - allow you to get straight from a cellstyle to a color, irrespective of if the color is indexed or inline-defined
  • add 48924 - allow access of the hwpf dateandtime underlying date values
  • add 48926 - initial support for the hwpf revision marks authors list
  • fix 49160 - ensure that ctdigsigblob is included in poi-ooxml jar
  • fix 49189 - detect w:tab and w:cr entries in xwpf paragraphs, even when the xsd is silly and maps them to ctempty
  • fix 49273 - correct handling for font character sets with indicies greater than 127
  • add 49334 - track the valuerangerecords of charts in hssfchart, to allow the basic axis operations
  • add 49242 - track the linkdatarecords of charts in hssfchart
  • add improved performance of xssfworkbook.write
  • fix 48846 - avoid npe when finding cell comments
  • fix 49325 - ensure that ctphoneticpr is included in poi-ooxml jar
  • fix 49191 - fixed tests failing in non-english locales
  • add 48432 - support for xssf themes
  • add 49244 - support for data validation for ooxml format
  • add 49066 - worksheet/cell formatting, with view and html converter
  • fix 49020 - workaround excel outputting invalid xml in button definitions by not closing br tags
  • fix 49050 - improve performance of abstractescherholderrecord when there are lots of continue records
  • fix 49194 - correct text size limit for ooxml .xlsx files
  • fix 49254 - fix cellutils.setfont to use the correct type internally
  • fix 49139 - properly support 4k big block size in poifs
  • fix 48936 - avoid writing malformed cdata blocks in sharedstrings.xml
  • add 49026 - added implementation for text()
  • add 49025 - added implementation for trunc()
  • fix 49147 - properly close internal inputstream in extractorfactory#createextractor(file)
  • fix 49138 - fixed locale-sensitive formatters in packagepropertiespart
  • fix 49153 - ensure that ctvectorvariant is included in poi-ooxml-schemas.jar
  • add 49146 - added accessors to coreproperties.keywords
  • fix 48916 - propagate parent to parent-aware records decoded from escher
  • fix 48485 - add extra paper size constans to printsetup, such as a3, b4 and b5
  • fix make poifs.filesystem.directorynode preserve the original ordering of its files, which hsmf needs to be able to correctly match up chunks
  • add support evaluation of indirect defined names in indirect
  • fix 43670 - improve hdgf chunkv11 separator detection, and short string detection, to solve the "negative length of chunkheader" problem
  • add 48617 - optionally allow the overriding of the locale used by dataformatter to control how the default number and date formats should look
  • add new event based xssf text extractor (xssfeventbasedexcelextractor)
  • add extractorfactory can now be told to prefer event based extractors (current excel only) on a per-thread or overall basis
  • fix 48544 - avoid failures in xlsx2csv when shared string table is missing
  • fix 48571 - properly close all io streams created in opcpackage
  • fix 48572 - always copy all declared inner classes and interfaces when generating poi-ooxml-schemas
  • add low level record support for the extrst (phonetic text) part of unicode strings. no usermodel access to it as yet though.
  • fix record.unicodestring has moved to record.common.unicodestring, to live with the other record-part classes, as it isn't a full record.
  • add avoid creating temporary files when opening opc packages from input stream
  • add improved how hsmf handles multiple recipients
  • add add publishertextextractor support to extractorfactory
  • add add xslf support for text extraction from tables
  • add support attachments as embeded documents within the new outlooktextextractor
  • add add a text extractor (outlooktextextractor) to hsmf for simpler extraction of text from .msg files
  • fix some improvements to hsmf parsing of .msg files
  • fix initialise the link type of hssfhyperlink, so that gettype() on it works
  • fix 48425 - improved performance of dateutil.iscelldateformatted()
  • fix 47215 - fixed interfaceendrecord to tolerate unexpected record contents
  • fix 48415 - improved javadoc on hsspicture.resize()
  • add added ant target to install artifacts in local repository
  • fix 48026 - fixed pagesettingsblock to allow multiple headerfooterrecord records
  • fix 48202 - fixed cellrangeutil.mergecellranges to work for adjacent cell regions
  • fix 48339 - fixed externalnamerecord to properly distinguish dde data from ole data items
  • fix 47920 - allow editing workbooks embedded into powerpoint files
  • add 48343 - added implementation of subtotal function
  • fix switch to compiling the ooxml schemas for java 1.5

Version 3.6 (2009-12-14)

  • fix 48332 - fixed xssfsheet autosizecolumn() to tolerate empty richtextstring
  • fix 48332 - fixed columninforecord to tolerate missing reserved field
  • fix 47701 - fixed recordformatexception when reading list subrecords (lbsdatasubrecord)
  • add memory usage optimization in xssf - avoid creating parentless xml beans
  • fix 47188 - avoid corruption of workbook when adding cell comments
  • fix 48106 - improved work with cell comments in xssf
  • add add support for creating summaryinformation and documentsummaryinformation properties on poidocuments that don't have them, via poidocument.createinformationproperties()
  • fix 48180 - be more forgiving of short chart records, which skip some unused fields
  • fix 48274 - fix erronious wrapping of byte colours in hssfpalette.findsimilarcolor
  • fix 48269 - fix fetching of error codes from xssf formula cells
  • fix 48229 - fixed javadoc for hssfsheet.setcolumnwidth and xssfsheet setcolumnwidth
  • fix 47757 - fixed xlsx2csv to avoid exception when processing cells with multiple "t" elements
  • add 48195 - short-circuit evaluation of if() and choose()
  • add 48161 - support for text extraction from ppt master slides
  • add 47970 - added a method to set arabic mode in hssfsheet
  • fix 48134 - release system resources when using picture.resize()
  • fix 48087 - avoid npe in xssfchartsheet when calling methods of the superclass
  • fix 48038 - handle reading hwpf stylesheets from non zero offsets
  • add when running the "compile-ooxml-xsds" ant task, also generate the source jar for the ooxml schemas
  • fix 45672 - improve handling by missingrecordawarehssflistener of records that cover multiple cells (mulblankrecord and mulrkrecord)
  • fix 48096 - relaxed validation check in recalcidrecord
  • fix 48085 - improved error checking in blockallocationtablereader to trap unreasonable field values
  • fix 47924 - fixed logic for matching cells and comments in hssfcell.getcellcomment()
  • add 47942 - added implementation of protection features to xlsx and docx files
  • fix 48070 - preserve leading and trailing white spaces in xssfrichtextstring
  • add 48044 - added implementation for countblank function
  • fix 48036 - added intersectioneval to allow evaluation of the intersection formula operator
  • fix 47999 - avoid un-needed call to the jvm garbage collector when working on ooxml opc packages
  • add 47922 - added example hsmf application that converts a .msg file to text and extracts attachments
  • add 47903 - added ant target to compile scratchpad examples
  • add 47839 - improved api for ooxml custom properties
  • fix 47862 - fixed xssfsheet.setcolumnwidth to handle columns included in a column span
  • fix 47804 - fixed xssfsheet.setcolumnhidden to handle columns included in a column span
  • fix 47889 - fixed xssfcell.getstringcellvalue() to properly handle cached formula results

Version 3.5-final (2009-09-28)

  • fix 47747 - fixed logic for locating shared formula records
  • add 47809 - improved work with user-defined functions
  • fix 47581 - fixed xssfsheet.setcolumnwidth to produce xml compatible with mac excel 2008
  • fix 47734 - removed unnecessary svn:executable flag from files in svn trunk
  • fix 47543 - added javadoc how to avoid excel crash when creating too many hssfrichtextstring cells
  • fix 47813 - fixed problems with xssfworkbook.removesheetat when workbook contains chart
  • fix 47737 - adjust sheet indices of named ranges when deleting sheets
  • fix 47770 - built-in positive formats don't need starting '('
  • add 47771 - added method setfunction(boolean) for defined names
  • add 47768 - implementation of excel "days360" and "npv" functions
  • fix 47751 - do not allow hssf's cell text longer than 32,767 characters
  • add 47757 - added an example demonstrating how to convert an xlsx workbook to csv
  • fix 44770 - fixed ppt parser to tolerate comment2000 containers with missing comment text
  • fix 47773 - fix for extraction paragraphs and sections from headers/footers with xwpfwordextractor
  • fix 47727 - support for extraction of header / footer images in hwpf
  • fix moved all test data to a top-level directory
  • add 47721 - Added implementation for INDIRECT()
  • add 45583 - Avoid exception when reading ClipboardData packet in OLE property sets
  • add 47652 - Added support for reading encrypted workbooks
  • add 47604 - Implementation of an XML to XLSX Importer using Custom XML Mapping
  • fix 47620 - Avoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns
  • fix 47606 - Fixed XSSFCell to correctly parse column indexes greater than 702 (ZZ)
  • fix 47598 - Improved formula evaluator number comparison
  • fix 47571 - Fixed XWPFWordExtractor to extract inserted/deleted text
  • fix 47548 - Fixed RecordFactoryInputStream to properly read continued DrawingRecords
  • fix 46419 - Fixed compatibility issue with OpenOffice 3.0
  • fix 47559 - Fixed compatibility issue with Excel 2008 Mac sp2. Please see the HSSF+XSSF project page for more information.
  • fix 47540 - Fix for saving custom and extended OOXML properties
  • fix 47535 - Fixed WordExtractor to tolerate files with empty footnote block
  • fix 47517 - Fixed ExtractorFactory to support .xltx and .dotx files
  • add 45556 - Support for extraction of footnotes from docx files
  • add 45555 - Support for extraction of endnotes from docx files
  • add 47520 - Initial support for custom XML mappings in XSSF
  • fix 47460 - Fixed NPE when retrieving core properties from a newly created workbook
  • fix 47498 - Fixed HyperlinkRecord to properly handle URL monikers
  • fix 47504 - Fixed XSSFWorkbook to read files with hyperlinks to document locations
  • fix 47479 - Fix BoolErrRecord to tolerate incorrect format written by OOO
  • fix 47448 - Allow HSSFEventFactory to handle non-zero padding at the end of the workbook stream
  • add 47456 - Support for getting OLE object data in PowerPointExtractor
  • fix 47411 - Explicitly set the 1900 date system when creating XSSF workbooks
  • add 47400 - Support for text extraction of footnotes, endnotes and comments in HWPF
  • fix 47415 - Fixed PageSettingsBlock to allow multiple PLS records
  • fix 47412 - Fixed concurrency issue with EscherProperties.initProps()
  • fix 47143 - Fixed OOM in HSSFWorkbook#getAllPictures when reading .xls files containing metafiles
  • add Added implementation for ISNA()
  • add 46793 - fixed SimpleShape#getLineWidth to handle default line width
  • add 47356 - removed unused private fields in HWPF BorderCode
  • add 47355 - Improved HWPF TableCell to expose TableCellDescriptor
  • fix 46610 - Improved HWPF to better handle unicode
  • fix 47261 - Fixed SlideShow#removeSlide to remove references to Notes
  • fix 47375 - Fixed HSSFHyperlink to correctly set inter-sheet and file links
  • fix 47384 - Fixed ExternalNameRecord to handle unicode names
  • fix 47372 - Fixed locale-sensitive unit tests to pass when running on non-US locale

Version 3.5-beta6 (2009-06-22)

  • fix 47363 - Fixed HSSFSheet to allow addition of data validations after sheet protection
  • fix 47294 - Fixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes
  • fix 47309 - Fixed logic in HSSFCell.getCellComment to handle sheets with more than 65536 comments
  • fix 46776 - Added clone() method to MulBlankRecord to fix crash in Sheet.cloneSheet()
  • fix 47244 - Fixed HSSFSheet to handle missing header / footer records
  • fix 47312 - Fixed formula parser to properly reject cell references with a '0' row component
  • fix 47199 - Fixed PageSettingsBlock/Sheet to tolerate margin records after other non-PSB records
  • fix 47069 - Fixed HSSFSheet#getFirstRowNum and HSSFSheet#getLastRowNum to return correct values after removal of all rows
  • fix 47278 - Fixed XSSFCell to avoid generating xsi:nil entries in shared string table
  • fix 47206 - Fixed XSSFCell to properly read inline strings
  • add 47250 - Fixed FontRecord to expect unicode flags even when name length is zero
  • add 47198 - Fixed formula evaluator comparison of -0.0 and 0.0
  • add 47229 - Fixed ExternalNameRecord to handle DDE links
  • add 46287 - Control of header and footer extraction in ExcelExtractor / XSSFExcelExtractor
  • add 46554 - New ant target "jar-examples"
  • add 46161 - Support in XSSF for setGroupColumnCollapsed and setGroupRowCollapsed
  • add 46806 - Allow columns greater than 255 and rows greater than 0x100000 in XSSF formulas
  • add 41711 - Base class for "old version" exceptions, and new HSLF detection + use of old versions exception
  • fix 47179 - Fix string encoding issues with HSMF chunks on non-windows platforms
  • add 47183 - Attachment support for HSMF
  • fix 47154 - Handle the cell format @ as the same as General
  • fix 47048 - Fixed evaluation of defined names with the 'complex' flag set
  • fix 46953 - More tweaks to PageSettingsBlock parsing logic in Sheet constructor
  • fix 47089 - Fixed XSSFWorkbook.createSheet to properly increment sheetId
  • fix 46568 - Fixed XSLFPowerPointExtractor to properly process line breaks
  • fix 39056 - Fixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream
  • fix 47054 - Fixed cloneStyleFrom to avoid exception when cloning styles of the same family
  • fix 46186 - Fixed Sheet to read GutsRecord in the Sheet(RecordStream rs)
  • fix 46714 - Automatically call sheet.setAlternativeExpression when sheet.setRowSumsBelow is called
  • fix 46279 - Allow 255 arguments for excel functions in XSSF
  • fix 47028 - Fixed XSSFCell to preserve cell style when cell value is set to blank
  • fix 47026 - Avoid NPE in XSSFCell.setCellType() when workbook does not have SST
  • fix 46987 - Allow RecordFactory to handle non-zero padding at the end of the workbook stream
  • fix 47034 - Fix reading the name of a NameRecord when the name is very long
  • fix 47001 - Fixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs
  • fix 46973 - Fixed defined names to behave better when refersToFormula is unset
  • fix 46832 - Allow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF
  • fix 46951 - Fixed formula parser to better handle range operators and whole row/column refs.
  • fix 46948 - Fixed evaluation of range operator to allow for area-ref operands
  • fix 46918 - Fixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format
  • fix 46898 - Fixed formula evaluator to not cache intermediate circular-reference error results
  • fix 46917 - Fixed PageItemRecord(SXPI) to allow multiple field infos
  • fix 46904 - Fix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files
  • fix 46840 - PageSettingsBlock should include HEADERFOOTER record
  • fix 46885 - update cell type when setting cached formula result in XSSFCell
  • add added modifiers for anchor type to XSSFClientAnchor
  • add 46772 - support built-in data formats in XSSFDataFormat
  • fix 46719 - fixed XSSFSheet.shiftRows to correctly preserve row heights
  • fix 46715 - preserve custom column widths across re-serialization of XSSFWorkbook
  • add 46703 - added setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet
  • add 46708 - added getMergedRegion(int) to common interface org.apache.poi.ss.usermodel.Sheet
  • fix fixed Sheet.autoSizeColumn() to use cached formula values when processing formula cells
  • fix Fixed formula parser to handle names with backslashes
  • add 46660 - added Workbook getHidden() and setHidden(boolean)
  • fix 46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX
  • fix 46627 - Fixed offset of added images if Pictures stream contains pictures with zero length

Version 3.5-beta5 (2009-02-19)

  • fix 46536 - When shifting rows, update formulas on that sheet to point to the new location of those rows
  • fix 46663 - Fixed XSSFSheet.shiftRows to properly update references of the shifted cells
  • fix 46535 - Remove reference from calculation chain when a formula is deleted
  • fix 46654 - HSSFRow/RowRecord to properly update cell boundary indexes
  • fix 46643 - Fixed formula parser to encode range operator with tMemFunc
  • fix 46647 - Fixed COUNTIF NE operator and other special cases involving type conversion
  • add 46635 - Added a method to remove slides
  • fix 40520 - Fixed HSSFFont.applyFont() to properly apply font to overlapping regions
  • fix 46545 - Fixed ObjRecord to ignore excessive padding written by previous POI versions
  • fix 46613 - Fixed evaluator to perform case insensitive string comparisons
  • add 46544 - command line interface for hssf ExcelExtractor
  • fix 46547 - Allow addition of conditional formatting after data validation
  • fix 46548 - Page Settings Block fixes - continued PLS records and PSB in sheet sub-streams
  • add 46523 - added implementation for SUMIF function
  • add Support for reading HSSF column styles
  • fix Hook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor
  • fix 46472 - Avoid NPE in HPSFPropertiesExtractor when no properties exist
  • fix 46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()
  • add 45031 - added implementation for CHOOSE() function
  • fix 46361 - resolve licensing issues around the HDGF resource file, chunks_parse_cmds.tbl
  • add 46410 - added implementation for TIME() function
  • add 46320 - added HSSFPictureData.getFormat()
  • fix 46445 - fixed HSSFSheet.shiftRow to move hyperlinks
  • fix fixed formula parser to correctly resolve sheet-level names
  • fix 46433 - support for shared formulas in XSSF
  • add 46299 - support for carriage return and line break in XWPFRun
  • add 46300 - support for line spacing in XWPFParagraph
  • add 46308 - initial support for creation of XWPFTable
  • add Added getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()
  • fix 46385 - (also patch 46362) fix serialization of StyleRecord with unicode name
  • fix 46368 - Fix HSSFRichTextRun and strings longer than 32768 characters
  • add Support sheet-level names
  • fix Fixed XSSFCell to properly handle cell references with column numbers up to XFD
  • fix 44914 - Fixed warning message "WARN. Unread n bytes of record 0xNN"
  • add 46156 - Improved number to text conversion to be closer to that of Excel
  • fix 46312 - Fixed ValueRecordsAggregate to handle removal of new empty row
  • add 46269 - Improved error message when attempting to read BIFF2 file
  • fix 46206 - Fixed Sheet to tolerate missing DIMENSION records
  • add 46301 - added pivot table records: SXDI, SXVDEX, SXPI, SXIDSTM, SXVIEW, SXVD, SXVS, et al
  • fix 46280 - Fixed RowRecordsAggregate etc to properly skip PivotTable records

Version 3.5-beta4 (2008-11-29)

  • fix 46213 - Fixed FormulaRecordAggregate to gracefully ignore extra StringRecords
  • fix 46174 - Fixed HSSFName to handle general formulas (not just area references)
  • add 46189 - added chart records: CHARTFRTINFO, STARTBLOCK, ENDBLOCK, STARTOBJECT, ENDOBJECT, and CATLAB
  • fix 46199 - More tweaks to EmbeddedObjectRefSubRecord
  • add Changes to formula evaluation allowing for reduced memory usage
  • fix 45290 - Support odd files where the POIFS header block comes after the data blocks, and is on the data blocks list
  • fix 46184 - More odd escaped date formats
  • add Include the sheet number in the output of XLS2CSVmra
  • fix 46043 - correctly write out HPSF properties with HWPF
  • add 45973 - added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF
  • fix 46182 - fixed Slideshow.readPictures() to skip pictures with invalid headers
  • fix 46137 - Handle odd files with a ContinueRecord after EOFRecord
  • fix Fixed problem with linking shared formulas when ranges overlap
  • fix 45784 - More fixes to SeriesTextRecord
  • fix 46033 - fixed TableCell to correctly set text type
  • fix 46122 - fixed Picture.draw to skip rendering if picture data was not found
  • fix 15716 - memory usage optimisation - converted Ptg arrays into Formula objects
  • add 46065 - added implementation for VALUE function
  • add 45966 - added implementation for FIND function
  • fix 45778 - fixed ObjRecord to read ftLbsData properly
  • fix 46053 - fixed evaluation cache dependency analysis when changing blank cells

Version 3.5-beta3 (2008-09-26)

  • fix 45518 - Fix up ColumnHelper to output valid col tags, by making 1 based and 0 based bits clearer, and using the right ones
  • fix 45676 - Handle very long cells in the XSSF EventUserModel example
  • add Initial ExtractorFactory support for building TextExtractors for embeded documents

Version 3.5-beta2 (2008-08-20)

  • add Support stripping XSSF header and footer fields (eg page number) out of header and footer text if required
  • add Add POIXMLPropertiesTextExtractor, which provides to the OOXML file formats a similar function to HPSF's HPSFPropertiesExtractor
  • add 45539 - Improve XWPFWordExtractor to extract headers and footers
  • fix Improve how XWPF handles paragraph text
  • add Support in XWPF handles headers and footers
  • add 45592 - Improve XWPF text extraction to include tables always, and picture text where possible
  • add 45545 - Improve XSLF usermodel support, and include XSLF comments in extracted text
  • add 45540 - Fix XSSF header and footer support, and include headers and footers in the output of XSSFExcelExtractor
  • add 45431 - Support for .xlsm files, sufficient for simple files to be loaded by excel without warning
  • add New class org.apache.poi.hssf.record.RecordFormatException, which DDF uses instead of the HSSF version, and the HSSF version inherits from
  • add 45431 - Partial support for .xlm files. Not quite enough for excel to load them though
  • fix 45430 - Correct named range sheet reporting when no local sheet id is given in the xml

Version 3.5-beta1 (2008-07-18)

  • add 45018 - Support for fetching embeded documents from within an OOXML file
  • add Port support for setting a policy on missing / blank cells when fetching, to XSSF too
  • add Common text extraction factory, which returns the correct POITextExtractor for the supplied data
  • add Text Extraction support for the new OOXML files (.xlsx, .docx and .pptx)
  • add Initial support for processing OOXML Excel files (.xlsx), both directly through XSSF, and also through the new common UserModel
  • add Created a common interface for handling PowerPoint files, irrespective of if they are .ppt or .pptx
  • add Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx

Version 3.2-FINAL (2008-10-19)

  • fix 45866 - allowed for change of unicode compression across Continue records
  • fix 45964 - support for link formulas in Text Objects
  • fix 43354 - support for evalating formulas with missing args
  • fix 45912 - fixed ArrayIndexOutOfBoundsException in EmbeddedObjectRefSubRecord
  • fix 45889 - fixed ArrayIndexOutOfBoundsException when constructing HSLF Table with a single row
  • add Initial support for creating hyperlinks in HSLF
  • fix 45876 - fixed BoundSheetRecord to allow sheet names longer than 31 chars
  • add 45890 - fixed HSSFSheet.shiftRows to also update conditional formats
  • add 45865 - modified Formula Parser/Evaluator to handle cross-worksheet formulas
  • add Optimised the FormulaEvaluator to take cell dependencies into account
  • add 16936 - Initial support for whole-row cell styling
  • add Update hssf.extractor.ExcelExtractor to optionally output blank cells too
  • add Include the sheet name in the output of examples.XLS2CSVmra
  • fix 45784 - Support long chart titles in SeriesTextRecords
  • fix 45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out
  • add 45844 - Addtional diagnostics for HSLF SlideShowRecordDumper
  • fix 45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero
  • fix 45815 - Bit mask values in StyleTextPropAtom were not preserved across read-write
  • add 45814 - Specify RecordType for slide show Handout (4041)
  • fix 45805 - Fixed 16-bit signed/unsigned bug in HSSFSheet.getColWidth etc
  • fix 45780 - Fixed HSSFSheet.shiftRows to also update Area refs
  • fix 45804 - Update HSMF to handle Outlook 3.0 msg files, which have a different string chunk type
  • add Expose the name of Named Cell Styles via HSSFCellStyle (normally held on the parent style though)
  • fix 45978 - Fixed IOOBE in Ref3DPtg.toFormulaString() due eager initialisation of SheetReferences
  • add Made HSSFFormulaEvaluator no longer require initialisation with sheet or row
  • add Extended support for cached results of formula cells
  • fix 45639 - Fixed AIOOBE due to bad index logic in ColumnInfoRecordsAggregate
  • fix Fixed special cases of INDEX function (single column/single row, errors)
  • add 45761 - Support for Very Hidden excel sheets in HSSF
  • add 45738 - Initial HWPF support for Office Art Shapes
  • fix 45720 - Fixed HSSFWorkbook.cloneSheet to correctly clone sheets with drawings
  • fix 45728 - Fix for SlideShow.reorderSlide in HSLF
  • add Initial support for embedded movies and controls in HSLF
  • fix 45358 - signed/unsigned error when parsing 3-d area refs, performance problem evaluating area refs, and ClassCastExcecption in IF()
  • add Support for HPBF Publisher hyperlinks, including during text extraction
  • fix 26321,44958 - preserve position of ArrayRecords and TableRecords among cell value records
  • fix Impove empty header or footer handling in HWPF HeaderStories
  • fix Avoid NPE in hssf.usermodel.HeaderFooter when stripping fields out
  • fix Avoid NPE in EscherBSERecord on older escher records
  • add Basic text extractraction support in HPBF
  • add Initial, low level support for Publisher files, in the form of HPBF
  • fix 45699 - Fix RowRecordsAggregate to tolerate intervening MERGEDCELLS records
  • fix 45698 - Fix LinkTable to tolerate multiple EXTERNSHEET records
  • fix 45682 - Fix for cloning of CFRecordsAggregate
  • add Initial support for evaluating external add-in functions like YEARFRAC
  • fix 45672 - Fix for MissingRecordAwareHSSFListener to prevent multiple LastCellOfRowDummyRecords when shared formulas are present
  • fix 45645 - Fix for HSSFSheet.autoSizeColumn() for widths exceeding Short.MAX_VALUE
  • add 45623 - Support for additional HSSF header and footer fields, including bold and full file path
  • add 45623 - Support stripping HSSF header and footer fields (eg page number) out of header and footer text if required
  • add 45622 - Support stripping HWPF fields (eg macros) out of text, via Range.stripFields(text)
  • add New HPSF based TextExtractor for document metadata, org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor
  • fix Properly update the array of Slide's text runs in HSLF when new text shapes are added
  • fix 45590 - Fix for Header/footer extraction for .ppt files saved in Office 2007
  • fix Big improvement in how HWPF handles unicode text, and more sanity checking of text ranges within HWPF
  • add Include headers and footers int he extracted text from HWPF's WordExtractor
  • add Added support to HWPF for headers and footers
  • fix Improve how HWPF deals with unicode internally. Should avoid some odd behaviour when manipulating unicode text
  • add 45577 - Added implementations for Excel functions NOW and TODAY
  • fix 45582 - Fix for workbook streams with extra bytes trailing the EOFRecord
  • add 45537 - Include headers and footers (of slides and notes) in the extracted text from HSLF
  • fix 45472 - Fixed incorrect default row height in OpenOffice 2.3
  • fix 44692 - HSSFPicture.resize() stretched image when there was a text next to it
  • add 45543 - Optionally extract comment text with PowerPointExtractor, and initial hslf model support for comments
  • fix 45538 - Include excel headers and footers in the output of ExcelExtractor
  • fix 44894 - refactor duplicate logic from EventRecordFactory to RecordFactory
  • add Support for Headers / Footers in HSLF
  • fix 44953 - Extensive fixes for data validation
  • fix 45519 - Fixed to keep datavalidation records together
  • add Support for creating new HSLF CurrentUserAtoms
  • add 45466 - Partial support for removing excel comments (won't work for all excel versions yet)
  • fix 45437 - Detect encrypted word documents, and throw an EncryptedDocumentException instead of a OOM
  • add 45404 - New class, hssf.usermodel.HSSFDataFormatter, for formatting numbers and dates in the same way that Excel does
  • fix 45414 - Don't add too many UncalcedRecords to sheets with charts in them
  • fix 45398 - Support detecting date formats containing "am/pm" as date times
  • fix 45410 - Removed dependency from contrib on commons beanutils,collections and lang
  • add New helper, HSSFOptimiser, which handles removing duplicated font and style records, to avoid going over the limits in Excel
  • fix 45322 - Fixed NPE in HSSFSheet.autoSizeColumn() when cell number format was not found
  • add 45380 - Missing return keyword in ArrayPtg.toFormulaString()
  • add 44958 - Record level support for Data Tables. (No formula parser support though)
  • add 35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version
  • add Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another
  • fix 45289 - finished support for special comparison operators in COUNTIF
  • fix 45126 - Avoid generating multiple NamedRanges with the same name, which Excel dislikes
  • fix Fix cell.getRichStringCellValue() for formula cells with string results
  • fix 45365 - Handle more excel number formatting rules in FormatTrackingHSSFListener / XLS2CSVmra
  • fix 45373 - Improve the performance of HSSFSheet.shiftRows
  • fix 45367 - Fixed bug when last row removed from sheet is row zero
  • fix 45348 - Tweaks to RVA formula logic
  • fix 45354 - Fixed recognition of named ranges within formulas
  • fix 45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts
  • fix 45336 - Fix HSSFColor.getTripletHash()
  • fix 45334 - Fixed formula parser to handle dots in identifiers
  • fix 45252 - Improvement for HWPF Range.replaceText()
  • fix 45001 - Further fix for HWPF Range.delete() and unicode characters
  • add 45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation
  • fix Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.
  • add Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder

Version 3.1-final (2008-06-29)

  • fix 30978 - Fixed re-serialization of tRefErr3d and tAreaErr3d
  • fix 45234 - Removed incorrect shared formula conversion in CFRuleRecord
  • fix 45001 - Improved HWPF Range.replaceText()
  • fix 44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size
  • add Support custom image renderers in HSLF
  • fix Correctly increment the reference count of a blip when a picture is inserted
  • fix 45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape
  • fix 45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy
  • fix 45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary
  • fix 45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate
  • fix 45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes
  • fix 45087 - Correctly detect date formats like [Black]YYYY as being date based
  • add 45060 - Improved token class transformation during formula parsing
  • add 44840 - Improved handling of HSSFObjectData, especially for entries with data held not in POIFS
  • add 45043 - Support for getting excel cell comments when extracting text
  • add Extend the support for specifying a policy to HSSF on missing / blank cells when fetching, to be able to specify the policy at the HSSFWorkbook level
  • fix 45025 - improved FormulaParser parse error messages
  • fix 45046 - allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable
  • fix 45066 - fixed sheet encoding size mismatch problems
  • add 45003 - Support embeded HDGF visio documents
  • fix 45001 - Partial fix for HWPF Range.insertBefore() and Range.delete() with unicode characters
  • fix 44977 - Support for AM/PM in excel date formats
  • add Support for specifying a policy to HSSF on missing / blank cells when fetching
  • add 44937 - Partial support for extracting Escher images from HWPF files
  • fix 44824 - Avoid an infinite loop when reading some HWPF pictures
  • fix 44898 - Correctly handle short last blocks in POIFS

Version 3.1-beta2 (2008-05-26)

  • fix 44306 - fixed reading/writing of AttrPtg(type=choose) and method toFormulaString() for CHOOSE formulas
  • fix 24207 - added HSSFName.isDeleted() to check if the name points to cell that no longer exists
  • fix 40414 - fixed selected/active sheet after removing sheet from workbook
  • fix 44523 - fixed workbook sheet selection and focus
  • fix 45000 - Fixed NPE in ListLevel when numberText is null
  • fix 44985 - Properly update TextSpecInfoAtom when the parent text is changed
  • fix 41187 - fixed HSSFSheet to properly read xls files without ROW records
  • fix 44950 - fixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals
  • fix 42570 - fixed LabelRecord to use empty string instead of null when the length is zero.
  • fix 42564 - fixed ArrayPtg to use ConstantValueParser. Fixed a few other ArrayPtg encoding issues.
  • fix Follow-on from 28754 - StringPtg.toFormulaString() should escape double quotes
  • fix 44929 - Improved error handling in HSSFWorkbook when attempting to read a BIFF5 file
  • fix 44675 - Parameter operand classes (function metadata) required to encode SUM() etc properly. Added parse validation for number of parameters
  • fix 44921 - allow Ptg.writeBytes() to be called on relative ref Ptgs (RefN* and AreaN*)
  • fix 44914 - Fix/suppress warning message "WARN. Unread n bytes of record 0xNN"
  • fix 44892 - made HSSFWorkbook.getSheet(String) case insensitive
  • fix 44886 - Correctly process PICT metafile in EscherMetafileBlip
  • fix 44893 - Take into account indentation in HSSFSheet.autoSizeColumn

Version 3.1-beta1 (2008-04-28)

  • fix 44857 - Avoid OOM on unknown escher records when EscherMetafileBlip is incorrect
  • add HSLF: Support for getting embedded sounds from slide show
  • add HSLF: Initial support for rendering slides into images
  • add HSLF: Support for getting OLE object data from slide show
  • add HSLF: Implemented more methods in PPGraphics2D
  • add HSLF: Added Freeform shape which can contain both lines and Bezier curves
  • fix 41071 - Improved text extraction in HSLF
  • add 30311 - Conditional Formatting - improved API, added HSSFSheetConditionalFormatting
  • fix Update the formula parser code to use a HSSFWorkbook, rather than the low level model.Workbook, to make things cleaner and make supporting XSSF formulas in future much easier
  • fix Fix the logger used by POIFSFileSystem, so that commons-logging isn't required when not used
  • add Update HSLFSlideShow and HSSFWorkbook to take advantage of POIFS updates, and allow reading embeded documents
  • add Improve how POIFS works with directory entries, and update HWPFDocument to support reading an embeded word document
  • add Initial support for getting and changing chart and series titles
  • add Implement a proxy HSSFListener which tracks the format records, and lets you lookup the format string for a given cell. Convert the xls to csv example to use it
  • fix 44792 - fixed encode/decode problems in ExternalNameRecord and CRNRecord.
  • fix 43670,44501 - Fix how HDGF deals with trailing data in the list of chunk headers
  • add 30311 - More work on Conditional Formatting
  • fix refactored all junits' usage of HSSF.testdata.path to one place
  • fix 44739 - Small fixes for conditional formatting (regions with max row/col index)
  • add 44694 - HPSF: Support for property sets without sections
  • add Implement Sheet.removeShape(Shape shape) in HSLF
  • add Various fixes: Recognising var-arg built-in functions #44675, ExternalNameRecord serialisation bug #44695, PMT() bug #44691
  • add 30311 - More work on Conditional Formatting
  • add Move the Formula Evaluator code out of scratchpad
  • add Move the missing record aware eventusermodel code out of scratchpad
  • add 44652,44603 - Improved handling of Pictures in Word Documents
  • fix 44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits
  • fix 44627 - Improve the thread safety of POILogFactory
  • add 30311 - Initial support for Conditional Formatting
  • fix 44609 - Handle leading spaces in formulas, such as '= 4'
  • add 44608 - Support for PercentPtg in the formula evaluator
  • fix 44606 - Support calculated string values for evaluated formulas
  • add Add accessors to horizontal and vertical alignment in HSSFTextbox
  • add 44593 - Improved handling of short DVRecords
  • add 28627,44580 - Fix Range.delete() in HWPF
  • add 44539 - Support for area references in formulas of rows >= 32768
  • add 44536 - Improved support for detecting read-only recommended files
  • fix 43901 - Correctly update the internal last cell number when adding and removing cells (previously sometimes off-by-one)
  • fix 44504 - Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
  • fix 44504 - Improvements to FormulaParser - operators, precedence, error literals, quotes in string literals, range checking on IntPtg, formulas with extra un-parsed stuff at the end, improved parse error handling
  • fix 44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval
  • fix 44504 - Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
  • fix 44504 - Improvements to FormulaParser - operators, precedence, error literals, quotes in string literals, range checking on IntPtg, formulas with extra un-parsed stuff at the end, improved parse error handling
  • fix 44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval
  • fix 44508 - Fix formula evaluation with evaluateInCell on boolean formulas
  • fix 44510 - Fix how DVALRecord works with dropdowns
  • fix 44495 - Handle named cell ranges in formulas that have lower case parts
  • fix 44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
  • fix 44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
  • fix 44495 - Handle named cell ranges in formulas that have lower case parts
  • fix 44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
  • fix 44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
  • add 44450 - Support for Lookup, HLookup and VLookup functions
  • fix 44449 - Avoid getting confused when two sheets have shared formulas for the same areas, and when the shared formula is set incorrectly
  • fix 44366 - InputStreams passed to POIFSFileSystem are now automatically closed. A warning is generated for people who might've relied on them not being closed before, and a wrapper to restore the old behaviour is supplied
  • add 44371 - Support for the Offset function
  • fix 38921 - Have HSSFPalette.findSimilar() work properly
  • fix 44456 - Fix the contrib SViewer / SViewerPanel to not fail on sheets with missing rows
  • fix 44403 - Further support for unusual, but valid, arguments to the Mid function
  • fix 44410 - Support for whole-column ranges, such as C:C, in formula strings and the formula evaluator
  • fix 44421 - Update Match function to properly support Area references
  • fix 44417 - Improved handling of references for the need to quote the sheet name for some formulas, but not when fetching a sheet by name
  • fix 44413 - Fix for circular references in INDEX, OFFSET, VLOOKUP formulas, where a cell is actually allowed to reference itself
  • fix 44403 - Fix for Mid function handling its arguments wrong
  • add 44364 - Support for Match, NA and SumProduct functions, as well as initial function error support
  • fix 44375 - Cope with a broken dictionary in Document Summary Information stream. RuntimeExceptions that occured when trying to read bogus data are now caught. Dictionary entries up to but not including the bogus one are preserved, the rest is ignored.
  • fix 38641 - Handle timezones better with cell.setCellValue(Calendar), so now 20:00-03:00, 20:00+00:00 and 20:00+03:00 will all be recorded as 20:00, and not 17:00 / 20:00 / 23:00 (pass a Date not a Calendar for old behaviour)
  • fix 44373 - Have HSSFDateUtil.isADateFormat recognize more formats as being dates
  • add 37923 - Support for Excel hyperlinks
  • add Implement hashCode() and equals(obj) on HSSFFont and HSSFCellStyle
  • fix 44345 - Implement CountA, CountIf, Index, Rows and Columns functions
  • fix 44336 - Properly escape sheet names as required when figuring out the text of formulas
  • add 44326 - Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptions
  • add Support for a completed Record based "pull" stream, via org.apache.poi.hssf.eventusermodel.HSSFRecordStream, to complement the existing "push" Event User Model listener stuff

Version 3.0.2-FINAL (2008-02-04)

  • fix 44297 - IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
  • fix 44296 - Fix for reading slide background images
  • fix 44293 - Avoid swapping AreaPtgs from relative to absolute
  • fix 44292 - Correctly process the last paragraph in a word file
  • fix 44254 - Avoid some unread byte warnings, and properly understand DVALRecord
  • add Add another formula evaluation method, evaluateFormulaCell(cell), which will re-calculate the value for a formula, without affecting the formula itself.
  • fix 41726 - Fix how we handle signed cell offsets in relative areas and references
  • add 44233 - Support for getting and setting a flag on the sheet, which tells excel to re-calculate all formulas on it at next reload
  • fix 44201 - Enable cloning of sheets with data validation rules
  • fix 44200 - Enable cloning of sheets with notes
  • add 43008 - Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly
  • fix 43058 - Support setting row grouping on files from CR IX, which lack GutsRecords
  • fix 31795 - Support cloning of sheets with certain drawing objects on them
  • fix 43902 - Don't consider merged regions when auto-sizing columns
  • fix 42464 - Avoid "Expected ExpPtg to be converted from Shared to Non-Shared Formula" on large, formula heavy worksheets
  • add 42033 - Add support for named ranges with unicode names
  • add 34023 - When shifting rows, update formulas on that sheet to point to the new location of those rows
  • add Support getting all the cells referenced by an AreaReference, not just the corner ones
  • add 43510 - Add support for named ranges in formulas, including non-contiguous named ranges
  • add 43937 - Add support for hiding and un-hiding sheets, and checking their current hidden status
  • fix 44167 - Fix for non-contiguous named ranges
  • fix 44070 - Fix for shifting comments when shifting rows

Version 3.0.2-BETA2 (2008-01-12)

  • add Support for tables in HSLF
  • fix 43781 - Fix for extracting text from TextBoxes HSLF in
  • fix Improve JavaDocs relating to hssf font and fill colourings
  • add 44095,44097,44099 - Support for Mid, Replace and Substitute excel functions
  • add 44055 - Support for getting the from field from HSMF messages
  • add 43551 - Support for 1904 date windowing in HSSF (previously only supported 1900 date windowing)
  • add 41064 - Support for String continue records
  • add 27511 - Support for data validation, via DVRecord and DVALRecord

Version 3.0.2-BETA1 (2007-12-04)

  • fix 43877 - Fix for handling mixed OBJ and CONTINUE records
  • fix 39512 - Fix for handling mixed OBJ and CONTINUE records
  • fix 43837 - Support for unicode NameRecords
  • fix 43807 - Throw an IllegalArgumentException if asked to create a merged region with invalid columns or rows, rather than writing out a corrupt file
  • fix 43837 - Support for unicode NameRecords
  • add 43721 - Support for Chart Title Format records
  • fix 42794 - Fix for BOF records from things like Access
  • fix 43648 - Fix for IntPtg and short vs int
  • fix 43751 - Fix for handling rotated text in HSSFSheet.autoSizeColumn
  • add Include an Excel text extractor, and put all existing text extractors under a common superclass
  • add Improvements to the LZW compression engine used by HDGF
  • add HSSFPicture.resize() - a handy method to reset a picture to its original width and height
  • add Add a getSheetIndex(HSSFSheet) method to HSSFWorkbook, and allow a HSSFSheet to get at its parent HSSFWorkbook
  • add Move POIDocument out of Scratchpad, and update HSSFWorkbook to use it
  • fix 43399 - Fix for Cell References for rows > 32678
  • fix 43410 - Improved Formula Parser support for numbers and ranges
  • add When writing HSLF files out, optionally preserve all OLE2 nodes (default is just the HSLF related nodes)
  • add 43323 - Support for adding Pictures to ShapeGroups in HSLF.
  • add 43222 - Support for getting OLE object data from HSSFWorkbook.
  • add 43247 - Support for getting OLE object data from slideshows.
  • add 43125 - Support for reading EMF, WMF and PICT images via HSSFWorkbook.getAllPictures()
  • fix 43088 - Fix for reading files with long cell comments and text boxes
  • fix 42844 - Fix for the EventUserModel and records that aren't immediately followed by their ContinueRecords
  • fix 43055 - Fix for saving Crystal Reports xls files when preserving nodes
  • fix 43116 - Fix for Escher layer handling of embeded OLE2 documents
  • fix 43108 - Where permissions deny fetching System Properties, use sensible defaults
  • fix 43093 - Fix formula evaluator support for Area3D references to other sheets
  • fix Improvements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this
  • fix 42999 - Fix for HSSFPatriarch positioning problems
  • add Support for write-protecting a HSSF workbook
  • add Support for querying, setting and un-setting protection on sheets in a HSSF workbook
  • add Initial HSMF (outlook) support
  • fix Tidy up the javadocs

Version 3.0.1-FINAL (2007-07-05)

  • fix Administrative updates to the Maven POMs, and the release artificat build process
  • fix 23951 - Fix for HSSF setSheetOrder and tab names
  • fix 42524 - Better HSLF support for problem shape groups
  • fix 42520 - Better HSLF support for corrupt picture records
  • add Initial support for a "missing record aware" HSSF event model
  • add Additional HSLF support for Title and Slide Master Sheets
  • fix 42474 - Improved HSLF note to slide matching, and a NPE
  • fix 42481 - Tweak some HSLF exceptions, to make it clearer what you're catching
  • fix 42667 - Fix for HSLF writing of files with tables
  • add Improved way of detecting HSSF cells that contain dates, isADateFormat
  • add Initial, read-only support for Visio documents, as HDGF

Version 3.0-FINAL (2007-05-18)

  • fix 39977 - Fix POM for Maven users
  • fix 38976 - Add createPicture to HSSFShapeGroup
  • add Detect Office 2007 XML documents, and throw a meaningful exception
  • add Additional HSLF support for PowerPoint
  • add Initial support for HWPF image extraction

Version 3.0-alpha3 (2006-12-12)

  • add Additional HSLF support for PowerPoint

Version 3.0-alpha2 (2006-06-16)

  • add HSSF Formula support
  • add Additional HSLF support for PowerPoint
  • fix 39389 - Extended Ascii support for WingDings

Version 3.0-alpha1 (2005-06-04)

  • fix Bugzilla Bug 29976 HSSF hyperlink formula size problem
  • add Image writing support
  • add HSLF - Initial PowerPoint Support. Includes: Support for text extraction across the whole file; Support for getting individual slides, and their notes, and extracting text from those; Initial support for changing (but not adding) text

Version 2.5.1-FINAL (2004-02-29)

  • add Outlining support
  • fix 27574 - HSSFDateUtil.getExcelDate() is one hour off when DST changes
  • fix 26465 - wrong lastrow entry
  • fix 28203 - Unable to open read-write excel file including forms

Version 2.5-FINAL (2004-02-29)

  • add Add support for the Escher file format
  • fix 27005 - java.lang.IndexOutOfBoundsException during Workbook.cloneSheet()

Version 2.0-FINAL (2004-01-26)

  • update No changes

Version 2.0-RC2 (2004-01-11)

  • fix 25695 - HSSFCell.getStringCellValue() on cell which has string formula will return swap bye unicode characters.
  • fix Updated website for upcoming release
  • fix Formula Parser fixes with tests, by Peter M Murray Bug 25457
  • fix Fixed cloning merge regions
  • fix The cloned reference for merged cells did not create a new collection, so deletes cascaded to the original.
  • fix Fix to 24519 call to getCustomPalette() from a newly created workbook now works
  • fix Fix supplied for bug 24397 where some compilation got ambiguous classes. Explicitly imports the classes. Patch supplied by Jean-Pierre Paris.

Version 2.0-RC1 (2003-11-02)

  • fix 12561 - (Min) HSSFWorkbook throws Exceptions
  • fix 12730 - (Nor) values dont get copied to another sheet.
  • fix 13224 - (Maj) Exception thrown when cell has =Names call
  • fix 13796 - (Nor) Error Reading Formula Record (optimized if, external link)
  • fix 13921 - (Nor) Sheet name cannot exceed 31 characters and cannot contain :
  • fix 14330 - (Nor) Error reading FormulaRecord
  • fix 14460 - (Nor) Name in Formula - ArrayOutOfBoundsException
  • fix 15228 - (Cri) [Urgent] ArrayIndexoutofbounds Exception. POI - Version 1.8
  • fix 16488 - (Maj) Unable to open written spreadsheet in Excel, but can in Open
  • fix 16559 - (Nor) testCustomPalette.xls crashes Excel 97
  • fix 16560 - (Nor) testBoolErr.xls crashes Excel '97
  • fix 17374 - (Min) HSSFFont - BOLDWEIGHT_NORMAL
  • fix 18800 - (Maj) The sheet made by HSSFWorkbook#cloneSheet() doesn't work cor
  • fix 18846 - (Min) [RFE]Refactor the transformation between byte array a
  • fix 19599 - (Min) java.lang.IllegalArgumentException
  • fix 19961 - (Nor) Sheet.getColumnWidth() returns wrong value
  • fix 21066 - (Blo) Can not modify a blank spreadsheet
  • fix 21444 - (Enh) Macro functions
  • fix 21447 - (Nor) [RFE]String Formula Cells
  • fix 21674 - (Enh) Documentation changes for @(Greater|Less|Not)EqualPt
  • fix 21863 - (Enh) build.xml fixes
  • fix 22195 - (Nor) [RFE] Support for Storage Class ID
  • fix 22742 - (Cri) Failed to create HSSFWorkbook!
  • fix 22922 - (Cri) HSSFSheet.shiftRows() throws java.lang.IndexOutOfBoundsExcep
  • fix 22963 - (Nor) org.apache.poi.hpsf.SummaryInformation.getEditTime() should
  • fix 24149 - (Maj) Error passing inputstream to POIFSFileSystem
  • fix 21722 - (Nor) Add a ProtectRecord to Sheets and give control over
  • fix 9576 - (Nor) DBCELL, INDEX EXTSST (was Acess 97 import)
  • fix 13478 - (Blo) [RFE] POIFS, RawDataBlock: Missing workaround for lo
  • fix 14824 - (Nor) Unable to modify empty sheets
  • fix 12843 - (Cri) Make POI handle chinese better
  • fix 15353 - (Nor) [RFE] creating a cell with a hyperlink
  • fix 15375 - (Blo) Post 1.5.1 POI causes spreadsheet to become unopenable.

Version 2.0-pre3 (2003-07-29)

  • add HPSF is now able to read properties which are given in the property set stream but which don't have a value ("variant" type VT_EMPTY). The getXXX() methods of the PropertySet class return null if their return type is a reference (like a string) or 0 if the return type is numeric. Details about the return types and about how to distinguish between a property value of zero and a property value that is not present can be found in the API documentation.
  • fix Gridlines can now be turned on and off
  • fix NamePTG refactoring/fixes
  • fix minor fixes to ExternSheet and formula strings
  • fix Sheet comparisons now ignore case

Version 2.0-pre2 (2003-07-06)

  • fix A nasty concurrency problem has been fixed. Any users working in a multithreaded environment should seriously consider upgrading to this release.
  • update The EXTSST record has been implemented. This record is used by excel for optimized reading of strings.
  • update When rows are shifted, the merged regions now move with them. If a row contains 2 merged cells, the resulting shifted row should have those cells merged as well.
  • fix There were some issues when removing merged regions (specifically, removing all of them and then adding some more) and have been resolved.
  • fix When a sheet contained shared formulas (when a formula is dragged across greater than 6 cells), the clone would fail. We now support cloning of sheets that contain this Excel optimization.
  • add Support added for reading formulas with UnaryPlus and UnaryMinus operators.

Version 2.0-pre1 (2003-05-17)

  • add Patch applied for deep cloning of worksheets was provided
  • add Patch applied to allow sheet reordering
  • add Added additional print area setting methods using row/column numbers
  • fix HDF: Negative Array size fix
  • update Added argument pointers to support the IF formula
  • update Formulas: Added special character support for string literals, specifically for SUMIF formula support and addresses a bug as well
  • fix BlockingInputStream committed to help ensure reads
  • fix Fixed problem with NaN values differing from the investigated value from file reads in FormulaRecords
  • fix Patch for getColumnWidth in HSSF
  • add Patch for dealing with mult-level numbered lists in HDF
  • fix Due to named reference work, several named-ranged bugs were closed
  • fix Patch applied to prevent sheet corruption after a template modification
  • update Shared Formulas now Supported
  • update Added GreaterEqual, LessEqual and NotEqual to Formula Parser
  • update Added GreaterThan and LessThan functionality to formulas
  • fix Patches for i10n
  • update POI Build System Updated
  • fix font names can now be null

Version 1.10-dev (2003-02-19)

  • add Support for zoom level
  • add Freeze and split pane support
  • add Row and column headers on printouts

Version 1.8-dev (2002-09-20)

  • add Custom Data Format Support
  • add Enhanced Unicode Support for Russian and Japanese
  • add Enhanced formula support including read-only for "optimized if" statements.
  • add Support for cloning objects
  • add Fixes for header/footer
  • add Spanish Documentation translations
  • add Support for preserving VBA macros

Version 1.7-dev (Release date not recorded)

  • update Removed runtime dependency on commons logging.
  • update Formula support

Version 1.5.1 (2002-06-16)

  • update Removed depedency on commons logging. Now define poi.logging system property to enable logging to standard out.
  • fix Fixed SST string handling so that spreadsheets with rich text or extended text will be read correctly.

Version 1.5 (2002-05-06)

  • update New project build.
  • update New project documentation system based on Cocoon.
  • update Package rename
  • fix Various bug fixes
  • add Early stages of HSF development (not ready for development)
  • add Initial low level record support for charting (not complete)

Version 1.2.0 (2002-01-19)

  • update Changes not recorded.

Version 1.1.0 (2002-01-04)

  • update Created new event model
  • update Optimizations made to HSSF including aggregate records for values, rows, etc.
  • update predictive sizing, offset based writing (instead of lots of array copies)
  • update minor re-factoring and bug fixes.

Version 1.0.2 (2002-01-11)

  • update Changes not recorded.

Version 1.0.1 (2002-01-04)

  • update Changes not recorded.

Version 1.0.0 (2001-12-30)

  • update Minor documentation updates.

Version 0.14.0 (2001-12-22)

  • update Added DataFormat helper class and exposed set and get format on HSSFCellStyle
  • update Fixed column width apis (unit wise) and various javadoc on the subject
  • update Fix for Dimensions record (again)... (one of these days I'll write a unit test for this ;-p).
  • update Some optimization on sheet creation.

Version 0.13.0 (2001-12-16)

  • update Changes not recorded.

Version 0.12.0 (2001-12-12)

  • update Added MulBlank, Blank, ColInfo
  • update Added log4j facility and removed all sys.out type logging
  • update Added support for adding font's, styles and corresponding high level api for styling cells
  • update added support for changing row height, cell width and default row height/cell width.
  • update Added fixes for internationalization (UTF-16 should work now from HSSFCell.setStringValue, etc when the encoding is set)
  • update added support for adding/removing and naming sheets.

Version 0.11.0 (2001-12-08)

  • update Bugfix release. We were throwing an exception when reading RKRecord objects.

Version 0.10.0 (2001-12-02)

  • update Got continuation records to work (read/write)
  • update Added various pre-support for formulas
  • update Massive API reorganization, repackaging.
  • update BiffViewer class added for validating HSSF & POI and/or HSSF Output.
  • update Better API support for modification.

Version 0.7 (and interim releases) (2001-11-17)

  • update Added encoding flag to high and low level api to use utf-16 when needed (HSSFCell.setEncoding())
  • update added read only support for Label records (which are reinterpreted as LabelSST when written)
  • update Broken continuation record implementation (oops)
  • update BiffViewer class added for validating HSSF & POI and/or HSSF Output.

Version 0.6 (2001-11-11)

  • update Support for read/write and modify.
  • update Read only support for MulRK records (converted to Number when writing)

Version 0.5 (2001-11-05)

  • update Changes not recorded.

Version 0.4 (2001-10-31)

  • update Changes not recorded.

Version 0.3 (2001-10-26)

  • update Changes not recorded.

Version 0.2 (2001-09-24)

  • update Changes not recorded.

Version 0.1 (2001-08-28)

  • update First ever public release