History of Changes
44421 - Update Match function to properly support Area references
44417 - Improved handling of references for the need to quote the sheet name for some formulas, but not when fetching a sheet by name
44413 - Fix for circular references in INDEX, OFFSET, VLOOKUP formulas, where a cell is actually allowed to reference itself
44403 - Fix for Mid function handling its arguments wrong
44364 - Support for Match, NA and SumProduct functions, as well as initial function error support
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.
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)
44373 - Have HSSFDateUtil.isADateFormat recognize more formats as being dates
37923 - Support for Excel hyperlinks
Implement hashCode() and equals(obj) on HSSFFont and HSSFCellStyle
44345 - Implement CountA, CountIf, Index, Rows and Columns functions
44336 - Properly escape sheet names as required when figuring out the text of formulas
44326 - Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptions
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
44297 - IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
44296 - Fix for reading slide background images
44293 - Avoid swapping AreaPtgs from relative to absolute
44292 - Correctly process the last paragraph in a word file
44254 - Avoid some unread byte warnings, and properly understand DVALRecord
Add another formula evaluation method, evaluateFormulaCell(cell), which will re-calculate the value for a formula, without affecting the formula itself.
41726 - Fix how we handle signed cell offsets in relative areas and references
44233 - Support for getting and setting a flag on the sheet, which tells excel to re-calculate all formulas on it at next reload
44201 - Enable cloning of sheets with data validation rules
44200 - Enable cloning of sheets with notes
43008 - Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly
43058 - Support setting row grouping on files from CR IX, which lack GutsRecords
31795 - Support cloning of sheets with certain drawing objects on them
43902 - Don't consider merged regions when auto-sizing columns
42464 - Avoid "Expected ExpPtg to be converted from Shared to Non-Shared Formula" on large, formula heavy worksheets
42033 - Add support for named ranges with unicode names
34023 - When shifting rows, update formulas on that sheet to point to the new location of those rows
Support getting all the cells referenced by an AreaReference, not just the corner ones
43510 - Add support for named ranges in formulas, including non-contiguous named ranges
43937 - Add support for hiding and un-hiding sheets, and checking their current hidden status
44167 - Fix for non-contiguous named ranges
44070 - Fix for shifting comments when shifting rows
Support for tables in HSLF
43781 - Fix for extracting text from TextBoxes HSLF in
Improve JavaDocs relating to hssf font and fill colourings
44095, 44097, 44099 - [PATCH] Support for Mid, Replace and Substitute excel functions
44055 - [PATCH] Support for getting the from field from HSMF messages
43551 - [PATCH] Support for 1904 date windowing in HSSF (previously only supported 1900 date windowing)
41064 - [PATCH] Support for String continue records
27511 - [PATCH] Support for data validation, via DVRecord and DVALRecord
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)