49895 - avoid corruption of XSSFWorkbook after removing all merged cells from sheet 49907 - fixed inconsistent behaviour between HSSF and XSSF when creating consecutive names Add getMimeType() method to HWPF Picture, alongside existing file extension Add code for reading Ole10Native data Add getMimeType() method to HSSF/XSSF PictureData, alongside existing file extension 49887 - allow sheet names longer than 31 chars in XSSF, enforce name uniqueness on the first 31 chars 49878 - improved API for hiding sheets 49875 - fixed XSSFWorkbook.createSheet to throw exception if sheet name begins or ends with a single quote (') 49873 - fixed XSSFFormulaEvaluator to support blank cells 49850 - added a getter for _iStartAt in ListFormatOverrideLevel 49761 - change cell type to error when setting Double.NaN or Infinities 49833 - ensure that CTNumPr is included in poi-ooxml-schemas.jar 49841 - fixed LEFT and RIGHT to return #VALUE! when called with a negative operand 49783 - fixed evaluation of XSSF workbooks containing formulas with reference errors (#REF!) 49751 - fixed fetching names of user defined styles in HSSFCellStyle.getUserStyleName() 48900 - support for protecting a XSSF workbook 49725 - fixed FormulaParser to correctly process defined names with underscore 48526 - added implementation for RANDBETWEEN() 49725 - avoid exception in OperandResolver.parseDouble when input is minus ("-") 49723 - fixed OperandResolver to correctly handle inputs with leading decimal place initial support for Excel autofilter 47990 - Support for .msg attachments within a MAPIMessage .msg Improve handling and warnings when closing OPCPackage objects 49702 - Correct XSSFWorkbook.getNumCellStyles to check the right styles list 49690 - Add WorkbookUtil, which provies a way of generating valid sheet names 49694 - Use DataFormatter when autosizing columns, to better match the real display width of formatted cells 49441 - Allow overriding and guessing of HSMF non-unicode string encodings 49689 - Allow the setting of user style names on newly created HSSF cell styles Make it easier to tell which content types each POIXMLTextExtractor handles 49649 - Added clone support for UserSView* and Feat* families of records 49653 - Support for escaped unicode characters in Shared String Table 49579 - prevent ArrayIndexOutOfBoundException in UnknowEscherRecord 49593 - preserve leading and trailing white spaces in XWPFRun 49455 - Insert the content of fldSimple fields into the XWPFWordTextExtractor output 49640 - Fixed parsing formulas containing defined names beginning with an underscore 49538 - Added implementation for POISSON() 49524 - Support for setting cell text to be vertically rotated, via style.setRotation(0xff) 49609 - Case insensitive matching of OOXML part names 49581 - Ability to add, modify and remove series from HSSF Charts 49185 - Support for HSSFNames where the comment is stored in a NameCommentRecord 49599 - correct writing of noterecord author text when switching between ascii and unicode hwpf: improve reading of auto-saved ("complex") documents paragraph level as well as whole-file text extraction for word 6/95 files through hwpf text extraction support for older word 6 and word 95 files via hwpf 49508 - allow the addition of paragraphs to xwpf table cells 49446 - don't consider 17.16.23 field codes as properly part of the paragraph's text xslfslideshow shouldn't break on .thmx (theme) files. support for them is still very limited though 49432 - lazy caching of xssfcomment ctcomment objects by reference, to make repeated comment searching faster better handling of outlook messages in hsmf when there's no recipient email address when formatting numbers with dataformatter, handle brackets following colours 48574 - further xwpf support for tables, paragraphs, including enhanced support for adding new ones 48245 - tweak hwpf table cell detection to work across more files 48996 - initial support for external name references in hssf formula evaluation 46664 - fix up tab ids when adding new sheets, so that print areas don't end up invalid 45269 - improve replacetext on hwpf ranges 47815 - correct documentation on what happens when you request a string from a non-string formula cell 49386 - avoid npe when extracting ooxml file properties which are dates 49377 - only call decimalformat.setroundingmode on java 1.6 - it's needed to match excel's rendering of numbers 49378 - correct 1.6ism parse the hsmf headers chunk if present, and use it to find dates in text extraction if needed 48494 - detect and support time formats like hh:mm;hh:mm 48494 - have excelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them 48494 - have eventbasedexcelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them 49096 - add clone support to chart begin and end records, to allow cloning of more chart containing sheets list attachment names in the output of outlooktextextractor (to get attachment contents, use extractorfactory as normal) 48872 - allow dateformatter.formatrawcellcontents to handle 1904 as well as 1900 dates 48872 - handle mmmmm and elapsed time formatting rules in dataformatter 48872 - handle zero formatting rules, and better color detection in dataformatter 48872 - support for more kinds of formatting in dataformatter 43161 - fixed construction of the dib picture header 49311 - initial support for reading aes-encrypted/write-protected ooxml files 48718 - make the creation of multiple, un-modified fonts in a row in xssf match the old hssf behaviour 44916 - allow access to the hssfpatriarch from hssfsheet once created 48779 - allow you to get straight from a cellstyle to a color, irrespective of if the color is indexed or inline-defined 48924 - allow access of the hwpf dateandtime underlying date values 48926 - initial support for the hwpf revision marks authors list 49160 - ensure that ctdigsigblob is included in poi-ooxml jar 49189 - detect w:tab and w:cr entries in xwpf paragraphs, even when the xsd is silly and maps them to ctempty 49273 - correct handling for font character sets with indicies greater than 127 49334 - track the valuerangerecords of charts in hssfchart, to allow the basic axis operations 49242 - track the linkdatarecords of charts in hssfchart improved performance of xssfworkbook.write 48846 - avoid npe when finding cell comments 49325 - ensure that ctphoneticpr is included in poi-ooxml jar 49191 - fixed tests failing in non-english locales 48432 - support for xssf themes 49244 - support for data validation for ooxml format 49066 - worksheet/cell formatting, with view and html converter 49020 - workaround excel outputting invalid xml in button definitions by not closing br tags 49050 - improve performance of abstractescherholderrecord when there are lots of continue records 49194 - correct text size limit for ooxml .xlsx files 49254 - fix cellutils.setfont to use the correct type internally 49139 - properly support 4k big block size in poifs 48936 - avoid writing malformed cdata blocks in sharedstrings.xml 49026 - added implementation for text() 49025 - added implementation for trunc() 49147 - properly close internal inputstream in extractorfactory#createextractor(file) 49138 - fixed locale-sensitive formatters in packagepropertiespart 49153 - ensure that ctvectorvariant is included in poi-ooxml-schemas.jar 49146 - added accessors to coreproperties.keywords 48916 - propagate parent to parent-aware records decoded from escher 48485 - add extra paper size constans to printsetup, such as a3, b4 and b5 make poifs.filesystem.directorynode preserve the original ordering of its files, which hsmf needs to be able to correctly match up chunks support evaluation of indirect defined names in indirect 43670 - improve hdgf chunkv11 separator detection, and short string detection, to solve the "negative length of chunkheader" problem 48617 - optionally allow the overriding of the locale used by dataformatter to control how the default number and date formats should look new event based xssf text extractor (xssfeventbasedexcelextractor) extractorfactory can now be told to prefer event based extractors (current excel only) on a per-thread or overall basis 48544 - avoid failures in xlsx2csv when shared string table is missing 48571 - properly close all io streams created in opcpackage 48572 - always copy all declared inner classes and interfaces when generating poi-ooxml-schemas low level record support for the extrst (phonetic text) part of unicode strings. no usermodel access to it as yet though. record.unicodestring has moved to record.common.unicodestring, to live with the other record-part classes, as it isn't a full record. avoid creating temporary files when opening opc packages from input stream improved how hsmf handles multiple recipients add publishertextextractor support to extractorfactory add xslf support for text extraction from tables support attachments as embeded documents within the new outlooktextextractor add a text extractor (outlooktextextractor) to hsmf for simpler extraction of text from .msg files some improvements to hsmf parsing of .msg files initialise the link type of hssfhyperlink, so that gettype() on it works 48425 - improved performance of dateutil.iscelldateformatted() 47215 - fixed interfaceendrecord to tolerate unexpected record contents 48415 - improved javadoc on hsspicture.resize() added ant target to install artifacts in local repository 48026 - fixed pagesettingsblock to allow multiple headerfooterrecord records 48202 - fixed cellrangeutil.mergecellranges to work for adjacent cell regions 48339 - fixed externalnamerecord to properly distinguish dde data from ole data items 47920 - allow editing workbooks embedded into powerpoint files 48343 - added implementation of subtotal function switch to compiling the ooxml schemas for java 1.5 48332 - fixed xssfsheet autosizecolumn() to tolerate empty richtextstring 48332 - fixed columninforecord to tolerate missing reserved field 47701 - fixed recordformatexception when reading list subrecords (lbsdatasubrecord) memory usage optimization in xssf - avoid creating parentless xml beans 47188 - avoid corruption of workbook when adding cell comments 48106 - improved work with cell comments in xssf add support for creating summaryinformation and documentsummaryinformation properties on poidocuments that don't have them, via poidocument.createinformationproperties() 48180 - be more forgiving of short chart records, which skip some unused fields 48274 - fix erronious wrapping of byte colours in hssfpalette.findsimilarcolor 48269 - fix fetching of error codes from xssf formula cells 48229 - fixed javadoc for hssfsheet.setcolumnwidth and xssfsheet setcolumnwidth 47757 - fixed xlsx2csv to avoid exception when processing cells with multiple "t" elements 48195 - short-circuit evaluation of if() and choose() 48161 - support for text extraction from ppt master slides 47970 - added a method to set arabic mode in hssfsheet 48134 - release system resources when using picture.resize() 48087 - avoid npe in xssfchartsheet when calling methods of the superclass 48038 - handle reading hwpf stylesheets from non zero offsets when running the "compile-ooxml-xsds" ant task, also generate the source jar for the ooxml schemas 45672 - improve handling by missingrecordawarehssflistener of records that cover multiple cells (mulblankrecord and mulrkrecord) 48096 - relaxed validation check in recalcidrecord 48085 - improved error checking in blockallocationtablereader to trap unreasonable field values 47924 - fixed logic for matching cells and comments in hssfcell.getcellcomment() 47942 - added implementation of protection features to xlsx and docx files 48070 - preserve leading and trailing white spaces in xssfrichtextstring 48044 - added implementation for countblank function 48036 - added intersectioneval to allow evaluation of the intersection formula operator 47999 - avoid un-needed call to the jvm garbage collector when working on ooxml opc packages 47922 - added example hsmf application that converts a .msg file to text and extracts attachments 47903 - added ant target to compile scratchpad examples 47839 - improved api for ooxml custom properties 47862 - fixed xssfsheet.setcolumnwidth to handle columns included in a column span 47804 - fixed xssfsheet.setcolumnhidden to handle columns included in a column span 47889 - fixed xssfcell.getstringcellvalue() to properly handle cached formula results 47747 - fixed logic for locating shared formula records 47809 - improved work with user-defined functions 47581 - fixed xssfsheet.setcolumnwidth to produce xml compatible with mac excel 2008 47734 - removed unnecessary svn:executable flag from files in svn trunk 47543 - added javadoc how to avoid excel crash when creating too many hssfrichtextstring cells 47813 - fixed problems with xssfworkbook.removesheetat when workbook contains chart 47737 - adjust sheet indices of named ranges when deleting sheets 47770 - built-in positive formats don't need starting '(' 47771 - added method setfunction(boolean) for defined names 47768 - implementation of excel "days360" and "npv" functions 47751 - do not allow hssf's cell text longer than 32,767 characters 47757 - added an example demonstrating how to convert an xlsx workbook to csv 44770 - fixed ppt parser to tolerate comment2000 containers with missing comment text 47773 - fix for extraction paragraphs and sections from headers/footers with xwpfwordextractor 47727 - support for extraction of header / footer images in hwpf moved all test data to a top-level directory 47721 - Added implementation for INDIRECT() 45583 - Avoid exception when reading ClipboardData packet in OLE property sets 47652 - Added support for reading encrypted workbooks 47604 - Implementation of an XML to XLSX Importer using Custom XML Mapping 47620 - Avoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns 47606 - Fixed XSSFCell to correctly parse column indexes greater than 702 (ZZ) 47598 - Improved formula evaluator number comparison 47571 - Fixed XWPFWordExtractor to extract inserted/deleted text 47548 - Fixed RecordFactoryInputStream to properly read continued DrawingRecords 46419 - Fixed compatibility issue with OpenOffice 3.0 47559 - Fixed compatibility issue with Excel 2008 Mac sp2. Please see the HSSF+XSSF project page for more information. 47540 - Fix for saving custom and extended OOXML properties 47535 - Fixed WordExtractor to tolerate files with empty footnote block 47517 - Fixed ExtractorFactory to support .xltx and .dotx files 45556 - Support for extraction of footnotes from docx files 45555 - Support for extraction of endnotes from docx files 47520 - Initial support for custom XML mappings in XSSF 47460 - Fixed NPE when retrieving core properties from a newly created workbook 47498 - Fixed HyperlinkRecord to properly handle URL monikers 47504 - Fixed XSSFWorkbook to read files with hyperlinks to document locations 47479 - Fix BoolErrRecord to tolerate incorrect format written by OOO 47448 - Allow HSSFEventFactory to handle non-zero padding at the end of the workbook stream 47456 - Support for getting OLE object data in PowerPointExtractor 47411 - Explicitly set the 1900 date system when creating XSSF workbooks 47400 - Support for text extraction of footnotes, endnotes and comments in HWPF 47415 - Fixed PageSettingsBlock to allow multiple PLS records 47412 - Fixed concurrency issue with EscherProperties.initProps() 47143 - Fixed OOM in HSSFWorkbook#getAllPictures when reading .xls files containing metafiles Added implementation for ISNA() 46793 - fixed SimpleShape#getLineWidth to handle default line width 47356 - removed unused private fields in HWPF BorderCode 47355 - Improved HWPF TableCell to expose TableCellDescriptor 46610 - Improved HWPF to better handle unicode 47261 - Fixed SlideShow#removeSlide to remove references to Notes 47375 - Fixed HSSFHyperlink to correctly set inter-sheet and file links 47384 - Fixed ExternalNameRecord to handle unicode names 47372 - Fixed locale-sensitive unit tests to pass when running on non-US locale 47363 - Fixed HSSFSheet to allow addition of data validations after sheet protection 47294 - Fixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes 47309 - Fixed logic in HSSFCell.getCellComment to handle sheets with more than 65536 comments 46776 - Added clone() method to MulBlankRecord to fix crash in Sheet.cloneSheet() 47244 - Fixed HSSFSheet to handle missing header / footer records 47312 - Fixed formula parser to properly reject cell references with a '0' row component 47199 - Fixed PageSettingsBlock/Sheet to tolerate margin records after other non-PSB records 47069 - Fixed HSSFSheet#getFirstRowNum and HSSFSheet#getLastRowNum to return correct values after removal of all rows 47278 - Fixed XSSFCell to avoid generating xsi:nil entries in shared string table 47206 - Fixed XSSFCell to properly read inline strings 47250 - Fixed FontRecord to expect unicode flags even when name length is zero 47198 - Fixed formula evaluator comparison of -0.0 and 0.0 47229 - Fixed ExternalNameRecord to handle DDE links 46287 - Control of header and footer extraction in ExcelExtractor / XSSFExcelExtractor 46554 - New ant target "jar-examples" 46161 - Support in XSSF for setGroupColumnCollapsed and setGroupRowCollapsed 46806 - Allow columns greater than 255 and rows greater than 0x100000 in XSSF formulas 41711 - Base class for "old version" exceptions, and new HSLF detection + use of old versions exception 47179 - Fix string encoding issues with HSMF chunks on non-windows platforms 47183 - Attachment support for HSMF 47154 - Handle the cell format @ as the same as General 47048 - Fixed evaluation of defined names with the 'complex' flag set 46953 - More tweaks to PageSettingsBlock parsing logic in Sheet constructor 47089 - Fixed XSSFWorkbook.createSheet to properly increment sheetId 46568 - Fixed XSLFPowerPointExtractor to properly process line breaks 39056 - Fixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream 47054 - Fixed cloneStyleFrom to avoid exception when cloning styles of the same family 46186 - Fixed Sheet to read GutsRecord in the Sheet(RecordStream rs) 46714 - Automatically call sheet.setAlternativeExpression when sheet.setRowSumsBelow is called 46279 - Allow 255 arguments for excel functions in XSSF 47028 - Fixed XSSFCell to preserve cell style when cell value is set to blank 47026 - Avoid NPE in XSSFCell.setCellType() when workbook does not have SST 46987 - Allow RecordFactory to handle non-zero padding at the end of the workbook stream 47034 - Fix reading the name of a NameRecord when the name is very long 47001 - Fixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs 46973 - Fixed defined names to behave better when refersToFormula is unset 46832 - Allow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF 46951 - Fixed formula parser to better handle range operators and whole row/column refs. 46948 - Fixed evaluation of range operator to allow for area-ref operands 46918 - Fixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format 46898 - Fixed formula evaluator to not cache intermediate circular-reference error results 46917 - Fixed PageItemRecord(SXPI) to allow multiple field infos 46904 - Fix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files 46840 - PageSettingsBlock should include HEADERFOOTER record 46885 - update cell type when setting cached formula result in XSSFCell added modifiers for anchor type to XSSFClientAnchor 46772 - support built-in data formats in XSSFDataFormat 46719 - fixed XSSFSheet.shiftRows to correctly preserve row heights 46715 - preserve custom column widths across re-serialization of XSSFWorkbook 46703 - added setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet 46708 - added getMergedRegion(int) to common interface org.apache.poi.ss.usermodel.Sheet fixed Sheet.autoSizeColumn() to use cached formula values when processing formula cells Fixed formula parser to handle names with backslashes 46660 - added Workbook getHidden() and setHidden(boolean) 46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX 46627 - Fixed offset of added images if Pictures stream contains pictures with zero length 46536 - When shifting rows, update formulas on that sheet to point to the new location of those rows 46663 - Fixed XSSFSheet.shiftRows to properly update references of the shifted cells 46535 - Remove reference from calculation chain when a formula is deleted 46654 - HSSFRow/RowRecord to properly update cell boundary indexes 46643 - Fixed formula parser to encode range operator with tMemFunc 46647 - Fixed COUNTIF NE operator and other special cases involving type conversion 46635 - Added a method to remove slides 40520 - Fixed HSSFFont.applyFont() to properly apply font to overlapping regions 46545 - Fixed ObjRecord to ignore excessive padding written by previous POI versions 46613 - Fixed evaluator to perform case insensitive string comparisons 46544 - command line interface for hssf ExcelExtractor 46547 - Allow addition of conditional formatting after data validation 46548 - Page Settings Block fixes - continued PLS records and PSB in sheet sub-streams 46523 - added implementation for SUMIF function Support for reading HSSF column styles Hook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor 46472 - Avoid NPE in HPSFPropertiesExtractor when no properties exist 46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell() 45031 - added implementation for CHOOSE() function 46361 - resolve licensing issues around the HDGF resource file, chunks_parse_cmds.tbl 46410 - added implementation for TIME() function 46320 - added HSSFPictureData.getFormat() 46445 - fixed HSSFSheet.shiftRow to move hyperlinks fixed formula parser to correctly resolve sheet-level names 46433 - support for shared formulas in XSSF 46299 - support for carriage return and line break in XWPFRun 46300 - support for line spacing in XWPFParagraph 46308 - initial support for creation of XWPFTable Added getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow() 46385 - (also patch 46362) fix serialization of StyleRecord with unicode name 46368 - Fix HSSFRichTextRun and strings longer than 32768 characters Support sheet-level names Fixed XSSFCell to properly handle cell references with column numbers up to XFD 44914 - Fixed warning message "WARN. Unread n bytes of record 0xNN" 46156 - Improved number to text conversion to be closer to that of Excel 46312 - Fixed ValueRecordsAggregate to handle removal of new empty row 46269 - Improved error message when attempting to read BIFF2 file 46206 - Fixed Sheet to tolerate missing DIMENSION records 46301 - added pivot table records: SXDI, SXVDEX, SXPI, SXIDSTM, SXVIEW, SXVD, SXVS, et al 46280 - Fixed RowRecordsAggregate etc to properly skip PivotTable records 46213 - Fixed FormulaRecordAggregate to gracefully ignore extra StringRecords 46174 - Fixed HSSFName to handle general formulas (not just area references) 46189 - added chart records: CHARTFRTINFO, STARTBLOCK, ENDBLOCK, STARTOBJECT, ENDOBJECT, and CATLAB 46199 - More tweaks to EmbeddedObjectRefSubRecord Changes to formula evaluation allowing for reduced memory usage 45290 - Support odd files where the POIFS header block comes after the data blocks, and is on the data blocks list 46184 - More odd escaped date formats Include the sheet number in the output of XLS2CSVmra 46043 - correctly write out HPSF properties with HWPF 45973 - added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF 46182 - fixed Slideshow.readPictures() to skip pictures with invalid headers 46137 - Handle odd files with a ContinueRecord after EOFRecord Fixed problem with linking shared formulas when ranges overlap 45784 - More fixes to SeriesTextRecord 46033 - fixed TableCell to correctly set text type 46122 - fixed Picture.draw to skip rendering if picture data was not found 15716 - memory usage optimisation - converted Ptg arrays into Formula objects 46065 - added implementation for VALUE function 45966 - added implementation for FIND function 45778 - fixed ObjRecord to read ftLbsData properly 46053 - fixed evaluation cache dependency analysis when changing blank cells 45518 - Fix up ColumnHelper to output valid col tags, by making 1 based and 0 based bits clearer, and using the right ones 45676 - Handle very long cells in the XSSF EventUserModel example Initial ExtractorFactory support for building TextExtractors for embeded documents Support stripping XSSF header and footer fields (eg page number) out of header and footer text if required Add POIXMLPropertiesTextExtractor, which provides to the OOXML file formats a similar function to HPSF's HPSFPropertiesExtractor 45539 - Improve XWPFWordExtractor to extract headers and footers Improve how XWPF handles paragraph text Support in XWPF handles headers and footers 45592 - Improve XWPF text extraction to include tables always, and picture text where possible 45545 - Improve XSLF usermodel support, and include XSLF comments in extracted text 45540 - Fix XSSF header and footer support, and include headers and footers in the output of XSSFExcelExtractor 45431 - Support for .xlsm files, sufficient for simple files to be loaded by excel without warning New class org.apache.poi.hssf.record.RecordFormatException, which DDF uses instead of the HSSF version, and the HSSF version inherits from 45431 - Partial support for .xlm files. Not quite enough for excel to load them though 45430 - Correct named range sheet reporting when no local sheet id is given in the xml 45018 - Support for fetching embeded documents from within an OOXML file Port support for setting a policy on missing / blank cells when fetching, to XSSF too Common text extraction factory, which returns the correct POITextExtractor for the supplied data Text Extraction support for the new OOXML files (.xlsx, .docx and .pptx) Initial support for processing OOXML Excel files (.xlsx), both directly through XSSF, and also through the new common UserModel Created a common interface for handling PowerPoint files, irrespective of if they are .ppt or .pptx Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx 45866 - allowed for change of unicode compression across Continue records 45964 - support for link formulas in Text Objects 43354 - support for evalating formulas with missing args 45912 - fixed ArrayIndexOutOfBoundsException in EmbeddedObjectRefSubRecord 45889 - fixed ArrayIndexOutOfBoundsException when constructing HSLF Table with a single row Initial support for creating hyperlinks in HSLF 45876 - fixed BoundSheetRecord to allow sheet names longer than 31 chars 45890 - fixed HSSFSheet.shiftRows to also update conditional formats 45865 modified Formula Parser/Evaluator to handle cross-worksheet formulas Optimised the FormulaEvaluator to take cell dependencies into account 16936 - Initial support for whole-row cell styling Update hssf.extractor.ExcelExtractor to optionally output blank cells too Include the sheet name in the output of examples.XLS2CSVmra 45784 - Support long chart titles in SeriesTextRecords 45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out 45844 - Addtional diagnostics for HSLF SlideShowRecordDumper 45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero 45815 - Bit mask values in StyleTextPropAtom were not preserved across read-write 45814 - Specify RecordType for slide show Handout (4041) 45805 - Fixed 16-bit signed/unsigned bug in HSSFSheet.getColWidth etc 45780 - Fixed HSSFSheet.shiftRows to also update Area refs 45804 - Update HSMF to handle Outlook 3.0 msg files, which have a different string chunk type Expose the name of Named Cell Styles via HSSFCellStyle (normally held on the parent style though) 45978 - Fixed IOOBE in Ref3DPtg.toFormulaString() due eager initialisation of SheetReferences Made HSSFFormulaEvaluator no longer require initialisation with sheet or row Extended support for cached results of formula cells 45639 - Fixed AIOOBE due to bad index logic in ColumnInfoRecordsAggregate Fixed special cases of INDEX function (single column/single row, errors) 45761 - Support for Very Hidden excel sheets in HSSF 45738 - Initial HWPF support for Office Art Shapes 45720 - Fixed HSSFWorkbook.cloneSheet to correctly clone sheets with drawings 45728 - Fix for SlideShow.reorderSlide in HSLF Initial support for embedded movies and controls in HSLF 45358 - signed/unsigned error when parsing 3-d area refs, performance problem evaluating area refs, and ClassCastExcecption in IF() Support for HPBF Publisher hyperlinks, including during text extraction 26321 and 44958 - preserve position of ArrayRecords and TableRecords among cell value records Impove empty header or footer handling in HWPF HeaderStories Avoid NPE in hssf.usermodel.HeaderFooter when stripping fields out Avoid NPE in EscherBSERecord on older escher records Basic text extractraction support in HPBF Initial, low level support for Publisher files, in the form of HPBF 45699 - Fix RowRecordsAggregate to tolerate intervening MERGEDCELLS records 45698 - Fix LinkTable to tolerate multiple EXTERNSHEET records 45682 - Fix for cloning of CFRecordsAggregate Initial support for evaluating external add-in functions like YEARFRAC 45672 - Fix for MissingRecordAwareHSSFListener to prevent multiple LastCellOfRowDummyRecords when shared formulas are present 45645 - Fix for HSSFSheet.autoSizeColumn() for widths exceeding Short.MAX_VALUE 45623 - Support for additional HSSF header and footer fields, including bold and full file path 45623 - Support stripping HSSF header and footer fields (eg page number) out of header and footer text if required 45622 - Support stripping HWPF fields (eg macros) out of text, via Range.stripFields(text) New HPSF based TextExtractor for document metadata, org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor Properly update the array of Slide's text runs in HSLF when new text shapes are added 45590 - Fix for Header/footer extraction for .ppt files saved in Office 2007 Big improvement in how HWPF handles unicode text, and more sanity checking of text ranges within HWPF Include headers and footers int he extracted text from HWPF's WordExtractor Added support to HWPF for headers and footers Improve how HWPF deals with unicode internally. Should avoid some odd behaviour when manipulating unicode text 45577 - Added implementations for Excel functions NOW and TODAY 45582 - Fix for workbook streams with extra bytes trailing the EOFRecord 45537 - Include headers and footers (of slides and notes) in the extracted text from HSLF 45472 - Fixed incorrect default row height in OpenOffice 2.3 44692 - HSSFPicture.resize() stretched image when there was a text next to it 45543 - Optionally extract comment text with PowerPointExtractor, and initial hslf model support for comments 45538 - Include excel headers and footers in the output of ExcelExtractor 44894 - refactor duplicate logic from EventRecordFactory to RecordFactory Support for Headers / Footers in HSLF 44953 - Extensive fixes for data validation 45519 - Fixed to keep datavalidation records together Support for creating new HSLF CurrentUserAtoms 45466 - Partial support for removing excel comments (won't work for all excel versions yet) 45437 - Detect encrypted word documents, and throw an EncryptedDocumentException instead of a OOM 45404 - New class, hssf.usermodel.HSSFDataFormatter, for formatting numbers and dates in the same way that Excel does 45414 - Don't add too many UncalcedRecords to sheets with charts in them 45398 - Support detecting date formats containing "am/pm" as date times 45410 - Removed dependency from contrib on commons beanutils,collections and lang New helper, HSSFOptimiser, which handles removing duplicated font and style records, to avoid going over the limits in Excel 45322 - Fixed NPE in HSSFSheet.autoSizeColumn() when cell number format was not found 45380 - Missing return keyword in ArrayPtg.toFormulaString() 44958 - Record level support for Data Tables. (No formula parser support though) 35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another 45289 - finished support for special comparison operators in COUNTIF 45126 - Avoid generating multiple NamedRanges with the same name, which Excel dislikes Fix cell.getRichStringCellValue() for formula cells with string results 45365 - Handle more excel number formatting rules in FormatTrackingHSSFListener / XLS2CSVmra 45373 - Improve the performance of HSSFSheet.shiftRows 45367 - Fixed bug when last row removed from sheet is row zero 45348 - Tweaks to RVA formula logic 45354 - Fixed recognition of named ranges within formulas 45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts 45336 - Fix HSSFColor.getTripletHash() 45334 - Fixed formula parser to handle dots in identifiers 45252 - Improvement for HWPF Range.replaceText() 45001 - Further fix for HWPF Range.delete() and unicode characters 45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records. Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder 30978 - Fixed re-serialization of tRefErr3d and tAreaErr3d 45234 - Removed incorrect shared formula conversion in CFRuleRecord 45001 - Improved HWPF Range.replaceText() 44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size Support custom image renderers in HSLF Correctly increment the reference count of a blip when a picture is inserted 45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape 45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy 45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary 45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate 45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes 45087 - Correctly detect date formats like [Black]YYYY as being date based 45060 - Improved token class transformation during formula parsing 44840 - Improved handling of HSSFObjectData, especially for entries with data held not in POIFS 45043 - Support for getting excel cell comments when extracting text 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 45025 - improved FormulaParser parse error messages 45046 - allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable 45066 - fixed sheet encoding size mismatch problems 45003 - Support embeded HDGF visio documents 45001 - Partial fix for HWPF Range.insertBefore() and Range.delete() with unicode characters 44977 - Support for AM/PM in excel date formats Support for specifying a policy to HSSF on missing / blank cells when fetching 44937 - Partial support for extracting Escher images from HWPF files 44824 - Avoid an infinite loop when reading some HWPF pictures 44898 - Correctly handle short last blocks in POIFS 44306 - fixed reading/writing of AttrPtg(type=choose) and method toFormulaString() for CHOOSE formulas 24207 - added HSSFName.isDeleted() to check if the name points to cell that no longer exists 40414 - fixed selected/active sheet after removing sheet from workbook 44523 - fixed workbook sheet selection and focus 45000 - Fixed NPE in ListLevel when numberText is null 44985 - Properly update TextSpecInfoAtom when the parent text is changed 41187 - fixed HSSFSheet to properly read xls files without ROW records 44950 - fixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals 42570 - fixed LabelRecord to use empty string instead of null when the length is zero. 42564 - fixed ArrayPtg to use ConstantValueParser. Fixed a few other ArrayPtg encoding issues. Follow-on from 28754 - StringPtg.toFormulaString() should escape double quotes 44929 - Improved error handling in HSSFWorkbook when attempting to read a BIFF5 file 44675 - Parameter operand classes (function metadata) required to encode SUM() etc properly. Added parse validation for number of parameters 44921 - allow Ptg.writeBytes() to be called on relative ref Ptgs (RefN* and AreaN*) 44914 - Fix/suppress warning message "WARN. Unread n bytes of record 0xNN" 44892 - made HSSFWorkbook.getSheet(String) case insensitive 44886] - Correctly process PICT metafile in EscherMetafileBlip 44893 - Take into account indentation in HSSFSheet.autoSizeColumn 44857 - Avoid OOM on unknown escher records when EscherMetafileBlip is incorrect HSLF: Support for getting embedded sounds from slide show HSLF: Initial support for rendering slides into images HSLF: Support for getting OLE object data from slide show HSLF: Implemented more methods in PPGraphics2D HSLF: Added Freeform shape which can contain both lines and Bezier curves 41071 - Improved text extraction in HSLF 30311 - Conditional Formatting - improved API, added HSSFSheetConditionalFormatting 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 the logger used by POIFSFileSystem, so that commons-logging isn't required when not used Update HSLFSlideShow and HSSFWorkbook to take advantage of POIFS updates, and allow reading embeded documents Improve how POIFS works with directory entries, and update HWPFDocument to support reading an embeded word document Initial support for getting and changing chart and series titles 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 44792 - fixed encode/decode problems in ExternalNameRecord and CRNRecord. 43670, 44501 - Fix how HDGF deals with trailing data in the list of chunk headers 30311 - More work on Conditional Formatting refactored all junits' usage of HSSF.testdata.path to one place 44739 - Small fixes for conditional formatting (regions with max row/col index) 44694 - HPSF: Support for property sets without sections Implement Sheet.removeShape(Shape shape) in HSLF Various fixes: Recognising var-arg built-in functions #44675, ExternalNameRecord serialisation bug #44695, PMT() bug #44691 30311 - More work on Conditional Formatting Move the Formula Evaluator code out of scratchpad Move the missing record aware eventusermodel code out of scratchpad 44652 / 44603 - Improved handling of Pictures in Word Documents 44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits 44627 - Improve the thread safety of POILogFactory 30311 - Initial support for Conditional Formatting 44609 - Handle leading spaces in formulas, such as '= 4' 44608 - Support for PercentPtg in the formula evaluator 44606 - Support calculated string values for evaluated formulas Add accessors to horizontal and vertical alignment in HSSFTextbox 44593 - Improved handling of short DVRecords 28627 / 44580 - Fix Range.delete() in HWPF 44539 - Support for area references in formulas of rows >= 32768 44536 - Improved support for detecting read-only recommended files 43901 - Correctly update the internal last cell number when adding and removing cells (previously sometimes off-by-one) 44504 - Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support 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 44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval 44504 - Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support 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 44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval 44508 - Fix formula evaluation with evaluateInCell on boolean formulas 44510 - Fix how DVALRecord works with dropdowns 44495 - Handle named cell ranges in formulas that have lower case parts 44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF 44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this 44495 - Handle named cell ranges in formulas that have lower case parts 44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF 44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this 44450 - Support for Lookup, HLookup and VLookup functions 44449 - Avoid getting confused when two sheets have shared formulas for the same areas, and when the shared formula is set incorrectly 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 44371 - Support for the Offset function 38921 - Have HSSFPalette.findSimilar() work properly 44456 - Fix the contrib SViewer / SViewerPanel to not fail on sheets with missing rows 44403 - Further support for unusual, but valid, arguments to the Mid function 44410 - Support for whole-column ranges, such as C:C, in formula strings and the formula evaluator 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 - Fix for handling mixed OBJ and CONTINUE records 39512 - Fix for handling mixed OBJ and CONTINUE records 43837 - [PATCH] Support for unicode NameRecords 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. 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 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) Finish HDF Finish Charts Finish Formulas. Expose functionality in low level records in higher level API Implement more record types. Add more dummy checks (for when API user's do things they "can't" do). This will involve exploring the various upper limits on the things Excel can handle. Add support for embedded graphics and other objects. Create new adapter object for handling MulBlank, MulRk, Rk records. Add a way to copy sheets.