History of Changes 43877 and 39512 - Fix for handling mixed OBJ and CONTINUE records. 43807 - Throw an IllegalArgumentException if asked to create a merged region with invalid columns or rows, rather than writing out a corrupt file 43837 - [PATCH] Support for unicode NameRecords 43721 - [PATCH] Support for Chart Title Format records 42794 - [PATCH] Fix for BOF records from things like Access 43648 - Fix for IntPtg and short vs int 43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn Include an Excel text extractor, and put all existing text extractors under a common superclass Improvements to the LZW compression engine used by HDGF HSSFPicture.resize() - a handy method to reset a picture to its original width and height Add a getSheetIndex(HSSFSheet) method to HSSFWorkbook, and allow a HSSFSheet to get at its parent HSSFWorkbook Move POIDocument out of Scratchpad, and update HSSFWorkbook to use it 43399 - [PATCH] - Fix for Cell References for rows > 32678 43410 - [PATCH] - Improved Formula Parser support for numbers and ranges When writing HSLF files out, optionally preserve all OLE2 nodes (default is just the HSLF related nodes) 43323 - [PATCH] - Support for adding Pictures to ShapeGroups in HSLF. 43222 - [PATCH] - Support for getting OLE object data from HSSFWorkbook. 43247 - [PATCH] - Support for getting OLE object data from slideshows. 43125 - [PATCH] - Support for reading EMF, WMF and PICT images via HSSFWorkbook.getAllPictures() 43088 - [PATCH] - Fix for reading files with long cell comments and text boxes 42844 - [PATCH] - Fix for the EventUserModel and records that aren't immediately followed by their ContinueRecords 43055 - [PATCH] - Fix for saving Crystal Reports xls files when preserving nodes 43116 - [PATCH] - Fix for Escher layer handling of embeded OLE2 documents 43108 - [PATCH] - Where permissions deny fetching System Properties, use sensible defaults 43093 - [PATCH] - Fix formula evaluator support for Area3D references to other sheets Improvements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this 42999 - [PATCH] - Fix for HSSFPatriarch positioning problems Support for write-protecting a HSSF workbook Support for querying, setting and un-setting protection on sheets in a HSSF workbook Initial HSMF (outlook) support Tidy up the javadocs Administrative updates to the Maven POMs, and the release artificat build process 23951 - [PATCH] Fix for HSSF setSheetOrder and tab names 42524 - [PATCH] Better HSLF support for problem shape groups 42520 - [PATCH] Better HSLF support for corrupt picture records Initial support for a "missing record aware" HSSF event model Additional HSLF support for Title and Slide Master Sheets 42474 - [PATCH] Improved HSLF note to slide matching, and a NPE 42481 - [PATCH] Tweak some HSLF exceptions, to make it clearer what you're catching 42667 - [PATCH] Fix for HSLF writing of files with tables Improved way of detecting HSSF cells that contain dates, isADateFormat Initial, read-only support for Visio documents, as HDGF 39977 - [PATCH] Fix POM for Maven users 38976 - [PATCH] Add createPicture to HSSFShapeGroup Detect Office 2007 XML documents, and throw a meaningful exception Additional HSLF support for PowerPoint Initial support for HWPF image extraction Additional HSLF support for PowerPoint HSSF Formula support Additional HSLF support for PowerPoint 39389 - [PATCH] Extended Ascii support for WingDings Bugzilla Bug 29976 [PATCH] HSSF hyperlink formula size problem Image writing support HSLF - Initial PowerPoint support Outlining support 27574 - [PATCH] HSSFDateUtil.getExcelDate() is one hour off when DST changes 26465 - [PATCH] wrong lastrow entry 28203 - [PATCH] Unable to open read-write excel file including forms Add support for the Escher file format 27005 java.lang.IndexOutOfBoundsException during Workbook.cloneSheet() No changes Bug 25695 - HSSFCell.getStringCellValue() on cell which has string formula will return swap bye unicode characters. Updated website for upcoming release Formula Parser fixes with tests, by Peter M Murray Bug 25457 Fixed cloning merge regions The cloned reference for merged cells did not create a new collection, so deletes cascaded to the original. Fix to 24519 call to getCustomPalette() from a newly created workbook now works Fix supplied for bug 24397 where some compilation got ambiguous classes. Explicitly imports the classes. Patch supplied by Jean-Pierre Paris. 12561 (Min) HSSFWorkbook throws Exceptions 12730 (Nor) values dont get copied to another sheet. 13224 (Maj) Exception thrown when cell has =Names call 13796 (Nor) Error Reading Formula Record (optimized if, external link) 13921 (Nor) Sheet name cannot exceed 31 characters and cannot contain : 14330 (Nor) Error reading FormulaRecord 14460 (Nor) Name in Formula - ArrayOutOfBoundsException 15228 (Cri) [Urgent] ArrayIndexoutofbounds Exception. POI - Version 1.8 16488 (Maj) Unable to open written spreadsheet in Excel, but can in Open 16559 (Nor) testCustomPalette.xls crashes Excel 97 16560 (Nor) testBoolErr.xls crashes Excel '97 17374 (Min) HSSFFont - BOLDWEIGHT_NORMAL 18800 (Maj) The sheet made by HSSFWorkbook#cloneSheet() doesn't work cor 18846 (Min) [PATCH][RFE]Refactor the transformation between byte array a 19599 (Min) java.lang.IllegalArgumentException 19961 (Nor) [PATCH] Sheet.getColumnWidth() returns wrong value 21066 (Blo) Can not modify a blank spreadsheet 21444 (Enh) [PATCH] Macro functions 21447 (Nor) [RFE]String Formula Cells 21674 (Enh) [PATCH] Documentation changes for @(Greater|Less|Not)EqualPt 21863 (Enh) [PATCH] build.xml fixes 22195 (Nor) [RFE] [PATCH] Support for Storage Class ID 22742 (Cri) Failed to create HSSFWorkbook! 22922 (Cri) HSSFSheet.shiftRows() throws java.lang.IndexOutOfBoundsExcep 22963 (Nor) org.apache.poi.hpsf.SummaryInformation.getEditTime() should 24149 (Maj) Error passing inputstream to POIFSFileSystem 21722 (Nor) [PATCH] Add a ProtectRecord to Sheets and give control over 9576 (Nor) [PATCH] DBCELL, INDEX EXTSST (was Acess 97 import) 13478 (Blo) [PATCH] [RFE] POIFS, RawDataBlock: Missing workaround for lo 14824 (Nor) Unable to modify empty sheets 12843 (Cri) [PATCH] Make POI handle chinese better 15353 (Nor) [RFE] creating a cell with a hyperlink 15375 (Blo) Post 1.5.1 POI causes spreadsheet to become unopenable. 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. Gridlines can now be turned on and off NamePTG refactoring/fixes minor fixes to ExternSheet and formula strings Sheet comparisons now ignore case A nasty concurrency problem has been fixed. Any users working in a multithreaded environment should seriously consider upgrading to this release. The EXTSST record has been implemented. This record is used by excel for optimized reading of strings. 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. There were some issues when removing merged regions (specifically, removing all of them and then adding some more) and have been resolved. 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. Support added for reading formulas with UnaryPlus and UnaryMinus operators. Patch applied for deep cloning of worksheets was provided Patch applied to allow sheet reordering Added additional print area setting methods using row/column numbers HDF: Negative Array size fix Added argument pointers to support the IF formula Formulas: Added special character support for string literals, specifically for SUMIF formula support and addresses a bug as well BlockingInputStream committed to help ensure reads Fixed problem with NaN values differing from the investigated value from file reads in FormulaRecords Patch for getColumnWidth in HSSF Patch for dealing with mult-level numbered lists in HDF Due to named reference work, several named-ranged bugs were closed Patch applied to prevent sheet corruption after a template modification Shared Formulas now Supported Added GreaterEqual, LessEqual and NotEqual to Formula Parser Added GreaterThan and LessThan functionality to formulas Patches for i10n POI Build System Updated font names can now be null Support for zoom level Freeze and split pane support Row and column headers on printouts Custom Data Format Support Enhanced Unicode Support for Russian and Japanese Enhanced formula support including read-only for "optimized if" statements. Support for cloning objects Fixes for header/footer Spanish Documentation translations Support for preserving VBA macros Removed runtime dependency on commons logging. Formula support Removed depedency on commons logging. Now define poi.logging system property to enable logging to standard out. Fixed SST string handling so that spreadsheets with rich text or extended text will be read correctly. New project build. New project documentation system based on Cocoon. Package rename Various bug fixes Early stages of HSF development (not ready for development) Initial low level record support for charting (not complete) Created new event model Optimizations made to HSSF including aggregate records for values, rows, etc. predictive sizing, offset based writing (instead of lots of array copies) minor re-factoring and bug fixes. Minor documentation updates. Added DataFormat helper class and exposed set and get format on HSSFCellStyle Fixed column width apis (unit wise) and various javadoc on the subject Fix for Dimensions record (again)... (one of these days I'll write a unit test for this ;-p). Some optimization on sheet creation. Changes not recorded. Added MulBlank, Blank, ColInfo Added log4j facility and removed all sys.out type logging Added support for adding font's, styles and corresponding high level api for styling cells added support for changing row height, cell width and default row height/cell width. Added fixes for internationalization (UTF-16 should work now from HSSFCell.setStringValue, etc when the encoding is set) added support for adding/removing and naming sheets. Bugfix release. We were throwing an exception when reading RKRecord objects. Got continuation records to work (read/write) Added various pre-support for formulas Massive API reorganization, repackaging. BiffViewer class added for validating HSSF & POI and/or HSSF Output. Better API support for modification. Added encoding flag to high and low level api to use utf-16 when needed (HSSFCell.setEncoding()) added read only support for Label records (which are reinterpreted as LabelSST when written) Broken continuation record implementation (oops) BiffViewer class added for validating HSSF & POI and/or HSSF Output. Support for read/write and modify. Read only support for MulRK records (converted to Number when writing)