48494 - have EventBasedExcelExtractor make use of HSSFDataFormatter, so that numbers and dates come out closer to how Excel would render them49096 - add clone support to Chart begin and end records, to allow cloning of more Chart containing sheetsList 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 dates48872 - handle MMMMM and elapsed time formatting rules in DataFormatter48872 - handle zero formatting rules, and better color detection in DataFormatter48872 - support for more kinds of formatting in DataFormatter43161 - fixed construction of the DIB picture header49311 - initial support for reading AES-encrypted/write-protected OOXML files48718 - Make the creation of multiple, un-modified fonts in a row in XSSF match the old HSSF behaviour44916 - Allow access to the HSSFPatriarch from HSSFSheet once created48779 - Allow you to get straight from a CellStyle to a Color, irrespective of if the Color is indexed or inline-defined48924 - Allow access of the HWPF DateAndTime underlying date values48926 - Initial support for the HWPF revision marks authors list49160 - Ensure that CTDigSigBlob is included in poi-ooxml jar49189 - Detect w:tab and w:cr entries in XWPF paragraphs, even when the XSD is silly and maps them to CTEmpty49273 - Correct handling for Font Character Sets with indicies greater than 12749334 - Track the ValueRangeRecords of charts in HSSFChart, to allow the basic axis operations49242 - Track the LinkDataRecords of charts in HSSFChartImproved performance of XSSFWorkbook.write 48846 - Avoid NPE when finding cell comments49325 - Ensure that CTPhoneticPr is included in poi-ooxml jar49191 - Fixed tests failing in non-english locales48432 - Support for XSSF themes49244 - Support for data validation for OOXML format49066 - Worksheet/cell formatting, with view and HTML converter49020 - Workaround Excel outputting invalid XML in button definitions by not closing BR tags49050 - Improve performance of AbstractEscherHolderRecord when there are lots of Continue Records49194 - Correct text size limit for OOXML .xlsx files49254 - Fix CellUtils.setFont to use the correct type internally49139 - Properly support 4k big block size in POIFS48936 - Avoid writing malformed CDATA blocks in sharedStrings.xml49026 - Added implementation for TEXT() 49025 - Added implementation for TRUNC() 49147 - Properly close internal InputStream in ExtractorFactory#createExtractor(File)49138 - Fixed locale-sensitive formatters in PackagePropertiesPart49153 - Ensure that CTVectorVariant is included in poi-ooxml-schemas.jar49146 - Added accessors to CoreProperties.Keywords 48916 - Propagate parent to parent-aware records decoded from Escher48485 - Add extra paper size constans to PrintSetup, such as A3, B4 and B5Make poifs.filesystem.DirectoryNode preserve the original ordering of its files, which HSMF needs to be able to correctly match up chunksSupport evaluation of indirect defined names in INDIRECT43670 - Improve HDGF ChunkV11 separator detection, and short string detection, to solve the "Negative length of ChunkHeader" problem48617 - Optionally allow the overriding of the Locale used by DataFormatter to control how the default number and date formats should lookNew 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 basis48544 - avoid failures in XLSX2CSV when shared string table is missing48571 - properly close all IO streams created in OPCPackage48572 - always copy all declared inner classes and interfaces when generating poi-ooxml-schemasLow 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 streamImproved how HSMF handles multiple recipientsAdd PublisherTextExtractor support to ExtractorFactoryAdd XSLF support for text extraction from tablesSupport attachments as embeded documents within the new OutlookTextExtractorAdd a text extractor (OutlookTextExtractor) to HSMF for simpler extraction of text from .msg filesSome improvements to HSMF parsing of .msg filesInitialise the link type of HSSFHyperLink, so that getType() on it works48425 - 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 files48343 - added implementation of SUBTOTAL function48332 - fixed XSSFSheet autoSizeColumn() to tolerate empty RichTextString48332 - fixed ColumnInfoRecord to tolerate missing reserved field47701 - fixed RecordFormatException when reading list subrecords (LbsDataSubRecord) memory usage optimization in XSSF - avoid creating parentless xml beans47188 - avoid corruption of workbook when adding cell comments 48106 - improved work with cell comments in XSSFAdd 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 fields48274 - fix erronious wrapping of byte colours in HSSFPalette.findSimilarColor48269 - fix fetching of error codes from XSSF formula cells48229 - fixed javadoc for HSSFSheet.setColumnWidth and XSSFSheet setColumnWidth 47757 - fixed XLSX2CSV to avoid exception when processing cells with multiple "t" elements48195 - short-circuit evaluation of IF() and CHOOSE()48161 - support for text extraction from PPT master slides47970 - added a method to set arabic mode in HSSFSheet48134 - release system resources when using Picture.resize()48087 - avoid NPE in XSSFChartSheet when calling methods of the superclass48038 - handle reading HWPF stylesheets from non zero offsetsWhen running the "compile-ooxml-xsds" ant task, also generate the source jar for the OOXML Schemas45672 - improve handling by MissingRecordAwareHSSFListener of records that cover multiple cells (MulBlankRecord and MulRKRecord)48096 - relaxed validation check in RecalcIdRecord48085 - improved error checking in BlockAllocationTableReader to trap unreasonable field values47924 - fixed logic for matching cells and comments in HSSFCell.getCellComment()47942 - added implementation of protection features to XLSX and DOCX files48070 - preserve leading and trailing white spaces in XSSFRichTextString48044 - added implementation for CountBlank function48036 - added IntersectionEval to allow evaluation of the intersection formula operator47999 - avoid un-needed call to the JVM Garbage Collector when working on OOXML OPC Packages47922 - added example HSMF application that converts a .msg file to text and extracts attachments47903 - added Ant target to compile scratchpad examples47839 - improved API for OOXML custom properties47862 - fixed XSSFSheet.setColumnWidth to handle columns included in a column span47804 - fixed XSSFSheet.setColumnHidden to handle columns included in a column span47889 - fixed XSSFCell.getStringCellValue() to properly handle cached formula results47747 - fixed logic for locating shared formula records47809 - Improved work with user-defined functions47581 - fixed XSSFSheet.setColumnWidth to produce XML compatible with Mac Excel 200847734 - removed unnecessary svn:executable flag from files in SVN trunk47543 - added javadoc how to avoid Excel crash when creating too many HSSFRichTextString cells47813 - fixed problems with XSSFWorkbook.removeSheetAt when workbook contains chart47737 - adjust sheet indices of named ranges when deleting sheets47770 - built-in positive formats don't need starting '('47771 - Added method setFunction(boolean) for defined names47768 - Implementation of Excel "Days360" and "Npv" functions47751 - Do not allow HSSF's cell text longer than 32,767 characters47757 - Added an example demonstrating how to convert an XLSX workbook to CSV44770 - Fixed PPT parser to tolerate Comment2000 containers with missing comment text47773 - Fix for extraction paragraphs and sections from headers/footers with XWPFWordExtractor47727 - Support for extraction of header / footer images in HWPFmoved all test data to a top-level directory47721 - Added implementation for INDIRECT()45583 - Avoid exception when reading ClipboardData packet in OLE property sets47652 - Added support for reading encrypted workbooks47604 - Implementation of an XML to XLSX Importer using Custom XML Mapping47620 - Avoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns47606 - Fixed XSSFCell to correctly parse column indexes greater than 702 (ZZ)47598 - Improved formula evaluator number comparison47571 - Fixed XWPFWordExtractor to extract inserted/deleted text47548 - Fixed RecordFactoryInputStream to properly read continued DrawingRecords46419 - Fixed compatibility issue with OpenOffice 3.047559 - 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 properties47535 - Fixed WordExtractor to tolerate files with empty footnote block47517 - Fixed ExtractorFactory to support .xltx and .dotx files45556 - Support for extraction of footnotes from docx files45555 - Support for extraction of endnotes from docx files47520 - Initial support for custom XML mappings in XSSF47460 - Fixed NPE when retrieving core properties from a newly created workbook47498 - Fixed HyperlinkRecord to properly handle URL monikers47504 - Fixed XSSFWorkbook to read files with hyperlinks to document locations47479 - Fix BoolErrRecord to tolerate incorrect format written by OOO47448 - Allow HSSFEventFactory to handle non-zero padding at the end of the workbook stream47456 - Support for getting OLE object data in PowerPointExtractor47411 - Explicitly set the 1900 date system when creating XSSF workbooks47400 - Support for text extraction of footnotes, endnotes and comments in HWPF47415 - Fixed PageSettingsBlock to allow multiple PLS records47412 - Fixed concurrency issue with EscherProperties.initProps()47143 - Fixed OOM in HSSFWorkbook#getAllPictures when reading .xls files containing metafilesAdded implementation for ISNA()46793 - fixed SimpleShape#getLineWidth to handle default line width 47356 - removed unused private fields in HWPF BorderCode47355 - Improved HWPF TableCell to expose TableCellDescriptor46610 - Improved HWPF to better handle unicode47261 - Fixed SlideShow#removeSlide to remove references to Notes47375 - Fixed HSSFHyperlink to correctly set inter-sheet and file links47384 - Fixed ExternalNameRecord to handle unicode names47372 - Fixed locale-sensitive unit tests to pass when running on non-US locale47363 - Fixed HSSFSheet to allow addition of data validations after sheet protection47294 - Fixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes47309 - Fixed logic in HSSFCell.getCellComment to handle sheets with more than 65536 comments46776 - Added clone() method to MulBlankRecord to fix crash in Sheet.cloneSheet()47244 - Fixed HSSFSheet to handle missing header / footer records47312 - Fixed formula parser to properly reject cell references with a '0' row component47199 - Fixed PageSettingsBlock/Sheet to tolerate margin records after other non-PSB records47069 - Fixed HSSFSheet#getFirstRowNum and HSSFSheet#getLastRowNum to return correct values after removal of all rows47278 - Fixed XSSFCell to avoid generating xsi:nil entries in shared string table47206 - Fixed XSSFCell to properly read inline strings47250 - Fixed FontRecord to expect unicode flags even when name length is zero47198 - Fixed formula evaluator comparison of -0.0 and 0.047229 - Fixed ExternalNameRecord to handle DDE links46287 - Control of header and footer extraction in ExcelExtractor / XSSFExcelExtractor46554 - New ant target "jar-examples"46161 - Support in XSSF for setGroupColumnCollapsed and setGroupRowCollapsed46806 - Allow columns greater than 255 and rows greater than 0x100000 in XSSF formulas41711 - Base class for "old version" exceptions, and new HSLF detection + use of old versions exception47179 - Fix string encoding issues with HSMF chunks on non-windows platforms47183 - Attachment support for HSMF47154 - Handle the cell format @ as the same as General47048 - Fixed evaluation of defined names with the 'complex' flag set46953 - More tweaks to PageSettingsBlock parsing logic in Sheet constructor47089 - Fixed XSSFWorkbook.createSheet to properly increment sheetId46568 - Fixed XSLFPowerPointExtractor to properly process line breaks39056 - Fixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream47054 - Fixed cloneStyleFrom to avoid exception when cloning styles of the same family46186 - 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 blank47026 - Avoid NPE in XSSFCell.setCellType() when workbook does not have SST46987 - Allow RecordFactory to handle non-zero padding at the end of the workbook stream47034 - Fix reading the name of a NameRecord when the name is very long47001 - Fixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs46973 - Fixed defined names to behave better when refersToFormula is unset46832 - Allow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF46951 - Fixed formula parser to better handle range operators and whole row/column refs.46948 - Fixed evaluation of range operator to allow for area-ref operands46918 - Fixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format46898 - Fixed formula evaluator to not cache intermediate circular-reference error results46917 - Fixed PageItemRecord(SXPI) to allow multiple field infos46904 - Fix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files46840 - PageSettingsBlock should include HEADERFOOTER record46885 - update cell type when setting cached formula result in XSSFCelladded modifiers for anchor type to XSSFClientAnchor46772 - support built-in data formats in XSSFDataFormat46719 - fixed XSSFSheet.shiftRows to correctly preserve row heights46715 - preserve custom column widths across re-serialization of XSSFWorkbook46703 - added setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet46708 - added getMergedRegion(int) to common interface org.apache.poi.ss.usermodel.Sheetfixed Sheet.autoSizeColumn() to use cached formula values when processing formula cells Fixed formula parser to handle names with backslashes46660 - added Workbook getHidden() and setHidden(boolean)46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX46627 - Fixed offset of added images if Pictures stream contains pictures with zero length46536 - When shifting rows, update formulas on that sheet to point to the new location of those rows46663 - Fixed XSSFSheet.shiftRows to properly update references of the shifted cells46535 - Remove reference from calculation chain when a formula is deleted46654 - HSSFRow/RowRecord to properly update cell boundary indexes46643 - Fixed formula parser to encode range operator with tMemFunc46647 - Fixed COUNTIF NE operator and other special cases involving type conversion46635 - Added a method to remove slides40520 - Fixed HSSFFont.applyFont() to properly apply font to overlapping regions46545 - Fixed ObjRecord to ignore excessive padding written by previous POI versions46613 - Fixed evaluator to perform case insensitive string comparisons46544 - command line interface for hssf ExcelExtractor46547 - Allow addition of conditional formatting after data validation46548 - Page Settings Block fixes - continued PLS records and PSB in sheet sub-streams46523 - added implementation for SUMIF functionSupport for reading HSSF column stylesHook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor46472 - Avoid NPE in HPSFPropertiesExtractor when no properties exist46479 - fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()45031 - added implementation for CHOOSE() function46361 - resolve licensing issues around the HDGF resource file, chunks_parse_cmds.tbl46410 - added implementation for TIME() function46320 - added HSSFPictureData.getFormat()46445 - fixed HSSFSheet.shiftRow to move hyperlinksfixed formula parser to correctly resolve sheet-level names46433 - support for shared formulas in XSSF46299 - support for carriage return and line break in XWPFRun46300 - support for line spacing in XWPFParagraph46308 - initial support for creation of XWPFTableAdded getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()46385 - (also patch 46362) fix serialization of StyleRecord with unicode name46368 - Fix HSSFRichTextRun and strings longer than 32768 charactersSupport sheet-level namesFixed XSSFCell to properly handle cell references with column numbers up to XFD44914 - Fixed warning message "WARN. Unread n bytes of record 0xNN"46156 - Improved number to text conversion to be closer to that of Excel46312 - Fixed ValueRecordsAggregate to handle removal of new empty row46269 - Improved error message when attempting to read BIFF2 file46206 - Fixed Sheet to tolerate missing DIMENSION records46301 - added pivot table records: SXDI, SXVDEX, SXPI, SXIDSTM, SXVIEW, SXVD, SXVS, et al46280 - Fixed RowRecordsAggregate etc to properly skip PivotTable records46213 - Fixed FormulaRecordAggregate to gracefully ignore extra StringRecords46174 - Fixed HSSFName to handle general formulas (not just area references)46189 - added chart records: CHARTFRTINFO, STARTBLOCK, ENDBLOCK, STARTOBJECT, ENDOBJECT, and CATLAB46199 - More tweaks to EmbeddedObjectRefSubRecordChanges to formula evaluation allowing for reduced memory usage45290 - Support odd files where the POIFS header block comes after the data blocks, and is on the data blocks list46184 - More odd escaped date formatsInclude the sheet number in the output of XLS2CSVmra46043 - correctly write out HPSF properties with HWPF45973 - added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF46182 - fixed Slideshow.readPictures() to skip pictures with invalid headers46137 - Handle odd files with a ContinueRecord after EOFRecordFixed problem with linking shared formulas when ranges overlap45784 - More fixes to SeriesTextRecord46033 - fixed TableCell to correctly set text type46122 - fixed Picture.draw to skip rendering if picture data was not found15716 - memory usage optimisation - converted Ptg arrays into Formula objects46065 - added implementation for VALUE function45966 - added implementation for FIND function45778 - fixed ObjRecord to read ftLbsData properly46053 - fixed evaluation cache dependency analysis when changing blank cells45518 - Fix up ColumnHelper to output valid col tags, by making 1 based and 0 based bits clearer, and using the right ones45676 - Handle very long cells in the XSSF EventUserModel exampleInitial ExtractorFactory support for building TextExtractors for embeded documentsSupport stripping XSSF header and footer fields (eg page number) out of header and footer text if requiredAdd POIXMLPropertiesTextExtractor, which provides to the OOXML file formats a similar function to HPSF's HPSFPropertiesExtractor45539 - Improve XWPFWordExtractor to extract headers and footersImprove how XWPF handles paragraph textSupport in XWPF handles headers and footers45592 - Improve XWPF text extraction to include tables always, and picture text where possible45545 - Improve XSLF usermodel support, and include XSLF comments in extracted text45540 - Fix XSSF header and footer support, and include headers and footers in the output of XSSFExcelExtractor45431 - Support for .xlsm files, sufficient for simple files to be loaded by excel without warningNew class org.apache.poi.hssf.record.RecordFormatException, which DDF uses instead of the HSSF version, and the HSSF version inherits from45431 - Partial support for .xlm files. Not quite enough for excel to load them though45430 - Correct named range sheet reporting when no local sheet id is given in the xml45018 - Support for fetching embeded documents from within an OOXML filePort support for setting a policy on missing / blank cells when fetching, to XSSF tooCommon text extraction factory, which returns the correct POITextExtractor for the supplied dataText 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 UserModelCreated a common interface for handling PowerPoint files, irrespective of if they are .ppt or .pptxCreated a common interface for handling Excel files, irrespective of if they are .xls or .xlsx45866 - allowed for change of unicode compression across Continue records45964 - support for link formulas in Text Objects43354 - support for evalating formulas with missing args45912 - fixed ArrayIndexOutOfBoundsException in EmbeddedObjectRefSubRecord45889 - fixed ArrayIndexOutOfBoundsException when constructing HSLF Table with a single row Initial support for creating hyperlinks in HSLF45876 - fixed BoundSheetRecord to allow sheet names longer than 31 chars45890 - fixed HSSFSheet.shiftRows to also update conditional formats45865 modified Formula Parser/Evaluator to handle cross-worksheet formulasOptimised the FormulaEvaluator to take cell dependencies into account16936 - Initial support for whole-row cell stylingUpdate hssf.extractor.ExcelExtractor to optionally output blank cells tooInclude the sheet name in the output of examples.XLS2CSVmra45784 - Support long chart titles in SeriesTextRecords45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out45844 - Addtional diagnostics for HSLF SlideShowRecordDumper45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero45815 - Bit mask values in StyleTextPropAtom were not preserved across read-write45814 - Specify RecordType for slide show Handout (4041)45805 - Fixed 16-bit signed/unsigned bug in HSSFSheet.getColWidth etc45780 - Fixed HSSFSheet.shiftRows to also update Area refs45804 - Update HSMF to handle Outlook 3.0 msg files, which have a different string chunk typeExpose 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 SheetReferencesMade HSSFFormulaEvaluator no longer require initialisation with sheet or rowExtended support for cached results of formula cells45639 - Fixed AIOOBE due to bad index logic in ColumnInfoRecordsAggregateFixed special cases of INDEX function (single column/single row, errors)45761 - Support for Very Hidden excel sheets in HSSF45738 - Initial HWPF support for Office Art Shapes45720 - Fixed HSSFWorkbook.cloneSheet to correctly clone sheets with drawings45728 - Fix for SlideShow.reorderSlide in HSLFInitial support for embedded movies and controls in HSLF45358 - 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 extraction26321 and 44958 - preserve position of ArrayRecords and TableRecords among cell value recordsImpove empty header or footer handling in HWPF HeaderStoriesAvoid NPE in hssf.usermodel.HeaderFooter when stripping fields outAvoid NPE in EscherBSERecord on older escher recordsBasic text extractraction support in HPBFInitial, low level support for Publisher files, in the form of HPBF45699 - Fix RowRecordsAggregate to tolerate intervening MERGEDCELLS records45698 - Fix LinkTable to tolerate multiple EXTERNSHEET records45682 - Fix for cloning of CFRecordsAggregateInitial support for evaluating external add-in functions like YEARFRAC45672 - Fix for MissingRecordAwareHSSFListener to prevent multiple LastCellOfRowDummyRecords when shared formulas are present45645 - Fix for HSSFSheet.autoSizeColumn() for widths exceeding Short.MAX_VALUE45623 - Support for additional HSSF header and footer fields, including bold and full file path45623 - Support stripping HSSF header and footer fields (eg page number) out of header and footer text if required45622 - 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.HPSFPropertiesExtractorProperly update the array of Slide's text runs in HSLF when new text shapes are added45590 - Fix for Header/footer extraction for .ppt files saved in Office 2007Big improvement in how HWPF handles unicode text, and more sanity checking of text ranges within HWPFInclude headers and footers int he extracted text from HWPF's WordExtractorAdded support to HWPF for headers and footersImprove how HWPF deals with unicode internally. Should avoid some odd behaviour when manipulating unicode text45577 - Added implementations for Excel functions NOW and TODAY45582 - Fix for workbook streams with extra bytes trailing the EOFRecord45537 - Include headers and footers (of slides and notes) in the extracted text from HSLF45472 - Fixed incorrect default row height in OpenOffice 2.344692 - HSSFPicture.resize() stretched image when there was a text next to it45543 - Optionally extract comment text with PowerPointExtractor, and initial hslf model support for comments45538 - Include excel headers and footers in the output of ExcelExtractor44894 - refactor duplicate logic from EventRecordFactory to RecordFactorySupport for Headers / Footers in HSLF44953 - Extensive fixes for data validation45519 - Fixed to keep datavalidation records togetherSupport for creating new HSLF CurrentUserAtoms45466 - 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 OOM45404 - New class, hssf.usermodel.HSSFDataFormatter, for formatting numbers and dates in the same way that Excel does45414 - Don't add too many UncalcedRecords to sheets with charts in them45398 - Support detecting date formats containing "am/pm" as date times45410 - Removed dependency from contrib on commons beanutils,collections and langNew helper, HSSFOptimiser, which handles removing duplicated font and style records, to avoid going over the limits in Excel45322 - Fixed NPE in HSSFSheet.autoSizeColumn() when cell number format was not found45380 - 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 versionAllow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another45289 - finished support for special comparison operators in COUNTIF45126 - Avoid generating multiple NamedRanges with the same name, which Excel dislikesFix cell.getRichStringCellValue() for formula cells with string results45365 - Handle more excel number formatting rules in FormatTrackingHSSFListener / XLS2CSVmra45373 - Improve the performance of HSSFSheet.shiftRows45367 - Fixed bug when last row removed from sheet is row zero45348 - Tweaks to RVA formula logic45354 - Fixed recognition of named ranges within formulas45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts45336 - Fix HSSFColor.getTripletHash()45334 - Fixed formula parser to handle dots in identifiers45252 - Improvement for HWPF Range.replaceText()45001 - Further fix for HWPF Range.delete() and unicode characters45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperationAvoid 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 EventWorkbookBuilder30978 - Fixed re-serialization of tRefErr3d and tAreaErr3d45234 - Removed incorrect shared formula conversion in CFRuleRecord45001 - Improved HWPF Range.replaceText()44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified sizeSupport custom image renderers in HSLFCorrectly increment the reference count of a blip when a picture is inserted45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes45087 - Correctly detect date formats like [Black]YYYY as being date based45060 - Improved token class transformation during formula parsing44840 - Improved handling of HSSFObjectData, especially for entries with data held not in POIFS45043 - Support for getting excel cell comments when extracting textExtend the support for specifying a policy to HSSF on missing / blank cells when fetching, to be able to specify the policy at the HSSFWorkbook level45025 - improved FormulaParser parse error messages45046 - allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable45066 - fixed sheet encoding size mismatch problems45003 - Support embeded HDGF visio documents45001 - Partial fix for HWPF Range.insertBefore() and Range.delete() with unicode characters44977 - Support for AM/PM in excel date formatsSupport for specifying a policy to HSSF on missing / blank cells when fetching44937 - Partial support for extracting Escher images from HWPF files44824 - Avoid an infinite loop when reading some HWPF pictures44898 - Correctly handle short last blocks in POIFS44306 - fixed reading/writing of AttrPtg(type=choose) and method toFormulaString() for CHOOSE formulas24207 - added HSSFName.isDeleted() to check if the name points to cell that no longer exists40414 - fixed selected/active sheet after removing sheet from workbook44523 - fixed workbook sheet selection and focus45000 - Fixed NPE in ListLevel when numberText is null44985 - Properly update TextSpecInfoAtom when the parent text is changed41187 - fixed HSSFSheet to properly read xls files without ROW records44950 - fixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals42570 - 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 quotes44929 - Improved error handling in HSSFWorkbook when attempting to read a BIFF5 file44675 - Parameter operand classes (function metadata) required to encode SUM() etc properly. Added parse validation for number of parameters44921 - 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 insensitive44886] - Correctly process PICT metafile in EscherMetafileBlip44893 - Take into account indentation in HSSFSheet.autoSizeColumn44857 - Avoid OOM on unknown escher records when EscherMetafileBlip is incorrectHSLF: Support for getting embedded sounds from slide show HSLF: Initial support for rendering slides into imagesHSLF: Support for getting OLE object data from slide show HSLF: Implemented more methods in PPGraphics2DHSLF: Added Freeform shape which can contain both lines and Bezier curves41071 - Improved text extraction in HSLF30311 - Conditional Formatting - improved API, added HSSFSheetConditionalFormattingUpdate 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 easierFix the logger used by POIFSFileSystem, so that commons-logging isn't required when not usedUpdate HSLFSlideShow and HSSFWorkbook to take advantage of POIFS updates, and allow reading embeded documentsImprove how POIFS works with directory entries, and update HWPFDocument to support reading an embeded word documentInitial support for getting and changing chart and series titlesImplement 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 it44792 - fixed encode/decode problems in ExternalNameRecord and CRNRecord.43670, 44501 - Fix how HDGF deals with trailing data in the list of chunk headers30311 - More work on Conditional Formattingrefactored all junits' usage of HSSF.testdata.path to one place44739 - Small fixes for conditional formatting (regions with max row/col index)44694 - HPSF: Support for property sets without sectionsImplement Sheet.removeShape(Shape shape) in HSLFVarious fixes: Recognising var-arg built-in functions #44675, ExternalNameRecord serialisation bug #44695, PMT() bug #4469130311 - More work on Conditional FormattingMove the Formula Evaluator code out of scratchpadMove the missing record aware eventusermodel code out of scratchpad44652 / 44603 - Improved handling of Pictures in Word Documents44636 - Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits44627 - Improve the thread safety of POILogFactory30311 - Initial support for Conditional Formatting44609 - Handle leading spaces in formulas, such as '= 4'44608 - Support for PercentPtg in the formula evaluator44606 - Support calculated string values for evaluated formulasAdd accessors to horizontal and vertical alignment in HSSFTextbox44593 - Improved handling of short DVRecords28627 / 44580 - Fix Range.delete() in HWPF44539 - Support for area references in formulas of rows >= 3276844536 - Improved support for detecting read-only recommended files43901 - 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 support44504 - 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 handling44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval44504 - Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support44504 - 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 handling44504 - Fixed number conversion inconsistencies in many functions, and improved RefEval44508 - Fix formula evaluation with evaluateInCell on boolean formulas44510 - Fix how DVALRecord works with dropdowns44495 - Handle named cell ranges in formulas that have lower case parts44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this44495 - Handle named cell ranges in formulas that have lower case parts44491 - Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF44471 - Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this44450 - Support for Lookup, HLookup and VLookup functions44449 - Avoid getting confused when two sheets have shared formulas for the same areas, and when the shared formula is set incorrectly44366 - 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 supplied44371 - Support for the Offset function38921 - Have HSSFPalette.findSimilar() work properly44456 - Fix the contrib SViewer / SViewerPanel to not fail on sheets with missing rows44403 - Further support for unusual, but valid, arguments to the Mid function44410 - Support for whole-column ranges, such as C:C, in formula strings and the formula evaluator44421 - Update Match function to properly support Area references44417 - Improved handling of references for the need to quote the sheet name for some formulas, but not when fetching a sheet by name44413 - Fix for circular references in INDEX, OFFSET, VLOOKUP formulas, where a cell is actually allowed to reference itself44403 - Fix for Mid function handling its arguments wrong44364 - Support for Match, NA and SumProduct functions, as well as initial function error support44375 - 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 dates37923 - Support for Excel hyperlinksImplement hashCode() and equals(obj) on HSSFFont and HSSFCellStyle44345 - Implement CountA, CountIf, Index, Rows and Columns functions44336 - Properly escape sheet names as required when figuring out the text of formulas44326 - Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptionsSupport for a completed Record based "pull" stream, via org.apache.poi.hssf.eventusermodel.HSSFRecordStream, to complement the existing "push" Event User Model listener stuff44297 - IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation44296 - Fix for reading slide background images44293 - Avoid swapping AreaPtgs from relative to absolute44292 - Correctly process the last paragraph in a word file44254 - Avoid some unread byte warnings, and properly understand DVALRecordAdd 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 references44233 - Support for getting and setting a flag on the sheet, which tells excel to re-calculate all formulas on it at next reload44201 - Enable cloning of sheets with data validation rules44200 - Enable cloning of sheets with notes43008 - Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly43058 - Support setting row grouping on files from CR IX, which lack GutsRecords31795 - Support cloning of sheets with certain drawing objects on them43902 - Don't consider merged regions when auto-sizing columns42464 - Avoid "Expected ExpPtg to be converted from Shared to Non-Shared Formula" on large, formula heavy worksheets42033 - Add support for named ranges with unicode names34023 - When shifting rows, update formulas on that sheet to point to the new location of those rowsSupport getting all the cells referenced by an AreaReference, not just the corner ones43510 - Add support for named ranges in formulas, including non-contiguous named ranges43937 - Add support for hiding and un-hiding sheets, and checking their current hidden status44167 - Fix for non-contiguous named ranges44070 - Fix for shifting comments when shifting rowsSupport for tables in HSLF43781 - Fix for extracting text from TextBoxes HSLF inImprove JavaDocs relating to hssf font and fill colourings44095, 44097, 44099 - [PATCH] Support for Mid, Replace and Substitute excel functions44055 - [PATCH] Support for getting the from field from HSMF messages43551 - [PATCH] Support for 1904 date windowing in HSSF (previously only supported 1900 date windowing)41064 - [PATCH] Support for String continue records27511 - [PATCH] Support for data validation, via DVRecord and DVALRecord43877 - Fix for handling mixed OBJ and CONTINUE records39512 - Fix for handling mixed OBJ and CONTINUE records43837 - [PATCH] Support for unicode NameRecords43807 - Throw an IllegalArgumentException if asked to create a merged region with invalid columns or rows, rather than writing out a corrupt file43837 - [PATCH] Support for unicode NameRecords43721 - [PATCH] Support for Chart Title Format records42794 - [PATCH] Fix for BOF records from things like Access43648 - Fix for IntPtg and short vs int43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumnInclude an Excel text extractor, and put all existing text extractors under a common superclassImprovements to the LZW compression engine used by HDGFHSSFPicture.resize() - a handy method to reset a picture to its original width and heightAdd a getSheetIndex(HSSFSheet) method to HSSFWorkbook, and allow a HSSFSheet to get at its parent HSSFWorkbookMove POIDocument out of Scratchpad, and update HSSFWorkbook to use it43399 - [PATCH] - Fix for Cell References for rows > 3267843410 - [PATCH] - Improved Formula Parser support for numbers and rangesWhen 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 boxes42844 - [PATCH] - Fix for the EventUserModel and records that aren't immediately followed by their ContinueRecords43055 - [PATCH] - Fix for saving Crystal Reports xls files when preserving nodes43116 - [PATCH] - Fix for Escher layer handling of embeded OLE2 documents43108 - [PATCH] - Where permissions deny fetching System Properties, use sensible defaults43093 - [PATCH] - Fix formula evaluator support for Area3D references to other sheetsImprovements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this42999 - [PATCH] - Fix for HSSFPatriarch positioning problemsSupport for write-protecting a HSSF workbookSupport for querying, setting and un-setting protection on sheets in a HSSF workbookInitial HSMF (outlook) supportTidy up the javadocsAdministrative updates to the Maven POMs, and the release artificat build process23951 - [PATCH] Fix for HSSF setSheetOrder and tab names42524 - [PATCH] Better HSLF support for problem shape groups42520 - [PATCH] Better HSLF support for corrupt picture recordsInitial support for a "missing record aware" HSSF event modelAdditional HSLF support for Title and Slide Master Sheets42474 - [PATCH] Improved HSLF note to slide matching, and a NPE42481 - [PATCH] Tweak some HSLF exceptions, to make it clearer what you're catching42667 - [PATCH] Fix for HSLF writing of files with tablesImproved way of detecting HSSF cells that contain dates, isADateFormatInitial, read-only support for Visio documents, as HDGF39977 - [PATCH] Fix POM for Maven users38976 - [PATCH] Add createPicture to HSSFShapeGroupDetect Office 2007 XML documents, and throw a meaningful exceptionAdditional HSLF support for PowerPointInitial support for HWPF image extractionAdditional HSLF support for PowerPointHSSF Formula supportAdditional HSLF support for PowerPoint39389 - [PATCH] Extended Ascii support for WingDingsBugzilla Bug 29976 [PATCH] HSSF hyperlink formula size problemImage writing supportHSLF - 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) textOutlining support27574 - [PATCH] HSSFDateUtil.getExcelDate() is one hour off when DST changes26465 - [PATCH] wrong lastrow entry28203 - [PATCH] Unable to open read-write excel file including formsAdd support for the Escher file format27005 java.lang.IndexOutOfBoundsException during Workbook.cloneSheet()No changesBug 25695 - HSSFCell.getStringCellValue() on cell which has string formula will return swap bye unicode characters.Updated website for upcoming releaseFormula Parser fixes with tests, by Peter M Murray Bug 25457Fixed cloning merge regionsThe 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 worksFix supplied for bug 24397 where some compilation got ambiguous classes. Explicitly imports the classes. Patch supplied by Jean-Pierre Paris.12561 (Min) HSSFWorkbook throws Exceptions12730 (Nor) values dont get copied to another sheet.13224 (Maj) Exception thrown when cell has =Names call13796 (Nor) Error Reading Formula Record (optimized if, external link)13921 (Nor) Sheet name cannot exceed 31 characters and cannot contain :14330 (Nor) Error reading FormulaRecord14460 (Nor) Name in Formula - ArrayOutOfBoundsException15228 (Cri) [Urgent] ArrayIndexoutofbounds Exception. POI - Version 1.816488 (Maj) Unable to open written spreadsheet in Excel, but can in Open16559 (Nor) testCustomPalette.xls crashes Excel 9716560 (Nor) testBoolErr.xls crashes Excel '9717374 (Min) HSSFFont - BOLDWEIGHT_NORMAL18800 (Maj) The sheet made by HSSFWorkbook#cloneSheet() doesn't work cor18846 (Min) [PATCH][RFE]Refactor the transformation between byte array a19599 (Min) java.lang.IllegalArgumentException19961 (Nor) [PATCH] Sheet.getColumnWidth() returns wrong value21066 (Blo) Can not modify a blank spreadsheet21444 (Enh) [PATCH] Macro functions21447 (Nor) [RFE]String Formula Cells21674 (Enh) [PATCH] Documentation changes for @(Greater|Less|Not)EqualPt21863 (Enh) [PATCH] build.xml fixes22195 (Nor) [RFE] [PATCH] Support for Storage Class ID22742 (Cri) Failed to create HSSFWorkbook!22922 (Cri) HSSFSheet.shiftRows() throws java.lang.IndexOutOfBoundsExcep22963 (Nor) org.apache.poi.hpsf.SummaryInformation.getEditTime() should24149 (Maj) Error passing inputstream to POIFSFileSystem21722 (Nor) [PATCH] Add a ProtectRecord to Sheets and give control over9576 (Nor) [PATCH] DBCELL, INDEX EXTSST (was Acess 97 import)13478 (Blo) [PATCH] [RFE] POIFS, RawDataBlock: Missing workaround for lo14824 (Nor) Unable to modify empty sheets12843 (Cri) [PATCH] Make POI handle chinese better15353 (Nor) [RFE] creating a cell with a hyperlink15375 (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 offNamePTG refactoring/fixesminor fixes to ExternSheet and formula stringsSheet comparisons now ignore caseA 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 providedPatch applied to allow sheet reorderingAdded additional print area setting methods using row/column numbersHDF: Negative Array size fixAdded argument pointers to support the IF formulaFormulas: Added special character support for string literals, specifically for SUMIF formula support and addresses a bug as wellBlockingInputStream committed to help ensure readsFixed problem with NaN values differing from the investigated value from file reads in FormulaRecordsPatch for getColumnWidth in HSSFPatch for dealing with mult-level numbered lists in HDFDue to named reference work, several named-ranged bugs were closedPatch applied to prevent sheet corruption after a template modificationShared Formulas now SupportedAdded GreaterEqual, LessEqual and NotEqual to Formula ParserAdded GreaterThan and LessThan functionality to formulasPatches for i10nPOI Build System Updatedfont names can now be nullSupport for zoom levelFreeze and split pane supportRow and column headers on printoutsCustom Data Format SupportEnhanced Unicode Support for Russian and JapaneseEnhanced formula support including read-only for
"optimized if" statements.Support for cloning objectsFixes for header/footerSpanish Documentation translationsSupport for preserving VBA macrosRemoved runtime dependency on commons logging.Formula supportRemoved 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 renameVarious bug fixesEarly stages of HSF development (not ready for development)Initial low level record support for charting (not complete)Created new event modelOptimizations 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 HSSFCellStyleFixed column width apis (unit wise) and various javadoc on
the subjectFix 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, ColInfoAdded log4j facility and removed all sys.out type loggingAdded support for adding font's, styles and corresponding
high level api for styling cellsadded 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 formulasMassive 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.