Search Apache POI

History of Changes

RSS

Version 4.0.0-SNAPSHOT (2017-12-??)#

Summary#

  • Removed support for Java 6 and 7 making Java 8 the minimum version supported
  • Updated third party libraries for bouncy-castle, commons-codec, xmlsec, slf4j-api and curvesapi
  • Added a dependency on commons-math3 for certain functionality
  • Adjust return type of some methods in Cell and related classes from int to CellType
  • Removal of deprecated classes and methods that were marked for removal in v4.0
  • Removal of deprecated classes and methods that were marked for removal in v3.18

Changes#

TypeBugModuleDescription
fix61809HPSFInfinite loop in SectionIDMap.get() and .put()
add60887XSSFSurface XSSF Header/Footer Attributes
add61730SS CommonCellRangeAddresses support iterating over their CellAddresses
fix61727SS CommonCellRangeUtil merge cell ranges broken for certain orders of arguments
add61671XSLFXSLFSlide does not contain isHidden and setHidden like HSLFSlide does
update61630XSSFPerformance improvement to XSSFExportToXML
add58068XSSFAdd a method to pass the actual Color to StylesTable.findFont()
fix61096POIFSAdd support for modules in VBAMacroReader
fix61033XSSFAdd XSSFWorkbook.setCellFormulaValidation() to control if formulas are validated during Cell.setCellFormula()
fix61148SXSSFFix calculating/setting formula value
fix61064SS CommonSupport behavior of function CEILING in newer versions of Microsoft Excel
fix61516SS CommonCorrectly handle references that end up outside the workbook when cells with formulas are copied
add60737XSSFAdd endSheet() to XSSFEventBasedExcelExtractor
fix59747OPCExchange order of writing parts into Zip to allow some tools to handle files better
addgithub-69SS CommonSupport matrix functions
fix60499OPCDeleting a picture that is used twice on a slide corrupt the slide
fix60279POIBack-off to brute-force search for macro content if macro offset is incorrect.

Version 3.17 (2017-09-15)#

Summary#

  • Removal of deprecated classes and methods that were marked for removal in v3.17
  • Various modules: add sanity checks and fix infinite loops / OOMs caused by fuzzed data
  • OPC: fix linebreak handling on XML signature calculation (#61182)
  • SS Common: fix number formatting (github-43/52, #60422)
  • SXSSF: fix XML processing - unicode surrogates and line breaks (#61048, #61246)

Changes#

TypeBugModuleDescription
fix61478OPCPOI OOXML-Schema lookup uses wrong classloader
fix61470XWPFHandle ruby (phonetic) elements in XWPFRun
fix61381POIFSPushbackInputStreams passed to ZipHelper may not hold 8 bytes
fix58975SS CommonSupport formula evaluation with functions containing more than 127 arguments
fix60422SS CommonFix issue with number formatting in non-default locales
fix61048SXSSFFix issue where carriage returns were being escaped as line feeds
fix61246SXSSFDo not replace Unicode Surrogate chars with ? when writing SXXSF sheets
fix61363POI OverallUnify escher shape id allocation
fix61350OPCUse unsynchronized xmlbeans
fix61346HEMFAdd more sanity checks before allocation of byte arrays in HEMF/HWMF.
fix61338HWMFAvoid infinite loop with corrupt file.
fix61295HPSFAvoid OOM in hpsf with corrupt file.
add61331SL CommonFont group handling / common font interface
fix61300POIFSAvoid infinite loop with corrupt file.
fix61286 61287HSSFHandle zero-length headerfooter and 2 byte WriteProtectRecord
fixgithub-43SS CommonRoundUp and RoundDown functions round incorrectly in some scenarios
fixgithub-52SS CommonSupport number formats with trailing commas
fix61294POI OverallFix bug that allowed IOUtils.skipFully to enter infinite loop
fix61266POIFSMore helpful exception on unsupported old MS Write WRI files
fix61243POI OverallRefactor and unify toString/toXml in DDF
fix61182OPCInvalid signature created for streamed xlsx file

Version 3.17-beta1 (2017-07-01)#

Summary#

  • XSSF: improved support for XSSFTables
  • HSLF: various fixes in table support
  • HPSF: reworked to cover edge cases and better support non-latin charsets
  • SL Common: fixed rendering of preset-shapes
  • HWPF: support for Binary RC4 / CryptoAPI de-/encryption

Changes#

TypeBugModuleDescription
fix61203XSSFXSSFDrawing.getAnchorFromParent handles CTOneCellAnchor incorrectly, ignores CTAbsoluteAnchor
fix56557SXSSFOutput file get corrupted with SXSSFWorkbook and "chart sheet"
fix61045HSLFAllow for extra bytes in FormatRecord
add52063SS CommonAdd formula support for LOOKUP(lookup_value, array).
fix61169SL CommonText with Japanese characters overflows textbox
addXSSFXSSFTable improved support for creating columns and setting table areas, without needing to use CT classes
fixXSSFXSSFTable should format numeric/date cells when used as Column Header names as Excel does
add61162HWPFEn-/decryption support for HWPF
fix60230XSSFRound trip workbook encryption and decryption
fix58325XSSFXSSFDrawing.getShapes() returns zero if sheet has more than one embedded OLE object
fix61119SL CommonFix preset shape rendering and shading
fix61059HSSFAllow workbooks to contain more than 32k names
fixgithub-55XSSFAllow XSSFNames set with a long name that looks similar to a cell address
addgithub-25SXSSFAdd lock/unlock sheet protection and tab colors
updategithub-32SS CommonSpeed up Irr() formula evaluation
addgithub-52scratchpadAdd a function to convert an HSSFWorkbook to an HTML document from an InputStream
fixgithub-53XWPFfix NPE when iterating over paragraphs in certain *.docx files
updategithub-54XSSFDecrease execution time and memory consumption when adding XSSFPictures to an XSSFWorkbook
fix52117HPSFInvalid "last printed" summary field value
fix60352XSSFText extraction: Don't include the text "null" for empty cells
fix52372HPSFOutOfMemoryError parsing a word file
fix61062HPSFVarious HPSF related fixes
fix61034XSSF-SAXCall to XSSFReader.getSheetsData() returns duplicate sheets
fix61049SSFix order of two built-in formats
add61021XSSFExtract Excel 2013 absPath info from xlsb
fix60998HSLFHSLFTable.setRowHeight sets row height incorrect
fix60996XSSFMultiple embedded objects on same sheet are ignored
fix60993HSLFGrid and rowspan calculation in table cells is wrong
fix60973XDGFSupport for "PolylineTo" as well as existing alternate spelling "PolyLineTo"

Version 3.16 (2017-04-19)#

Summary#

  • add initial streaming, read-only support for xlsb files
  • SL Common: various rendering issues resolved
  • various charset related fixes in SS Common, XSSF and HWPF

Changes#

TypeBugModuleDescription
fix60810XSLFCheck for duplicate relation-names for notes similar to the fix for slides (fixed via bug 55791)
fix60823SS CommonCorrect behavior of function DGET with multiple result entries but only one non-blank. Thanks to Patrick Zimmermann for the patch.
fix50955HWPFFix charset handling in HWPFOldDocument
add60826XSSFAdd initial streaming, read-only support for xlsb files
fix51519XSSFAllow user to select or ignore phonetic strings in shared strings table
fix60662XSLFSlide import delete unrecognized elements in group shape
fix60715XSLFBlank layout was not found
add59227 github-48SS CommonSupport Chinese and Japanese date formats
fix59983XSSFShift shared formulas when shifting rows in a sheet
fix60625SL Common,XSLF,HSLFRendering issue with background and shape overlayed by image
fix60626XSSFArrayIndexOutOfBoundsException in EvilUnclosedBRFixingInputStream

Version 3.16-beta2 (2017-02-02)#

Summary#

  • The third-party jar for commons-collections4 is now required for handling of OLE2 properties
  • Primitive (experimental) EMF/WMF text extraction support
  • Unicode and internationalization improvements

Changes#

TypeBugModuleDescription
fix60219SS CommonFormulaParser can't parse external references when sheet name is quoted, thanks to Ignacio HR for the patch
fix60369SS CommonAdjust pattern to better handle non-ASCII characters in Month-names which can appear since Java 8, thanks to Patrick Metz for the patch
fix60512OOXMLMissing XSSFRelation.CUSTOM_PROPERTY generates POIXMLException on cloneSheet() method, thanks to Samson Tesfay for the patch
fix60031SS CommonDataFormatter parses months incorrectly when put at the end of date segment, thanks to Andrzej Witecki for the patch
fix60601XSSFUnlink hyperlinks node if all hyperlinks removed from a sheet
add60570POIAdd rudimentary read-only capability for EMF
add60586SS Common,XSSFSupport embedding OLE1.0 package in XSSF / SS Common
add60260SS CommonPartial support for unicode sheet names
add60550HSMFParse Content-ID for inline images in MAPIMessages
fix60498XSSFFix performance problem with XPath parsing in XSSF import from XML
fix60484HWPFNPE when reading a document containing an embedded picture
add60521XSSFXSSFGroupShape nesting
add60519SS CommonExtractor for *SSF embeddings
add60520SS CommonSS Common classes for *SSF shapes
fix60526OOXMLMake loggers final and make throttled log actually work, thanks to PJ Fanning for the patch
fix60452SS CommonWorkdayCalculator calculateWorkdays does return wrong value for same day input, thanks to Fabio Heer for the patch
add60465XWPFCannot specify Interline spacing for paragraphs
fix58237XWPFUnable to add image to Word document header
update55902SL CommonMixed fonts issue with Chinese characters (unable to form images from ppt)
remove60331OOXMLRemove deprecated classes - remove constructors with PackageRelationship argument (breaks backwards compatibility)
fix60329XWPFAdded try/catch block to swallow NPE
fix60370XSSFEncode some special characters when setting title/text for validation text-boxes
fix60427XSLFCreating pictures in PowerPoint slides requires scratchpad-jar for adding WMF images
remove60331HPSFRemove deprecated classes - deprecate Mutable* property classes (breaks backwards compatibility)
fix59200SS CommonCheck for actual Excel limits on data validation title/text
fix60373XSLFTableCell.getTextHeight() returns NullPointerException

Version 3.16-beta1 (2016-11-20)#

Summary#

  • Initial work on adding a Gradle build, the Ant based build is currently still the official buildsystem, but there are plans to replace this with Gradle in the future
  • Add support for mixed-length cipher/hashes in password protected files typically used by Office for Mac
  • Add CryptoAPI and encryption write support for HSSF
  • Improve support for reading VBA macros
  • Examples to encrypt temp files in SXSSF

Changes#

TypeBugModuleDescription
remove60331XSSFRemove deprecated classes (POI 3.16) - remove StylesTable.getNumberFormatAt(int)
add60345HSLFHandle corrupt PICT streams
fix59273XSLF,OOXMLUnable to create pptx file by potx file using Apache POI
addgithub-42SS CommonAdd setFormattingRanges() to interface ConditionalFormatting
add60321SXSSF examplesExamples: encrypt temp files created when unzipping or zipping an SXSSF workbook
fix60337XWPFTable row isRepeatingHeader and isCantSplit throw NPE
fix60342XWPFHandle an SdtCell that has no SdtContentCell
fix60341XWPFHandle an SdtBody that has no SdtPr
addSS CommonCellStyle support for "Quote Prefix" aka "123 Prefix"
fix60320POIFSIssue opening password protected xlsx
fix57366XWPFRefactor Header/Footer creation to allow table in header/footer. No longer creates empty paragraph in header/footer (breaks backwards compatibility)
fix53611XSSFPopulate dimension of XSSF Worksheet when writing the document
fix60315OPCAdd 'yyyy-MM-dd' as a possible format for date metadata items in OPC
fix60305HSLFGracefully handle AIOOBE in reading potentially truncated pictstream
fix59026XSSFAvoid possible NullPointerException when exporting to XML
remove60059XSLFDeprecate xslf.usermodel.Drawing* - was: Can't change text of DrawingParagraph
addHDGFPartial v5 Pointer and Text Extraction support
fix60294HSLFAdd "unknown" ShapeType for 4095
fix60289XSSFFix handling of rich-text unicode escapes with lowercase hex-chars
fix60288OOXMLreduce time needed to lookup document relationships
add60029POIFix problem with Days360 method for the month of february
add60134POIGeneral: Enhance the Gradle build to allow to run API comparisons against previous releases using the Japicmp tool
fix55714XSLFbackground image ignored on slide copy
fix60255XSSFcreate drawings when workbook contains non-sequential drawing indices
fix59302 60273 59830 59858 60158POIVarious improvements for reading VBA macros
fix53191HSLFProblems with line style when converting ppt to png
fix60255XSSFCheck for in-use drawing part names and use next available, when creating a new sheet drawing
fix56781 60246SS Commonnamed range validation
fix59907SS CommonRegression in getting and setting anchor type introduced in 3.15
add60153SXSSFAES encrypt temporary files and workbook on disk
fix51233 55075SXSSFimage is incorrectly resized if custom row height is set
fix60197SS Commonnamed range sheet index not updated when changing sheet order
add60003HSLFRegression: Powerpoint text extractor from footer of master slide
add60226OOXMLClassLoader workaround for OSGI when processing OOXML files
fix59907HSLFRegression: types in HSSFClientAnchor.setAnchorType() were changed, breaking Jasperreports POI support
add53028HSSFBroken auto fit row height in the cells with word wrap
add60187SS Commonsupport BorderStyle enums in RegionUtil
add59857HSSFPassword protected files with "Microsoft Enhanced Cryptographic Provider v1.0"
fix59687XSSFComments removed from wrong row when removing a row from a sheet with empty rows
fix59933POIFix IllegalAccess exception caused by logger
add59853XSSFSupport Table (structured reference) sources in PivotTables
addPOIAdd initial Gradle build

Version 3.15 (2016-09-19)#

Summary#

  • HSSF, HSLF, HPSF, and HWPF support for writing out to a File, including an existing open file (#57919)
  • Various improvements to HSSF and XSSF.
  • XSSF performance improvements for large numbers of named ranges.
  • Progress towards enums rather than ints for various types
  • CellStyle#BORDER_HAIR and #BORDER_DOTTED were swapped to correctly reflect the official names and to be consistent with BorderStyle enum. HAIR has smaller dots than DOTTED.
  • Removal of deprecated classes and methods detailed on bug 59170

Changes#

TypeBugModuleDescription
fix60140OOXMLFixed memory leak in FileBackedDataSource
fix60128OOXMLClose open file handles before raising an exception
fix60131SS CommonD* function refactorings
fix60130SS CommonFix DGET function behaviour with empty cells
fix52425XSSFError adding Comments into cloned Sheets
fix60025SS CommonDataFormatter should return TRUE or FALSE for boolean cell values
add58191XSLFSupport merge cells within a table row
fix59958XSSFAdd cells on the fly to the evaluation sheet cache on cache miss
fix60005XSLFNPE in XSLFTextParagraph.getDefaultFontSize()
addAdd Apache commons-collections4 dependency (breaks backwards compatibility)
fixSS CommonXSSFFormulaEvaluator.evaluateAll() should mirror HSSF and use any setup referenced workbooks
fix59736SS CommonIncorrect evaluation of SUBTOTAL with composite interval
fix55384SXSSFHandle setting pre-evaluation string correctly in SXSSF as well
fix59634POIClarify and refine JavaDoc of various close() methods to consistently state that close() invalidates the object
add57919POI OverallHSSF, HSLF and HPSF support for in-place writing to the currently open File (requires the POIFS/NPOIFS was opened from a read-write File)
add57919POI OverallHSSF, HSLF, HPSF and HWPF support for writing out to a new File - normally faster than writing to an OutputStream
fix59881SS CommonD* formula evaluation from blank cells in database headers
add52122XSSFExcel does not handle conditional formatting based on formula correctly unless recalculation is forced
add59106SS CommonWorkdayFunction does not read the area with holidays correctly to calculate work days
add58802HWPFAllow reading of footnote and endnote properties
add59665HSSFUsing HSSFWorkbook#setSheetOrder to move sheets to the end corrupts bspos value in WorkbookRecordList
add59740SS CommonSheet.shiftRows incorrectly shifts merged region if there exists another merged region
add59873SS and SL Commonmigrate hyperlink constants from Hyperlink to HyperlinkType enum
add59837SS Commonmigrate cell alignment constants from CellStyle to HorizontalAlignment and VerticalAlignment enums
add59791SS Commonmigrate cell type constants from Cell to CellType enum
fix59775XSSFcorrectly recognized URL hyperlinks containing a hash mark
add59872SS Commonadd Sheet#getHyperlink(CellAddress)
add59841OOXMLenable custom zip streams via OPCPackage.open(ZipEntrySource)
add59833SS Commonmigrate fill pattern constants from CellStyle to FillPatternType enum
add56154OOXMLGet and set last modified by user property
add59776OPCAttach cause of exception when marshalling a Zip Package
fix59814SS Commonclear cached EvaluationWorkbook and EvaluationSheetvalues from WorkbookEvaluator
fix59805POIfixed memory leak in LocaleUtil
fix59780OPCOPC support for a wider range of timezone'd created and modified date formats in package properties
fix59796XSSFXSSFTable.getRowCount off-by-one error
fix59795XSSFXSSFTable needs a method to reset start/end Cell References
fix59790SS Commonconvert FormulaType class to enum
fix59789HSSFimprove performance of row shifting on sheets that contain comments
fix59786HMEFfix NPE from HMEFContentsExtractor
add59788 59166POICreate temporary directories that are deleted on JVM exit
remove59170HSSFRemove deprecated classes (POI 3.15) - o.a.p.hssf.model.*Shape classes removed (breaks backwards compatibility)
add59781SS CommonMove PaneInformation from HSSF to SS package
fix59766XSSFWhen setting SAX features, handle Error too (eg from Google AppEngine)
fix59734XSSFMake lookup and creation of named ranges constant-time instead of linear in the number of ranges in the workbook.
fix59920XSSFFix regression in the handling of empty passwords for workbook protection.
fix59922XSSFRename XSSFPaswordHelper to XSSFPasswordHelper

Version 3.15-beta2 (2016-07-02)#

Summary#

  • initial work on extracting VBA macros (#52949)
  • remove deprecated classes (#59170)
  • various X/HSLF fixes for table and color handling
  • XSSF: formula evaluation performance improvements (#57840)
  • various fixes for merged regions in Common SS

Changes#

TypeBugModuleDescription
fix59748POI OverallReplace Hashtable with HashMap
fix59746XSSFXSSF support for files from certain alternate tools where the row XML is missing the row number
fix59743SXSSFZipSecureFile throwing "zip bomb detected" exception when writing SXSSFWorkbook
fix59742XSLFXSLFPictureData support for TIFF images
add59717OOXMLPOIXMLProperties helper methods for reading and changing OOXML document thumbnails
add59730SS Commonadd Sheet.removeMergedRegions
fix59729SS Commonmove CellRangeUtil to o.a.p.ss.util
fix56958SS Commoncorrectly check array formulas for intersection when adding merged regions
fix59724POI OverallProvide a close() method and implement Closeable on all OLE2-based POIDocument classes
fix59719XSSFcorrectly parse literal data validation constraints
remove59170POI OverallRemove deprecated classes (breaks backwards compatibility)
add59645SS CommonPrint row and column headings
fix55983HSLFCreating transparent Freeform object does not result in transparent shape
fix59702XSLFSetting background color in slide master
add57838XSSFRemove related cell-comments when removing a row
addInitial steps to allow to compile against Java 9
add57840XSSF30% faster formula evaluation
fix57840 57721XSSFFormula parsing and evaluation containing structured references (data tables)
fix59684SS CommonParsing absolute entire-row CellReferences
fix59686XSLFError when trying to access XSLFTableCell properties like textHeight, lineWidth, etc.
remove59170POI OverallRemove deprecated classes (POI 3.15) - remove BuiltinFormats.getBuiltinFormats() (breaks backwards compatibility)
add59638SS Commonallow DataFormatter to use Locale-aware number grouping separator
add57766XSLFTable isn't exported on convert slides of a .pptx slide show to a PNG/SVG image
add58217XSLFsupport alpha channel on solid colors (fill, line, text)
fixXSLFremove creation of empty paragraph in XSLFTextShape.addNewTextParagraph()
fix59355XSSFXSSFPivotTable::addColumnLabel sets the cell type of a cell outside of the source data area
fix54570XSLFInvalidFormatException because of Absolute URI forbidden
remove59170POI OverallRemove deprecated classes (POI 3.15) - use FormulaError instead of ErrorConstants (breaks backwards compatibility)
add58144SL CommonBehaviour for headers and footers of slides is inconsistent between slideshows created in 2003 and 2007
add59443SS Commonget and set Comment addresses
fix59434XSLFCannot add a picture on a slide that already have an image with an hyperlink on it
fix59383SS Commonperformance regression: DataFormatter no longer caches formats
fix59327SL CommonSetting text direction on a table cell has no effect
add58648SS CommonRegression: Fix handling of whitespaces in formulas after it was slightly broken by the changes to support the intersection operator
add59342XSSFGet and set sheet tab color
add59340SS CommonLookup IndexedColors by index
add59336SS CommonDeprecate CellUtil methods that do not need a workbook parameter.
add59338HSSFMark HSSFCellUtil for removal, replaced with Common SS CellUtil.
add52949HSSFVBA Macro reader and extractor
fix55982HSSFDon't fail to open the spreadsheet if no TabIdRecord is found
fixFix some cases where file-handles were not closed properly, mostly when the documents could not be opened correctly
add56911HWPFFix IndexOutOfBoundsException in PlfLfo.add()
add59264SS Commonunify setting cell border line style with BorderStyle

Version 3.15-beta1 (2016-04-15)#

Summary#

  • removal of deprecated elements (#59170)
  • avoid XmlBeans calls to piccolo parser which caused OOM in rare cases (#57031)
  • support for passwords longer than 15 chars for write-protection or binary formats (#59135)
  • various NPE fixes in XSSF/HSSF
  • fixes for color handling in XSSF and support for system colors in Common SL

Changes#

TypeBugModuleDescription
fix58909XSSFAdd a cloneSheet() which directly sets the sheetname to allow to avoid a costly renaming of sheets
fix59183OPCRegression in 3.14 on OPC files with less common timezone formats in the core properties
fix59132SS CommonAdjust implementation of COUNTBLANK to be conforming to Excel, empty strings are counted as blank as well
fix59199XSSFGracefully handle null-values in Cell.setValue() for Date and Calendar similar to String.
fix59224XSSFfix XSSFColor.hasTint which incorrectly used the alpha channel, add XSSFColor.hasAlpha
fix59222XSSFfix NPE raised by XSSFSheet.getCellComments()
fix59212SS Commoncopy non-validating XSSFSheet.addMergedRegionUnsafe from bug 58885 to Sheet interface
fix59208XWPFbold xml value of "1" treated as false
addHSLFAdd support for system colors
fix56930SS CommonAdd Workbook.getNames() to allow to query for names that appear multiple times
fix55791XSLFAvoid using an existing file-name when creating a new slide, it could still be left over from previous partial removal
fix55668SS CommonTry to avoid NullPointerException by setting the cell to BLANK instead, when changing cell-type and a formula leads to null-string
fix59135HSSFPassword gets truncated when using passwords longer than 15 characters for the function protectSheet()
add56549HWPFCorrectly calculate char index ranges for HWPF in the TextPieceTable
add57495XWPFFix problem with tables in documents at pos 0
fixFix a number of edge-cases where file-handles would be leaked
remove59170POI OverallRemove deprecated classes (POI 3.15) - *Workbook.setRepeatingRowsAndColumns() (breaks backwards compatibility)
remove59170SS CommonRemove deprecated classes (POI 3.15) - org.apache.poi.hssf/ss.util.Region (breaks backwards compatibility)
add57031XWPFOut of Memory when extracting text from attached files
fixMore helpful exception when POIFSFileSystem is given a raw XML file
fixMore helpful exceptions when OPCPackage is given OLE2 or ODF or raw XML files

Version 3.14 (2016-03-07)#

Summary#

  • Common: New version of ooxml-schema and ooxml-security jars which are linked to custom safe type loader
  • Common: OPC relation fix for multiple same named ids (54916)
  • Common: Update third-party dependencies: commons-logging, commons-codec, xmlsec, bouncycastle
  • Excel: Allow to set multiple cell style properties at once (58633)
  • Excel: Add API for inserting ignored warnings into XSSF sheets. This can be used e.g. to suppress 'number stored as text' warnings. (56892)
  • Powerpoint: unify hyperlink handling
  • HSLF: various fixes for parsing and rendering
  • WMF: new API for WMF parsing and rendering (for Powerpoint)
  • XWPF: various fixes for handling paragraphs and tables

Changes#

TypeBugModuleDescription
add57914OPCProvide a better error message for OOXML strict format which we do not support yet
add47245HSSFAdjust handling of missing row-records as it seems LibreOffice/Excel are handling such documents
add59056SL CommonRender individual slideshow shapes
fix59074POIFSExtractorFactory should give a more helpful exception on old Excel files too old for ExcelExtractor
add57989XSSFXSSFChart support for setting chart titles
fix59030XWPFPrevent NPE in XWPFTableCell's getVerticalAlignment() from Prasad Babu
fix59021XSSFXSSFSheetXMLHandler fails to extract content if namespace is included in qName
fix56345SS CommonReject single-cell merged regions
fix58339SS CommonMake OFFSET() allow missing optional height and width parameters
addgithub-27Handle documents with a picture-only header
fix58996XSSFRegression caused by fixing bug 56295: Don't try to unset fill color if it is not set to avoid invalid access inside the Xml structures
fix57034SXSSFCell.setCellValue((String)null) should be treated as an empty cell on SXSSF as well, to avoid a NPE when autosizing columns
fixXSLF - fixed NPE when adding pictures with existing non-picture media files (e.g. movies)
fix58885XSSFFixed performance regression after fixing bug 58443 when adding a merged region to an XSSFSheet.
addRaised xmlsec version to 2.0.6
add47291HSLFCannot open link correctly which insert in ppt
add41047HSLFSupport hyperlinks in HSLF shapes and textruns
add58879SS CommonReturn SpreadsheetVersion from Workbook
fixFix NPE when calling HSLFTextRun.setHorizontalCentered()
add58633SS CommonSet multiple cell style properties at once
add56004HSLFSupport for WMF rendering
add56892XSSFAdd API for inserting ignored warnings into XSSF sheets. This can be used e.g. to suppress 'number stored as text' warnings.
add58847HPSFGetters/setters/removers for the additional well-known document summary information properties from Office 12
add57796XSLFSupport hyperlink extraction when rendering slides
fix54916XSLFPOI does not always read all the slides in pptx files
fix58043SS CommonProvide some compatibility between HSSF and XSSF in regards to values for CellStyle.setRotation()
fix58067XWPFdon't return deleted text when document is in review-mode
fix58618XWPFXWPFParagraph insertNewRun and removeRun work incorrectly for runs after hyperlink/field runs
fix58760XSSFNon-standard namespace-key breaks parsing XLSX files
fix58746HSSFFix missing adjustment of formulas when sheet-ordering is changed.
fix58616XSSFTry to initialize with empty password if not done before
fixFix some cases where file-handles were left open, mostly when failing to parse documents
fix55030HSLFRichTextRun getFontName can not get chinese font name
fix56570HSLFRecordType has repeat by code type 3009
fix58159HSLFgetHeaderText() and getFooterText() duplicate text in sheet.getTextRuns()
fix58775XSSFSet maximum number of data formats to avoid corrupted workbook
add58778XSSFOverride built-in number formats in XSSFWorkbooks
fix58733HSLFNew AIOOBE in getCell while iterating through a table in PPT
fix58718HSLFMaster styles not initialized when running multithreaded

Version 3.14-beta1 (2015-12-24)#

Changes#

TypeBugModuleDescription
fix58084XSSFCorrupted .xlsx file created when styles with borders are cloned from other workbooks
add58570SS CommonPromote setting and getting the active cell in a worksheet to Common SS
add47904HSLFUpdate text styles in HSLF MasterSlide
add58670SXSSFChange underlying data structure in SXSSFRow to use a TreeMap instead of an array to store SXSSFCells
add58671SS CommonReplace MissingCellPolicy class with enum
add57450SXSSFAutosize columns on SXSSFSheets considering both active window and flushed rows
add58557 52903SS CommonAdd support for shifting hyperlinks when shifting rows on a sheet
add58667SS CommonImplement Comparable interface in HSSFRow, XSSFRow, and SXSSFRow classes
fix46210HSLFTitle placeholder not recognized by Powerpoint 2003
fix58663XSLFPictures cannot be removed from a slide
add58636SS CommonReplace ClientAnchor anchor type constants with AnchorType enum
add58644SS CommonReplace Sheet.setZoom(num, den) with Sheet.setZoom(scale)
remove58642SS CommonRemove deprecated functions (breaks backwards compatibility)
add58365SS CommonGet all cell comments on a sheet with Sheet.getCellComments()
add58637SS CommonAdd CellAddress class, to be used instead of CellReference when the concept of an absolute/relative reference is not applicable.
add58617POI OverallAdd custom safe XmlBeans type loader / rename vendor specific schema packages
fix58630POIFSSigning failed after deletion of first sheet
fix55955HSLFFilling an existing ppt table stopped working with 3.9
fix54210HSLFWhen saving PPT to PNG, some text is rendered backwards
fix53189HSLFShapes drawn wrongly when ppt file converted to image
removeRemoved most reflection calls on private methods/fields from production code; others are wrapped by AccessController.doPrivileged().
fix58597XWPFXWPFDocument causes SecurityException under SecurityManager
fix53192HSLFImages in ppt file have wrong width when converting ppt to png
addHSLFAdd support for HSLF metro blobs
fix52297HSLFBullets are not aligned properly while converting ppt slide to image
fix55265SS CommonDataFormatter correct support for alternate number grouping characters, eg 1234 + #'##0 = 1'234 not 1,234
fix51622SS CommonautoSizeColumn incorrectly sizes columns containing leading whitespace
fix58576SS CommonRename misspelled SheetUtil.canComputeColumnWidth
add58572SS CommonAdd getHyperlink and getHyperlinkList to Sheet interface
add58348SS CommonAdd support for copying rows in XSSFWorkbooks
fix45908HSLFRichTextRun.setBullet(false) doesn't work, bullets still here
fix45088HSLFPOI-HSLF changeTextInRichTextRun corrupts presentation
fix45124HSSFinserting text or images wipes out boldness and makes everything italic
add58452SS CommonSet cell formulas containing unregistered function names
add58442SS CommonAdd method to reorganize AreaPtg as top-left and bottom-right references
fix58443SS CommonProhibit adding merged regions that would overlap with existing merged regions
addAdd a limit of the max number of characters that can be extracted to avoid sending applications out of memory with very large documents. Limit can be adjusted via ZipSecureFile.setMaxTextSize() if necessary
fix58516HSLFRare new aioobe in 3.13 on initialization of a handful of ppts
fix56957XSSFAvoid error if Workbook with empty SharedStringTable is written
fixSL CommonCommon sl unification - copy first paragraph / textrun properties on XSLFTextShape.setText()
fixSL CommonCommon sl unification - converted ApacheconEU08 example to common sl - added missing functionality
fixSL CommonCommon sl unification - return null instead of default values for missing borders X/HSLFTable
fixSL CommonCommon sl unification - use points in HSLFTable.setColumnWidth()
fixSL CommonFix appending text to empty HSLFTextParagraph
fix58558SXSSFSXSSFCell.setCellValue((RichTextString)null) fixed to work like XSSF and HSSF
fix58536SS CommonDataFormatter and CellFormat non-localised support for localised currency formats like [$$-408]
fix58532SS CommonDataFormatter cell formatting for things like [>999999]#,,"M";[>999]#,"K";#
fix58085HSSFFix removing sheet so not to break other existing sheet references
fix58480HSSFWork around problem where on Windows systems a Mapped Buffer can still lock a file even if the Channel was closed properly
addUpdate commons-logging to 1.2 and commons-codec to 1.10
removeXSSFRemoved deprecated mixed case getter/setter in XSSFColor (breaks backwards compatibility)
fix55032SS CommonFix handling missing option values in financial functions PV, FV, NPER and PMT
fix50319HSSFMake row groups which include row 0 work
removeRemoved deprecated HDF API (breaks backwards compatibility)
fix58466XSSFImprove column manipulation in XSSF to avoid changes overwriting each other
fix58471SS CommonImprove number formatting to more closely match Excel's behaviour
fix58549HSSFFix row limits for HSSFClientAnchor to allow the full range supported by Excel
fix58579XSSFAdd CTTableStyleInfo to poi-ooxml-schemas JAR

Version 3.13 (2015-09-25)#

Summary#

  • conditional formatting support for DataBars, Icon Sets / Multi-States, and Color Scales
  • various improvements in spreadsheets formula and cell reference handling
  • enforcement of locale and timezone-aware handling through forbidden-apis check, locale and timezone can now be switched via LocaleUtil
  • common api for slideshow (common sl) is now available be aware of several api breaks especially in HSLF text handling

Changes#

TypeBugModuleDescription
fix58350XSSFMake XSSF and HSSF consistent on Sheet.getMergedRegions: return empty list if there are none
add58216XSLFprovide picture-shape resize that maintains the aspect ratio
add57925SS CommonAdd a simple fix to avoid an NPE when Workbooks have invalid external references
add57915SS CommonFix Dev2Hex for numbers larger than Integer.MAX_VALUE and less than Integer.MIN_VALUE
add57890XSSFAdd support for different datatypes in XSSFImportFromXML
add58207XSLFProvide user access to the original image dimensions
fix55476XWPFFix adding pictures to XWPFRun instances
fix58341SS CommonHandle edge-cases in D* function
add58245SS CommonWorkbook support for iterating over Sheets
fix58353SS CommonReturn correct value in Match-Function with match-type == -1
fix58315XSSFAvoid NPE for RichTextString without font-details
fix53275XSSFXSSFFont: reset indexed color flag when setting a non-indexed color
fix58039SS CommonMake DGet and DMin function implementations thread-safe
fixAdjust Locale/Timezone handling to pass forbidden-api-checks and provide LocaleUtil to dynamically adjust the locale and timezone that POI operates on
fixFix DAYS360 handling for US/EU method
fix58254SS CommonCellFormatResult.text should check for nulls as per the javadoc
fix58260SXSSFFix checks for limit on number of styles in XSSF/SXSSF, fix more than 32k styles in SXSSF workbooks
fix58262SXSSFReadOnlySharedStringsTable now handles workbooks with an empty SST part
fix52111HSSFIntersection formulae are now supported in XSSF
fix58253SS CommonCellReference upper-case check for #REF!, and javadoc improvements
fix58252SS CommonMore CellReference unit testing coverage
fix54938POI OverallThrow InvalidFormatException as documented instead of IllegalArgumentException in WorkbookFactory.create()
fix58237XWPFWhen adding a picture to a XWPF header or footer, attach it to the right part
fix58220XSSFImprove the javadocs for XSSFFont and Font getFontHeight methods
fix56479OPCDon't hardcode dcterms as namespace alias in the attribute, but expect the actual alias that is used in the corresponding element
fix56519XSLFXSLFSlide.draw is not working with text embedded in PPTX
fix58205XSLFgetSlideMasters() returns the master slides in the incorrect order
fix57786XSLFXSLFFreeformShape ignores quadratic bezier curves
fix58206XSLFprovide a mechanism to find slide layouts by name
fix58204XSLFSTYLE: ShapeContainer interface makes internal getShapesList() redundant
add58190XSLFThe current picture handling uses raw integers for types and index, replace with enum and reference
fix58203POI OverallApparently Maven uses plurals for all artifacts except javadocs, so tweak our naming to make it happy
add58193XSLFUse input stream rather than byte array for checksum etc.
add58200SXSSFSXSSF support for evaluating formula cells, provided the cell and all its references are within the current window
fix58098POIFSAvoid NPE in cleanup if NPOIFSFileSystem is opened on a locked File under Windows
addMerged common_sl branch to trunk
fix57571SXSSFFix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
fix58175SXSSFFix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
fix58156POIFSPossible data corruption in hasPOIFSHeader and hasOOXMLHeader
add57484POI OverallAllow processing of non-OOXML core namespace packages
add58130SS CommonConditional Formatting support for DataBars, Icon Sets / Multi-States, and Color Scales

Version 3.13-beta1 (2015-07-23)#

Changes#

TypeBugModuleDescription
add56791POIFSThe default POIFS implementation has been switched to NPOIFS. If you request a POIFSFileSystem, you will now get a NPOIFSFileSystem-based one. OPOIFSFileSystem remains for those who still want the old implementation
add58138SS CommonConditional Formatting support for the common Color class, in addition to previous color shorts
fix58133POIFSAgile encryption - wrong checksum calculation
fix58113SXSSFRegression: NullPointerException when setting cell value to null
add57893XSSFAdd a method for obtaining all merged regions on a worksheet. This is faster for XSSFSheet than obtaining each individually by iteration.
add58036XSSFAdd basic support for VBA macro-enabled workbooks (xlsm)
fix57744HSMFFix parsing the email submission data when id contains a hyphen
fix57678HSMFBetter handle years in mail-messages between 1980 and 1999
fix54332HSLFWMF extraction failing in Tika for older PowerPoint Files
add56865POI OverallLimit number of bytes (by counting them) while opening office docs
add50090POI Overallzip bomb prevention
fix58069HSSFBiff8RC4 xorShort returns wrong value for unsigned shorts
fix56420SS CommonFix possible NullPointerException when empty cell is included in Sumif calculation
fix58040POI OverallLog Forging
fix56328XSSFImprove AreaReference to take account of the spreadsheet format version when determining whether a reference is whole-column.
fix57963XWPFFix and verify in CI builds that we can compile most examples without requiring scratchpad-jar, update documentation.
fix53109HSSFCorrectly handle unicode strings in NameCommentRecord
add57904POI OverallAutomatically verify that the resulting source-packages can be built
fix57512HSSFFix potential NPE in DateUtil for invalid dates
fix57889XWPFFix potential NPE in XWPFParagraph.getNumFmt()
fix57951SS CommonUse BigDecimal in some cases in DataFormatter.formatRawCellContents, to avoid rounding problems on JDK8
fix55410XSSFUse specific ID value which prevents Excel from turning comments into giant curved arrows

Version 3.12 (2015-05-11)#

Summary#

  • remove limitations within XSSF - up to 64k cell styles (57880) and 65k comments (56380)
  • fixed XSSF cloning issues - for sheets (57165), styles (56295), pictures (56467)
  • Fix shifting comments with shifted rows (56017)

Changes#

TypeBugModuleDescription
addInitial XWPFStyles support for working with default document paragraph and run styles
fixIf an empty file or stream is given to WorkbookFactory.create, give a more informative exception - EmptyFileException
fix57552XSLFSort PackagePart returns from OPCPackage by name considering numbers in filenames, so Image10.png comes after Image9.png, fixing problems with XSLF adding 10+ images to a slide
fix57880XSSFHandle >32,767 cell styles and formats in XSSF (file format limit is 64,000)
add57593HSSFAllow WorkbookFactory.create methods to open xlsx files protected with the default password
add57593HSSFAdd overloaded WorkbookFactory.create methods which take the spreadsheet password
fix57666SXSSFWhen removing a SXSSF sheet, ensure temp files associated with it are disposed of
fix57826XSSFIf a XSSF shape has a buFont but no bullet character, mirror Excel and treat as un-bulleted
fix57642XSSFFix setSheetName with ISERROR on XSSF
add57747SS CommonAdd ISERR() function
fix57829XWPFAvoid XmlValueDisconnectedException when removing a XWPFRun from a XWPFParagraph by removing from IRuns as well
fix57851POIFSSkip null properties in PropertyTableBase, which is how PropertyFactory reports unsupported POIFS properties
fix57820HSLFAvoid NPE on HSLF Tables with a top position of -1
fix56579XSSFThrow exception if max string length of 32767 chars is exceeded in XSSF and SXSSF.
fix55386SS CommonFix handling of bold formatting in example application 'ToHtml'
fix47304HDFUse fixed encoding when extracting text in WordDocument
fix56017XSSFFix shifting comments with shifted rows
fix56295XSSFFix cloning of styles across workbooks and handling of default value of attribute applyFill
fix56380HSSFRemove limitation of 1024 comments per Workbook
fix56467XSSFFix cloning of sheets with pictures
addMore helpful ExtractorFactory exception if given a Visio VSDX ooxml file
fix56799XWPFInclude CTTblGrid in the smaller poi-ooxml-schemas jar
fix57165XSSFAvoid PartAlreadyExistsException when removing/cloning sheets
fix56893HSSFAdditional check for supported string-length to avoid creating broken XLS files later one
fixWhen saving an OPCPackage with no Core Properties (eg from Jasper Reports), ensure they are always added even if not yet used
fixgithub-18Handle documents with a picture-only header
fix57622POI OverallChange from XMLEventFactory.newFactory to XMLEventFactory.newInstance, for IBM JDK Compatibility

Version 3.12-beta1 (2015-02-28)#

Changes#

TypeBugModuleDescription
fix57459SXSSFAdd method in SXSSFSheet to directly set row OutLineLevel
fix57456HSSFAdd workaround to read empty SSTRecord where Excel puts random number in unique-strings-count-field
fix57535XSSFAdd POI-specific error codes to FormulaError
addStart on common interfaces for Paragraphs and Character Runs for HWPF and XWPF
addDouble Strikethrough support for XWPF runs, along the lines of the HWPF support
fix57482XSSFHandle XSSF .xlsx files with no shared strings table in read-only mode
fixExtractorFactory opening of OPCPackage from File should be read-only by default, as text extracting will never change things
addXSSFSheet support for getDrawingPatriarch(), alongside the existing createDrawingPatriarch() method
fixTIKA-1515 - Handle Excel 3 files with a 0x8001 codepage
add53453HWPFAdd methods to set margins in sections of HWPF documents
fix46898XSSFReturn #VALUE! for circular references.
fix46192HSSFAdd methods to query outline level for HSSF and XSSF
fix56240HSLFHandle PP97_DUALSTORAGE streams
fix47261HSLFSlideShow.removeSlide makes PPT corrupted
add49541HSLFMapping of symbol characters to unicode equivalent
add54541HSLFAdd support for cropped images in Slide.draw()
add57007HSSFAdd initial implementations of DMIN and DGET functions
addSupport for Office Binary Document RC4 CryptoAPI Encryption for HSLF
add57195POIFSSupport for Office Binary Document RC4 Encryption
fix57373XSSFFix get/setFirstVisibleTab() for XSSFWorkbook
fix57362XSSFProperly initialize chart-axis datastructure when loading a spreadsheet which already contains one.
fix56511XSSFFix NullPointerException for RichText strings with no formatting for some runs.
add56550POI OverallAvoid IBM JDK fail immediately during loading some POI classes, note: IBM JDK 1.7 or higher is needed because of XML APIs.
add56595POI OverallSwitch the cache in DateUtil.isADateFormat() to ThreadLocals to not have another syncpoint here.
fix56644XSSFNullPointerException in XSSFCell Constructor with different MissingCellPolicy
fix56888XSSFXSSFDataValidation ignores "allow blank" read from sheet, assumes true
fix57171XSSFAdjust the active sheet in setSheetOrder()
fix57163HSSFAdjust the active sheet in removeSheet()
fix57231HSSFAdd missing ArrayRecord.clone()
addExpose the version information from OldExcelExtractor
fix57071XSSF3+ XSSF column label names for pivot tables
add57063XSSFXSSF custom column label names for pivot tables
fix57254XWPFCorrectly build internal list of styles when styles are added
fix57312XWPFAdd check for null value of underline w:val

Version 3.11 (2014-12-21)#

Summary#

  • Basic text extractor for very old Excel formats such as Excel 4 (Biff4), and older Excel 5 and 95 formats
  • XML Signature support for XSSF, XWPF and XSLF (56836)
  • HSSF and XSSF support for getting existing Data Validations for a Sheet
  • HSSF and XSSF formula support for the PROPER function (57010)
  • XSLF support for adding slide notes (55164)
  • XMLBeans performance improved when using getXXXList() methods (56854)
  • Recommended Apache XMLBeans version increased to 2.6.0 (any version from 2.3.0 or later will work though)
  • XSSF support for evaluating formula references to other Workbooks (56737)
  • HSSF and XSSF support for evaluating formulas with multi-sheet references, for functions that support that (55906)
  • HSSF and XSSF Workbooks are now Closeable, so you can call close() to explicitly free the file based resources when you're done (56537)
  • NPOIFS now fully supports writing, including streaming write, and in-place updating of existing entries. NPOIFSFileSystem now surpasses the old POIFSFileSystem in all cases.
  • XSSF Text Extraction support for Headers, Footers and Comments (56022 56023)
  • SXSSF Shared Strings optional support (53130)
  • XWPF Change Tracking support (56075)
  • HWPF password hash function (56077)
  • XWPF document protection with password support (56076)
  • SXSSF support for a system-wide setting of where Temp files get created, via TempFile / TempFileCreationStrategy (56735)
  • The minimum Java version has been increased to Java 1.6
  • The minimum Apache Ant version has been increased to Apache Ant 1.8
  • The interface org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler has had two method signature changes: endRow() -> endRow(int) and cell(String,String) -> cell(String,String,Comment)
  • All security related changes from 3.10.1 (CVE-2014-3529 and CVE-2014-3574) are included in 3.11. Thanks to Stefan Kopf, Mike Boufford, Mohamed Ramadan, and Christian Schneider for their help with these.
  • Please note: You should use xmlbeans-2.6.jar (as shipped with this release) instead of the xmlbeans-2.3.jar version from old releases to work around CVE-2014-3574. If you have an alternate XML parser like Apache Xerces in classpath, be sure to use a recent version! Older versions are likely to break on setting required security features.

Changes#

TypeBugModuleDescription
fix57479HSSFTypo in HSSFWorkbook javadocs and quick-guide.
fix57480HSSFFix some unnecessary casts, generics, Eclipse warnings, ...
addAdded workarounds to tests for JDK 6 LineBreakMeasurer bug
fix57250XSLFXMLSlideShow.setSlideOrder() produces corrupted CTSlideIdList
fix57272HSLFDeadlock on corrupted PPT file
fixXML signatures - ignore line breaks in Office 2007 .rels files
addBasic text extractor for older Excel 5 and 95 formats
addBasic text extractor for very old Excel formats such as Excel 4 (Biff4)
fixClassCastException in validating xml signatures due to missing xml beans resources
fix57171XSSFAdjust active sheet correctly when sheets are moved.
fix57163HSSFAdjust active sheet correctly when sheets are removed.
fix57164XSSFXSSFDrawing.createCellComment() does not honor dx and dy values passed in
add55967XSSFPicture method to resize with different scales in width and height
addgithub-13Add Cell.removeHyperlink() for HSSF and XSSF

Version 3.11-beta3 (2014-11-11)#

Changes#

TypeBugModuleDescription
add57003HSSFImplement FIXED function
addgithub-7Form check box extraction with XWPFWordExtractor
addgithub-11Add Sheet.getDataValidations() for HSSF and XSSF
addgithub-12Add Comment.getClientAnchor() for HSSF and XSSF
fix57185POI OverallCorrect naming from "Serie" to "Series"
fix57176XSSFInclude CTDefinedNamesImpl in the smaller poi-ooxml-schemas jar
fix57162OPCCould not open macro enabled xlsm file after writing using POI3.11beta2 version
add57010HSSFAdd implementation of function PROPER
fix57166HSSFAdd missing HSSFWorkbook constructor javadocs
add57151XSSFAnd documentation and validation in CellRangeAddress to prevent invalid row/column combinations
add55164XSLFSupport for adding slide notes
fix57143XSSFJavadocs and throws clause for WorkbookUtil
add54542XSLFAdd support for cropped images in XSLFPictureShape.drawContent()
addadded ooxml-security-1.0 to the maven artifacts
fix55864XSSFXSSFImportFromXML.importFromXML() does not support optional elements
fix56835XSSFUnreadable content when adding multiple comments to cell
addSheetUtil.getCellWithMerges for getting a cell at a co-ordinate, or the primary one of it's merged region if it's a merged cell
add56836POIFSXML signature support
fix57080POIFSIndexOutOfBoundsException in poi decryptor
addThe minimum Apache Ant version required to build has been increased to 1.8.x or later
add56956POIFSAdd a NPOIFSFileSystem constructor with a FileChannel and the read-only option
fix56914XSSFXSSFRowShifter.updateConditionalFormatting throws IOOBE when there are more than 1 CTConditionalFormatting
fix56913POI OverallReplace usages of o.a.p.util.ArrayUtil.copyOf* methods with replacements from j.u.Arrays
fix51483XSSFXSSF locking of specific features not working
fix48195HSSFFormulas: Fix incorrect evaluation of IF() with ROW()/COLUMN() as else-result.
fix55280XSSFGreatly improve performance of shifting rows in sheets with many merged regions.
fix51222XSSFXSSFColor.getARGBHex() returns wrong color for Excel 2007 xlsx file
fix56730XSSFFix exporting XML if schema contains ref-elements
fix56864XWPFXWPFLatentStyles.isLatentStyle always returns true if there is at least 1 lsdException
fix56854XSSFXMLBeans performance when using getXXXList() and other proxy methods

Version 3.11-beta2 (2014-08-22)#

Changes#

TypeBugModuleDescription
fix56812XSLFFor XSLF Pictures, provide a way to get the URI of externally linked pictures
fix54764XSSFOn supported XML parser versions (Xerces or JVM built-in, XMLBeans 2.6), enforce sensible limits on entity expansion in OOXML files, and ensure that subsequent normal files still pass fine (CVE-2014-3574)
fixRecommended Apache XMLBeans version increased to 2.6.0 (any version from 2.3.0 or later will work though)
fix56800XSSFProvide a helpful exception, XLSBUnsupportedException, if XSSFWorkbook is passed a .xlsb file
fix56814OPCSwitch from dom4j to JAXP

Version 3.10.1 (2014-08-18)#

Summary#

  • This release is a bugfix release to fix two security issues with OOXML:
  • Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529).
  • On supported XML parser versions (Xerces or JVM built-in, XMLBeans 2.6), enforce sensible limits on entity expansion in OOXML files, and ensure that subsequent normal files still pass fine (CVE-2014-3574).
  • Please note: You should use xmlbeans-2.6.jar (as shipped with this release) instead of the xmlbeans-2.3.jar version from the 3.10-FINAL release to work around CVE-2014-3574. If you have an alternate XML parser like Apache Xerces in classpath, be sure to use a recent version! Older versions are likely to break on setting required security features.
  • Thanks to Stefan Kopf, Mike Boufford, Mohamed Ramadan, and Christian Schneider for reporting these issues!

Changes#

TypeBugModuleDescription
fix54764XSSFOn supported XML parser versions (Xerces or JVM built-in, XMLBeans 2.6), enforce sensible limits on entity expansion in OOXML files, and ensure that subsequent normal files still pass fine (CVE-2014-3574)
fix56164OPCTidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)

Version 3.11-beta1 (2014-08-04)#

Summary#

  • Security fix CVE-2014-3529: external XML entity expansion. Affects reading OOXML documents.
  • Dropped support for Java 1.5. Java 6 is now the minimum version required to run POI.

Changes#

TypeBugModuleDescription
fix56164OPCTidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)
fix55196XWPFCorrect XWPF createTOC handling of short style names
fix55050SS CommonIf the start+end row and cell are the same on an AreaPtg, avoid inverting the relative flag
fix54725HWPFHWPF where no parent style CHP exists, use an empty set when processing the style to avoid a NPE
fix56502XSSFWhen shifting XSSF rows with formula cells, if the formula can't be parsed, log + leave it unchanged rather than failing
fix56527XSSFAvoid NPE from XSSFHyperLink when setting the cell it references on a new link
fix53984HSSFIf an unsupported BofRecord is found for a sheet, warn and skip rather than breaking
fix53984HSSFSupport the ColInfoRecord coming after the cells, rather than before as is normal
fix56132XSSFAllow XSSF formula evaluation to also skip missing external workbook references, if requested, in line with existing HSSF support
add56020XSSFXSSF support for creating Pivot Tables
add55906SS CommonFormula Evaluator support for multi-sheet references for those functions which support them, eg SUM(Sheet1:Sheet3!A1:B2)
add56023XSSFAllow XSSF event model to find + return comments, and use this for the event based .xlsx text extractor. Required backwards-incompatible updates to XSSFSheetXMLHandler.SheetContentsHandler (breaks backwards compatibility)
fix56194HPSFHPSF thumbnail format tags are Int not UInt
fix56735POI OverallAllow a system wide setting of where Temp files (eg for SXSSF) are stored, via TempFile / TempFileCreationStrategy
fix56683OPC / OOXMLHave XMLBeans request UTF-8 for strings by default, to avoid issues on the odd platform where that isn't already the case
fix54443HSSFCorrect HSSFOptimiser logic for the case where the to-keep style wasn't previously in use
add56737XSSFXSSF support for evaluating formula references to other Workbooks
fix56688SS CommonFix border cases in EDATE function: handle RefEval and BlankEval and also return #VALUE, not #REF in case of error
add56744XSSFInitial support for XSSF External Links tables, which hold references to other workbooks referenced by formulas and names
fix56702XSSFIf a cell is of type numeric but has an empty <v/> tag, return as 0
fix56537SS CommonMake Workbook be Closeable, so you can call close() to explicitly free the file based resources when you're done
fix54771XWPFRead text from SDTs at the table cell level, including (sometimes) Cover Page, Table of Contents and Bibliography
fix56556XSSFChange how ColumnHelper finds CTCol instances, to speed up the more common use case when most are wanted for reading
fix56572SS CommonHSSFCell should follow XSSF, and allow setting a null-style to return to the default style
fix56563HSSFFix multithreading bug when reading 2 similar files
fix53691HSSFFix a copy/paste error in CFRuleRecord.clone()
fix56170HSSFFix a problem with cells in workbooks becoming disconnected
fix56514XSSFAdd missing null-check if simple shape does not
fix56325HSSFBug 54400 introduced a problem when removing a sheet with named ranges
fix47251HSSFNoteRecord can sometimes be double-padded if there's no author set
fix54034XSSFHandle date format strings in an iso8601 style format, with a T in them
fix56274SXSSFCorrect SXSSF writing of tables when creating from a template
fix56468XSSFWriting a workbook more than once corrupts the file
fix53983HSMFOutlook sometimes stores a codepage of ANSI when it means 1252, detect and alias
add56486HSSFAdd XOR obfuscation/decryption support to HSSF
add56269XSSFDateFormat - Rounding of fractionals
fix56482XSSFExcel 2007 and later allows for more than 3 Conditional Formatting rules per sheet, so change our hard limit to logging a compatibility warning
addPOIFSAdd NPOIFS in-place write support, including updating the contents of existing entries
addPOIFSComplete NPOIFS write support
fix56447POIFSNPOIFS fixes for 2+gb files loaded via File (InputStream is limited to 2gb due to ByteBuffer limits)
fix56450HSSFAvoid a NPE if a comment has no associated NoteRecord (but we still don't know where it belongs)
fix56437POIFSStreaming write support in NPOIFS
fix56315SS CommonFix floating point rounding problems with ROUND function
fix55594SXSSFFix SXSSF encodings on EBCDIC platforms, by setting the required encoding explicitly
fix56278XSSFSupport loading .xlsx files with no Styles Table
fix56195XSSFReplace System.err in XSSFSheetXMLHandler with proper logging
fix56169XSSFFix NPE during XSSFExportToXml export to XML with xs:all
fix55923XSSFFix compare/sorting of nodes in exported XML via XSSFExportToXml
fix55926XSSFHandle numeric formula values when exporting to XML
fix55927XSSFHandle date types when exporting to XML
fix56011XSSFUse default style if the cell style attribute is not present
addPOI OverallEnd support for Java 1.5. POI now requires Java 6 or higher. (breaks backwards compatibility)
addPOI OverallUpgrade third party libs to latest versions: commons-logging, commons-codec, log4j (breaks backwards compatibility)
fix56260HSLFAvoid warnings when a TextHeaderAtom is empty and has another straight after, or where there's a TextRulerAtom / MasterTextPropAtom / TextSpecInfoAtom before the Text Chars / Bytes
add56075XWPFAdd Change Tracking support to XWPF
add56077HWPFAdd password hash function to HWPF
add56076XWPFAdd document protection with password support to XWPF
fix55026POI OverallSupport OOXML ContentTypes which include parameters
fix55732HSLFPPT can't open, fails with "Couldn't instantiate ... StyleTextProp9Atom"
fix56138HPSFHPSF code page strings can be zero length
add53130SXSSFSXSSF Shared Strings option support
fix55902XSLFMixed fonts issue with Chinese characters (unable to form images from ppt)
add56022XSSFXSSF Event Text Extractor header/footer support
fix53282XSSFHyperlink with a non-breaking space throws java.lang.IllegalStateException
fix55802XWPFWrong encoding used for non-ASCII characters in text runs
addHWPFExpose the StyleIndex of HWPF CharacterRuns
fix51891POIFSFix StringIndexOutOfBoundsException : Ole10Native.<init> (parsing word file)

Version 3.10-FINAL (2014-02-08)#

Changes#

TypeBugModuleDescription
fix51585XSSFWorkbookFactory.create() hangs when creating a workbook
add55873POI OverallSupport for COUNTIFS function
fix55723HSSFInconsistent behavior in HSSFSheet.setAutoFilter() function, also make XSSF work when setAutoFilter is called multiple times
fix51158XSSFWriting a workbook multiple times produces unreadable content
fix45776HSLFFix corrupt file problem using TextRun.setText
fix41246HSLFAIOOBE with missing notes entries
fix48593HSLFMultiple Saves Causes Slide Corruption
add55579HSLFSupport embedding OLE objects into HSLF
add55818POIFSAdd encryption support
fix55731POI OverallFix StringBuilder logic in DataFormatter.cleanFormatForNumber
fix55730HSSFFix org.apache.poi.ss.usermodel.BuiltinFormats.java for 0x29-0x2c
fix55901HPSFAvoid using RMI based exception from PropertySetFactory, as it's not needed nor helpful
fix55850XSSFFix NullPointerException during Xml-extraction from xlsx
fix55640XSSFAvoid IndexOutOfboundsException when setting nested row grouping
fix55745XSSFfix handling of tables in XSSF if there are comments as well
add55560HSLFPatch for hiding slides in HSLF
fix53176XSLFFixed auto shapes render problem in pptx files
add55661XSSFCellStyle support for get/set Shrink To Fit
fix49237HSSFHSSF Row Style XfIndex is 12 not 16 bits of data
fix53475POIFSOOXML encrypted document fix for cspname being optional
fix55733XWPFXWPFWordExtractor needs to handle .docx files with neither headers nor footers
fix55729HSSFDataFormatter should format Error cells, returning the Excel error string
add55612HSSFPerformance improvement in HSSFCellStyle.getDataFormatString()
add55611HSSFPerformance improvement in DateUtil.isADateFormat(int, String)
add55578HSSFSupport embedding OLE1.0 packages in HSSF
add49658HSSFSupport embedding EMF/WMF pictures in HSSF
fix52400HMEFFix handling some types of TNEF files
fix54400HSSFUpdating the index in the LinkTable whenever sheets are removed
fix49940XSSFApply patch to avoid XmlValueDisconnectedException when saving a file twice
add55369SXSSFAdd support for collapsing rows in SXSSF
fix55692POIFSGive a more helpful error if an Encrypted .xlsx file is passed to HSSF
fix55650XSSFAvoid AIOOBE if a non-existant Xfs is requested for a style
fix55658SXSSFDon't fail in SXSSF if a numeric cell is overwritten with a string
fix55341POI OverallConstants for HAIR and DOTTED border styles are swapped
addAdd Eclipse project files
add55647POI OverallWhen creating a temp file, ensure the name isn't already taken
add54722HSLFExtract text from HSLF tables
add55544POIFSSupport for SHA-512 hashes on OOXML protected documents, as used by Office 2013

Version 3.10-beta2 (2013-09-19)#

Changes#

TypeBugModuleDescription
fix53798XSSFAdd fix for XmlValueDisconnectException during shifting rows
fix54524POI OverallFix handling of special case in FormulaShifter
fix50298HSSFFix corruption of Workbook when setting sheet order
fix55419POI OverallFix SimpleFractionException when fraction goes to greater than overflow
add54786XSSFAdd support for quoting in date formatting
fix52233XSSFDo not make the XSSFSheet invalid during write()
add55195HSSFMultiOperandNumericFunction.collectValue() currently uses concrete final classes but should use interfaces instead
fix55380HSSFEndless loop in CellRangeUtil.mergeRanges() when regions are overlapping
add55347 45551XSSFIntegrate 55292 into XSSF extractors -- extract text from text boxes in xlsx files
fix55361XWPFTika 792 - Avoid CTMarkup NoSuchMethodException stack trace by adding two beans to ooxml-lite"
fix55294 52186XSSFFix column grouping in XSSF.
add55292XSSFEnhancements to XSSFSimpleShape (textbox) including: ability to add multiple paragraphs, formatting (read/write) and text extraction.
fix55191HPSFAvoid a ClassCastException if a HPSF string property isn't directly stored as a string
fixHSMF ascii encoding detection should use the CodePage properties where available
fixHSMF fixed length property parsing should be more forgiving of some type differences from the property default
fix54233HPSFSome HPSF documents require UnicodeStrings to be 4-byte aligned, spot these from the otherwise invalid length
addUpgrade version of JUnit to 4.11 to avoid problems when executing unit tests using Apache Ant >= 1.7

Version 3.10-beta1 (2013-06-28)#

Changes#

TypeBugModuleDescription
fix54925HSLFAvoid issues if the length of a StyleTextPropAtom prop is longer than the parent text
fix54564HSSFFix error message text for a workbook with no sheets when a sheet operation is performed
fix53972HSSFPresence of PLV record shouldn't affect HSSF Data Validation
fix55142XWPFNot all XWPF SDT blocks need newlines
fix54920XSSFXSSFDrawing.createCellComment causes CommentsTable to lose reference to comment in cell A1
fix54982XSSFExtractorFactory does not close files when extracting via OCPPackage.open()
fix54607XSSFNullPointerException in XSSFSheet.getTopRow() when the top row is 1
fix54686XSSFImprove how DataFormatter handles fractions
fix55066XWPFDon't load XWPF Footnotes twice
add54849XWPFControlled content/Form (Std/StdBlock) content
fixgithub-2HSSFWorkbook.getAllEmbeddedObjects() needs to recurse into container Shapes
addgithub-4Expose from XWPFParagraph the number level and format, if applied
addgithub-3Extract references from XWPF footnotes
fix55053POI OverallUpdate License links following ECMA site re-organisation
add49658HSSFSupport embedding EMF/WMF pictures in HSSF
add55047POI OverallREPT formula support
add55042POI OverallCOMPLEX formula support
add55041POI OverallCODE formula support
fix55001HSLFSupport Unicode text (TextCharsAtom) in HSLF TextShape
fix54682HWPFUnhandledDataStructure should sanity check before allocating, not after
add54673POI OverallSimple wildcard support in HLOOKUP, VOOLKUP, MATCH, COUNTIF
fix54625HSSFRegister user-defined functions in instance scope instead of static
fix54469SS CommonSupport for financial functions IPMT and PPMT
fix54407HSLFAvoid XmlValueDisconnectedException when merging slides
fix54356POI OverallSupport of statistical function SLOPE
fix54403POI OverallSupport of statistical function INTERCEPT
fix54557POI OverallDon't mis-detect format patterns like .000 as dates
fix54506HSSFSupport unusual .xls files with a BOOK directory entry (normally it is Workbook)
add54508POI OverallEDATE formula support
fix53810POIFSNPOIFS fix for 0 not -1 padded partially used XBATs
fix54402POI OverallIfError handling of indirect references
add53966POI OverallIfError support (from Analysis Toolpak)
fix53650SXSSFPrevent unreadable content and disallow to overwrite rows from input template in SXSSF
fix54228 53672XSSFFixed XSSF to read cells with missing R attribute
fix54206HSSFEnsure that shared formulas are updated when shifting rows in a spreadsheet
fixSynchronize table headers with parent sheet in XSSF
fix54210HSLFFixed rendering text in flipped shapes in PPT2PNG and PPTX2PNG

Version 3.9 (2012-12-03)#

Changes#

TypeBugModuleDescription
fix54188HSLFAvoid NPE in PPT2PNG
fix52628POI OverallReplace System.err info messages with a POILogger
fix54137POI Overallimproved performance of DataFormatter with Fractions
fix54099XWPFEnsure that CTHMerge and CTTcBorders go to poi-ooxml-schemas jar
fix54111HSLFFixed extracting text from table cells in HSLF
add52583HWPFadd support for drop-down lists in doc to html conversion
add52863HWPFadd workaround for files with broken CHP SPRMs
fix53182HWPFReading combined character styling and direct formatting of a character run
fix52311HWPFConversion to html : Problem in titles number
fix53914HWPFTableRow#getTopBorder() return bottom's border
fix53282XSSFAvoid exception when parsing OPC relationships with non-breaking spaces
fix54016HSSFAvoid exception when parsing workbooks with DConRefRecord in row aggregate
fix54008POI OverallFixed Ant build to support build directories with blanks
fix53374Avoid exceptions when parsing hyperlinks of type "javascript://"
fix53404HSSFFixed compatibility bug with modifying xls files created by POI-3.6 and earlier
add53979HSLFSupport fetching properties of Numbered Lists from PPT files
add53784HSMFPartial HSMF support for fixed sized properties
add53943HWPFadded method processSymbol() to allow converting word symbols
fix53763HSSFavoid style mess when using HSSFOptimiser
fix52972SXSSFpreserve leading / trailing spaces in SXSSF
fix53965XSSFFixed XmlValueOutOfRangeException calling getDataValidations for custom validations with XSSFSheet
fix53974HSSFAvoid NPE when constructing HSSFWorkbook on Google App Engine
fix53568XSSFFixed null returned by XSSFPicture.getPictureData()
fix53950XSSFfixed setForceFormulaRecalculation to reset workbook-level "manual" flag
fix52211XSSFavoid unnecessary re-converting content types to US-ASCII, it can cause exceptions on ibm mainframes
fix53568XSSFSet shapes anchors in XSSF when reading from existing drawings
addHSSFOptimiser will now also tidy away un-used cell styles, in addition to duplicate styles
fix53493SXSSFFixed memory and temporary file leak in SXSSF
fix53780SXSSFFixed memory and temporary file leak in SXSSF
fix53380HWPFArrayIndexOutOfBounds Exception parsing word 97 document.
fix53434POI OverallSubtotal is not return correct value.
fix53642POI OverallXLS formula evaluation logging
fix53561HSSFUnexpected adding of drawings into a workbook
fix53413HSSF[GSoC] Improved work with shapes. HSSF
fix53361HSSFfeature: enhancements in EscherAggregate
fix53302HSSFEscherAggregate does not handle Continue records
fix53144HSSFFirst comment not cloned after cloneSheet()
fix53028HSSFBroken auto fit row height in the cells with word wrap
fix53010HSSF[GSoC2012] Improve drawing support in HSSF
fix52764HSSFUnmodified cell comments disappear after HSSFWorkbook.write
fix52300HSSFCorrupted File after cloneSheet()
fix52272HSSFInserting images on cloned sheet with images.
fix51796HSSFThe [EscherClientAnchorRecord] for object (eg: TextBox,Shape) may get lost.
fix51683HSSF[HSSF] Improve support for Shapes and Shape Groups
fix51676HSSFUsing drawingPatriarch.createCellComment(anchor) leads to File error: data may have been lost
fix51675HSSFBackground images cause problems in HSSF spreadsheet
fix51455HSSFIt would be really nice to be able to set the background picture of a comment
fix51341HSSFAdding Image to Header in Excel Using HSSF
fix51280HSSFwhen we insert a new image to the existing excel file that corrupts the previous images
fix50696HSSFFile Error: data may have been lost
fix48989HSSFIf we have a comment but the row is not created we will not be able to get it.
fix48873HSSFComments not saving in XLS files with collapsible columns
fix48654HSSFNot able to read Excel (xls) file having drawing objects
fix48590HSSFExcel crashes after using removeCellComment methods
fix46444HSSFcloning cloned sheet with autofilters corrupts the workbook
fix45129HSSFLost picture in file output after saving with POI
fix47624HSSFFile Error Data May Have been Lost error while opening commented workbook(excel file)
fix46143HSSFsetLineStyleColor for comments do not work
fix53699XSSFPatch to correct BorderStyle enum positions
add53064Ugly Duckling case study
add53644HSSFXLS formula bugfix (CalFieldFunc) + WeekDay addon
add53446POI OverallFixed some problems extracting PNGs
fix53205HDGFFixed some parsing errors and encoding issues in HDGF
add53204HSSFImproved performance of PageSettingsBlock in HSSF
add53500POI OverallGetter for repeating rows and columns
fix53369XSSFFixed tests failing on JDK 1.7
fix53360SXSSFFixed SXSSF to correctly write text before escaped Unicode control character
addHSMFChange HSMF Types to have full data on ID, Name and Length, rather than just being a simple ID
add48469HSSFUpdated case study
add53476HSSFSupport Complex Name in formulas
fix53414HSSFproperly update sheet dimensions when adding column
addAdd File based constructor to OPCPackage, alongside existing String one (which constructed a File from the string internally)
fix53389POI OverallHandle formatting General and @ formats even if a locale is prefixed to them
fix53271SXSSFRemoved unconditional asserts in SXSSF
add53025XSSFUpdated documentation and example on using Data Validations
add53227XSSFCorrected AddDimensionedImage.java to support XSSF/SXSSF
add53058HSSFUtility for representing drawings contained in a binary Excel file as a XML tree
add53165HWPFHWPF support for fetching the description (alt text) of a picture
fix48528XSSFsupport negative arguments to the DATE() function
fix53092POI Overallallow specifying of a TimeZone to DateUtil.getJavaDate(), for when it is known that a file comes from a different (known) timezone to the current machine
fix53043XSSFdon't duplicate hyperlink relationships when saving XSSF file
fix53101XSSFfixed evaluation of SUM over cell range > 255
fix49529HSSFavoid exception when cloning sheets with no drawing records and initialized drawing patriarch

Version 3.8-FINAL (2012-03-26)#

Summary#

  • NPOIFS: NIO driven API to read OLE2 filesystems with low memory footprint.
  • SXSSF: a low-memory footprint API built on top of XSSF that can be used when very large spreadsheets have to be produced, and heap space is limited
  • poi-excelant: Ant tasks for running POI against a workbook
  • Supported evaluation of new Excel formulas: IRR,NPV,MROUND,VAR,VARP,CLEAN,CHAR,ADDRESS,HOUR,MINUTE,SECOND,RATE,WORKDAY,NETWORKDAYS,SUMIFS,RANK
  • XSLF usermodel API: POI's implementation of the PowerPoint 2007 OOXML (.xlsx) file format. XSLF provides a rich usermodel API and a PPTX2PNG utility to export slides to images.
  • WordToFO, WordToHtml and WordToText converters: utilities to export MS Word .doc files into XSL-FO, html and text files. Output from WordToFO can be used to convert .doc files to pdf using Apache FOP.
  • Numerous improvements and refactorings in HWPF, Java API for MS Word .doc files: support for reading footnotes, endnotes and bookmarks, improved support for handling tables, paragraphs, text runs and much more...
  • Initial support for charts in XSSF
  • support for OOXML Agile Encryption

Changes#

TypeBugModuleDescription
add52928POI OverallDateFormatConverter: an utility to convert instances of java.text.DateFormat to Excel format patterns
fix52895HSSFshow SSTIndex instead of XFIndex in LabelSSTRecord.toString()
fix52835XSSFTolerate missing Count and UniqueCount attributes when parsing shared strings table in XSSF eventusermodel
add52818HSSFAdded implementation for RANK()
fix52682HSLFallow setting text with trailing carriage return in HSLF
fix52244HSLFuse correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type
addsupport setting background color of sheet tab in XSSF
add51564XWPFsupport for enforcing fields update in XWPF
add51673SXSSFsupport grouping rows in SXSSF
add51780POI Overallsupport replacement of content types in OPC packages
fix52784SXSSFreplace ISO control characters with question marks in SXSSF to be consistent with XSSF
add52057HSSFupdated formula test framework to be aware of recently added Functions
add52574HSSFsupport setting header / footer page margins in HSSF
add52583HWPFfixed WorkbookUtil#createSafeSheetName to escape colon
add51710XSSFfixed reading shared formulas in XSSF
add52708POI Overallmisc improvements in CellFormat
add52690POIFSadded a getter for length of encrypted data in Ecma and Agile decryptors
fix52255XWPFsupport adding TIFF,EPS and WPG pictures in OOXML documents
fix52078HSLFavoid OutOfMemoryError when rendering grouped pictures in HSLF
fix52745XSSFfixed XSSFRichtextString.append to preserve leading / trailing spaces
fix52716XSSFtolerate hyperlinks that have neither location nor relation
fix52599HSLFavoid duplicate text when rendering slides in HSLF
fix52598HSLFrespect slide background when rendering slides in HSLF
fix51731HSLFfixed painting shape outlines in HSLF
fix52701XSLFfixed setting vertical alignment for XSLFTableCell
fix52687XSLFfixed merging slides with pictures with associated custom tags
add allow runtime registration of functions in FormulaEvaluator
fix52665POI OverallWhen reading from a ZipFileZipEntrySource that has already been closed, give IllegalArgumentException rather than NPE
fix52664HSMFMAPIMessage may not always have name chunks when checking for 7 bit encodings
fix52649HWPFfixed namespace issue in WordToFoConverter
fix52385HPSFavoid truncated array and vector data when reading OLE properties
fix52662HWPFCharacterRun NPE fix when fetching symbol fonts, where no fonts are defined
add52658XSLFsupport merging table cells in XSLF
addvalidate row number and column index in SXSSF when creating new rows / cells
fix51498POI Overallfixed evaluation of blank cells in COUNTIF
add52576HSSFsupport changing external file references in HSSFWorkbook
add49896POI Overallsupport external references in FormulaRenderer
fix52527HSSFavoid exception when matching shared formula records in HSSF
add52568XWPFAdded methods to set/get an XWPFRun's text color
add52566XWPFAdded methods to set/get vertical alignment and color in XWPFTableCell
add52562XWPFAdded methods to get/set a table row's Can't Split and Repeat Header attributes in XWPF
add52561XWPFAdded methods to set table inside borders and cell margins in XWPF
add52569HSSFSupport DConRefRecord in HSSF
add52575HSSFadded an option to ignore missing workbook references in formula evaluator
addValidate address of hyperlinks in XSSF
fix52540XWPFRelax the M4.1 constraint on reading OOXML files, as some Office produced ones do have 2 Core Properties, despite the specification explicitly forbidding this
add52462HSSFAdded implementation for SUMIFS()
addPOIXMLPropertiesTextExtractor support for extracting custom OOXML properties as text
fix52449XWPFSupport writing XWPF documents with glossaries (Glossaries are not yet supported, but can now be written out again without changes)
fix52446POIFSHandle files which have been truncated by a few bytes in NPropertyTable
fix52438POI OverallUpdate CellDateFormatter to handle times without seconds
add52389XSSFSupport ?/? as well as #/# fractions, and tighten DataFormatter rules for fraction matching
add52200XWPFUpdated XWPF table example code
add52378HSSFSupport for WORKDAY and NETWORKDAYS functions
add52349XSSFMerge the logic between the TEXT function and DataFormatter
fix52349XSSFCorrectly support excel style date format strings in the TEXT function
fix52369XSSFXSSFExcelExtractor should format numeric cells based on the format strings applied to them
fix52369XSSFEvent based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler
fix52348XSSFAvoid exception when creating cell style in a workbook that has an empty xf table
fix52219XSSFfixed XSSFSimpleShape to set rich text attributes from XSSFRichtextString
fix52314POI Overallenhanced SheetUtil.getColumnWidth

Version 3.8-beta5 (2011-12-17)#

Changes#

TypeBugModuleDescription
fix52204XSSFDeprecated XSSFWorkbook(String path) constructor because it does not close underlying .zip file
fix46288HSLFfixed refcount of Fill pictures in HSLF
add51961SXSSFsupport compression of temp files in SXSSF
add52268XSSFsupport cloning sheets with drawings in XSSF
add52285XWPFSupport XWPF smart tags text in Paragraphs
fix51875XSSFMore XSSF new-line in formula support
addPOIFS EntryUtils.copyNodes(POFS,POIFS) now uses FilteringDirectoryNode, so can exclude from copying nodes not just directly under the root
addPOIFS Helper FilteringDirectoryNode, which wraps a DirectoryEntry and allows certain parts to be ignored
fix52209XSLFfixed inserting multiple pictures in XSLF
fix51803HSLFfixed HSLF TextExtractor to extract content from master slide
fix52190XWPFnull check on XWPF setFontFamily
fix52062SXSSFensure that temporary files in SXSSF are deleted
fix50936HWPFException parsing MS Word 8.0 file (as duplicate of 47958)
fix47958HWPFArrayIndexOutOfBoundsException from PicturesTable.getAllPictures() during Escher tree walk
fix51944HWPFPAPFormattedDiskPage.getPAPX - IndexOutOfBounds
fix52032HWPFHWPF - ArrayIndexOutOfBoundsException with no stack trace (broken after revision 1178063)
addsupport for converting pptx files into images with a PPTX2PNG tool
add52050HSSFSupport for the Excel RATE function
fix51566HSLFHSLF fix for finishing parsing the picture stream on the first non-valid type
fix51974HWPFAvoid HWPF issue when identifying the picture type
fix52035HWPFFix signed issue with very large word 6 files
fix51949POI OverallAvoid NPE on double close of ZipFileZipEntrySource
fix51950XWPFXWPF fix for footnotes not always being present in a document
fix51963POI OverallCorrect AreaReference handling of references containing a sheet name which includes a comma
fix51955XSSFXSSFReader supplied StylesTables need to have the theme data available
fix51716SXSSFRemoved incorrect assert in SXSSFSheet#getSXSSFSheet
fix51834HWPFOpening and Writing .doc file results in corrupt document
fix51902HWPFPicture.fillRawImageContent - ArrayIndexOutOfBoundsException (duplicate)
fix51890HWPFArrayIndexOutOfBounds ExceptionPicture.fillRawImageContent
addAllow the passing of a File object to WorkbookFactory.create, which permits lower memory processing than the InputStream version
fix51873HSMFupdate HSMF to ignore Outlook 2002 Olk10SideProp entries, which don't behave like normal chunks
fix51850XSSFsupport creating comments in XSSF on an earlier slide when later ones already have them
add51804XSLFoptionally include Master Slide text in XSLF text extraction, as HSLF already offers
addNew PackagePart method getRelatedPart(PackageRelationship) to simplify navigation of relations between OPC Parts
fix51832HSSFhandle XLS files where the WRITEPROTECT record precedes the FILEPASS one, rather than following as normal
fix51809HSSFcorrect GTE handling in COUNTIF
addAdd HWPF API to update range text and delete bookmarks
addHWPF Bookmarks tables are correctly updated on text updates
add51670POI Overallavoid LeftoverDataException when reading .xls files with invalid LabelRecords
add51196XSSFprevent NPE in XWPFPicture.getPictureData()
add51771HSLFprevent NPE when getting object data from OLEShape in HSLF
add51196XSSFmore progress with Chart APi in XSSF
fix51785XSSFAllow XSSF setForceFormulaRecalculation to work with the minimal ooxml-schemas jar
fix51772HWPFIllegalArgumentException Parsing MS Word 97 - 2003
addXSLFPowerPointExtractor support for including comment authors with comment text
fixConverted XSLFPowerPointExtractor to use UserModel for all text extraction
addXSLF initial UserModel support for Notes and Comments for Slides
addHSLFsupport for uncompressed OLE embeddings

Version 3.8-beta4 (2011-08-26)#

Changes#

TypeBugModuleDescription
fix51678HWPFExtracting text from Bug51524.zip is slow
fix51671HWPFHWPFDocument.write based on NPOIFSFileSystem throws a NullPointerException
addsupport for tables and hyperlinks in XSLF
fix51535HSSFcorrect signed vs unsigned short reading in NDocumentInputStream
add51634SXSSFsupport SXSSF streaming from templates
addinitial support for XSLF usermodel API
fix51187XSLFfixed OPCPackage to correctly handle self references
fix51635XSSFImproved performance of XSSFSheet#write
fix47731HWPFWord Extractor considers text copied from some website as an embedded object
addAdd Word-to-Text converter and use it as replacement for WordExtractor
fix51604HWPFreplace text fails for doc ( poi 3.8 beta release from download site )
fixFixed incorrect encoding of non-breaking space (0xA0) in SXSSF
addSupport for conditional formatting in XSSF
addSupport isRightToLeft and setRightToLeft on the common spreadsheet Sheet interface, as per existing HSSF support
fix50209HSSFFixed evaluation of Subtotals to ignore nested subtotals
fix44431HWPFHWPFDocument.write destroys fields
fix50401HSLFfixed EscherProperty to return property name instead of 'unknown' for complex properties
addInitial support for endnotes and footnotes in HWPF
fix51470XSSFavoid exception when cloning XSSF sheets with background images
fix51481HSSFFixed autofilters in HSSF to avoid warnings in Excel 2007
fix51533XSSFAvoid exception when changing name of a sheet containing shared formulas
addSupport for appending images to existing drawings in HSSF
addInitial support for bookmarks in HWPF
fix46250HSSFFixed cloning worksheets with images
fix51524HWPFPapBinTable constructor is slow (regression)
fix51514HSSFallow HSSFObjectData to work with both POIFS and NPOIFS
fix51514HSSFavoid NPE when copying nodes from one HSSF workbook to a new one, when opened from NPOIFS
fix51504HSSFavoid NPE when DefaultRowHeight or DefaultColumnWidth records are missing
fix51502POI OverallCorrect Subtotal function javadoc entry
addSupport for hyperlinks in SXSSF
fix49933HWPFWord 6/95 documents with sections cause ArrayIndexOutOfBoundsException
add51469XSSFXSSF support for row styles, to match existing HSSF functionality
fix51476XSSFCorrect XSSF cell formatting in HTML export
add51486XWPFXWPF support for adding new footnotes
fix48065HWPFProblems with save output of HWPF (losing formatting)
fix47563HWPFException when working with table
fix47287HWPFStringIndexOutOfBoundsException in CharacterRun.replaceText()
fix46817HWPFRegression: Text from some table cells missing
addAdd getOverallRange() method to HWPFDocumentCore
fixPAPX referenced outside of TextPiecesTable are ignored now and not loaded
fixFix main part range (and section) detection for files with additional parts (like footers/headers).
fixFix wrong TextPiece parsing in very rare cases like Bug33519.doc
fixInner tables are correctly supported
addAllow user to retrieve Table nesting level (based on file information)
addFunctionality of internal tool HWPFLister is greatly improved, including output of document PAPX and paragraphs
addExpand Word structures definitions (TAP, PAP, TLP, etc) based on official documentation
addAdd Excel-to-HTML converter (2007 versions)
addAdd Word-to-HTML converter (95-2007 versions)
fixSkip wrong-type SPRMs when characters SPRM is expected
addAdd toStrings() methods to internal HWPF structures: BorderCode, PAPX, Paragraph, PieceDescriptor, Section, SEPX, SprmOperation, TextPiece etc.
fix51474SXSSFSXSSF handling for null strings
fix48294HSSFFixed HSSFWorkbook.setSheetOrder() to respect inter-sheet references
fix51448POI OverallAvoid exception when evaluating workbooks with more than 256 sheets
fix51458POI OverallCorrect BitField wrapping when setting large values
add51460HSSFImprove HSSF performance when loading very long rows, by switching the CellValue array to an iterator
fix51444XSSFPrevent corrupted output when saving files created by LibreOffice 3.3
add51422HSSFSupport using RecalcIdRecord to trigger a full formula recalculation on load
add50474XWPFExample demonstrating how to update Excel workbook embedded in a WordprocessingML document
fix51431XSSFAvoid IndexOutOfBoundException when removing freeze panes in XSSF
fix48877XSSFFixed XSSFRichTextString to respect leading and trailing line breaks
fix49564XSSFFixed default behaviour of XSSFCellStyle.getLocked()
fix48314XSSFFixed setting column and row breaks in XSSF
add51424HWPFIgnore exceptions in ParagraphSprmUncompressor
fix51415XSSFFixed Workbook.createSheet(sheetName) to truncate names longer than 31 characters
fix51332HSSFFixed internal IDs of shapes generated by HSSFPatriarch when there are more than 1023 drawing objects
fix48408HSSFImproved documentation for Sheet.setColumnWidth
add51390HWPFAdded handling of additional properties to HWPF ParagraphSprmCompressor
add51389HWPFSupport for sprmPJc paragraph SPRM in HWPF
fix48469HSSFNew Case Study for POI web site
fix50681XSSFAvoid exceptions in HSSFDataFormat.getDataFormatString()
fix50681XSSFFixed autosizing columns beyond 255 character limit
fix51374XSSFFixed incorrect setting of lastPrinted OOXML core property
add51351HWPFWord to XSL-FO converter
fix50458XSSFFixed missing shapeId in XSSF drawings
fix51339XSSFFixed arithmetic rounding in formula evaluation
add51356SXSSFSupport autoSizeColumn in SXSSF
add51335HWPFParse picture goal and crop sizes in HWPF
add51305HWPFAdd sprmTCellPaddingDefault support in HWPF
add51265XWPFEnhanced Handling of Picture Parts in XWPF
add51292HDFAdditional HWPF Table Cell Descriptor values

Version 3.8-beta3 (2011-06-06)#

Changes#

TypeBugModuleDescription
fix51098XSSFCorrectly calculate image width/height, if image fits into one cell
fix47147XWPFCorrect extra paragraphs from XWPF Table Cells
add51188XWPFSupport for getting and setting XWPF zoom settings
add51134XWPFSupport for adding Numbering and Styles to a XWPF document that doesn't already have them
fix51273HSSFFormula Value Cache fix for repeated evaluations
add51171HSSFImproved performance of SharedValueManager
fix51236XSSFXSSF set colour support for black/white to match getter
add51196XSSFInitial support for Spreadsheet Chart API
addAdd support for OOXML Agile Encryption
add51160XSSFInitial version of SXSSF, a low memory footprint API to produce xlsx files
fix51171HSSFImproved performance of opening large .xls files
add51172XWPFAdd XWPF support for GIF pictures
addNPOIFS Mini Streams now support extending the underlying big block stream to fit more data
fix51148XWPFXWPFDocument now properly tracks paragraphs and tables when adding/removing them
fix51153HSSFCorrect sizing of LbsDataSubRecord with unused padding fields
fix51143HSSFNameCommentRecord correction for writing non ASCII strings
fix51112XWPFCorrect XWPFTable tracking of new rows
fix51113XWPFCorrect XWPFParagraph tracking of inserted runs
fix51111XWPFCorrect XWPFParagraph tracking of new runs
fix51115POI OverallHandle DataFormatter escaping of "." in the same way as "-" and "/"
fix51100POIFSFix IOUtils issue for NPOIFS reading from an InputStream where every block is full
fix50956XSSFCorrect XSSF cell style cloning between workbooks
addAdd get/setForceFormulaRecalculation for XSSF, and promote the methods to the common usermodel Sheet
fixTweak the logic for sizing the HSSFCells array on a HSSFRow to reduce memory over allocation in many use cases
add49765XWPFSupport for adding a picture to a XSSFRun
fixRename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features
fix51061XSSFCorrect target URI for new XSSF Tables
addInitial support for XSSF Charts. Provides easy access to the underlying CTChart object via the Sheet Drawing, but no high level interface onto the chart contents as yet.
fix50884XSSFXSSF and HSSF freeze panes now behave the same
addSupport for adding a table to a XSSFSheet
addImprove HSMF MAPIMessage access to the HTML and RTF versions of the message body (where available)
addAdd new method to HSMF of MAPIMessage.has7BitEncodingStrings() to make it easier to decide when encoding guessing is needed
fixOutlookTextExtractor now requests 7 bit encoding guessing
addImprove HSMF encoding guessing for 7 bit fields in MAPIMessage
addAllow HSMF access to the HTML body contents in MAPIMessage

Version 3.8-beta2 (2011-04-08)#

Changes#

TypeBugModuleDescription
addImplement the load method on MemoryPackagePart
add50967HSSFSupport for continued ExtSSTRecords
add48968HSSFSupport for HOUR, MINUTE and SECOND date formulas
addAdded NPOIFS constructors to most POIDocument classes and their extractors, and more widely deprecated the Document(DirectoryNode, POIFSFileSystem) constructor in favour of the more general Document(DirectoryNode) one
fixFixed NPOIFS handling of new and empty Document Nodes
fixFixed NPOIFS access to Document Nodes not in the top level directory
fix50841POI OverallImproved SpreadSheet DataFormatter to handle scientific notation, invalid dates and format spacers
fix49381HSSFCorrect createFreezePane in XSSF, so that the left row/column matches the documentation + HSSF
fix49253XSSFWhen setting repeating rows and columns for XSSF, don't break the print settings if they were already there
fix49219HSSFExternalNameRecord support for DDE Link entries without an operation
fix50846XSSFMore XSSFColor theme improvements, this time for Cell Borders
fix50939HSSFChartEndObjectRecord is supposed to have 6 bytes at the end, but handle it not
addHMEF - New component which supports TNEF (Transport Neutral Encoding Format), aka winmail.dat
fix50313HWPFsupport for getting HWPFDocument fields
fix50912HSSFfixed setting named styles to HSSFCells
fix50779HSSFfixed RecordFormatException when reading unicode strings with photenic data
fix50718POI OverallMore helpful error message when you try to create a CellReference with #REF!
fix50784XSSFXSSFColors return by XSSFFont now have theme information applied to them
fix50846XSSFImprove how XSSFColor inherits from Themes
fix50847XSSFXSSFFont now accepts the full range of Charsets from FontChartset
fix50786XSSFSpeed up calls to HSSFColor.getIndexHash() by returning a cached, unmodifiable Map. HSSFColor.getModifiableIndexHash() provides access to the old (slow but modifiable) functionality
fix47100XSSFChange related formulas and named ranges when XSSFWorkbook.setSheetName is called

Version 3.8-beta1 (2011-03-07)#

Changes#

TypeBugModuleDescription
add50610HSSFAnt tasks for running POI against a workbook
add32903POIFSCorrect XBAT chaining explanation in /poifs/fileformat.html
add50829XSSFSupport for getting the tables associated with a XSSFSheet
fix50299XSSFMore XSSFColor updates for ARGB vs RGB
fix50581Use stax:stax-api instead of org.apache.geronimo.specs:geronimo-stax-api_1.0_spec
fix50786XSSFFix XSSFColor to fetch the RGB values of old-style indexed colours
fix50299XSSFFix XSSFColor fetching of white and black background themes
fix50795XSSFAvoid NPE from xmlbeans when moving XSSF Comments from one cell to another
fix46664HSSFWhen creating HSSF Print Areas, ensure the named range is reference based not value based
fix50756POI OverallWhen formatting numbers based on their Cell Style, treat GENERAL the same as the more typical General
fixfixed HSSFWorkbook.createCellStyle to throw exception if the maximum number of cell styles was exceeded
fix50539XSSFBetter fix for html-style br tags (invalid XML) inside XSSF documents
add49928POI Overallallow overridden built-in formats in HSSFCellStyle
add50607POI OverallAdded implementation for CLEAN(), CHAR() and ADDRESS()
add50587HSSFImproved documentation on user-defined functions
addInside ExtractorFactory, support finding embedded OOXML documents and providing extractors for them
addPartial HDGF LZW compression support
add50244HSSFSupport for continued NameRecords
fix50416HSSFCorrect shifting of the first or last row in a sheet by multiple rows
fix50440XSSFSupport evaluating formulas with newlines in them, which XSSF may have (but HSSF may not)
addAdded inline string support to XSSF EventModel
fix50246Properly position GutsRecord when reading HSSF workbooks
add48539XSSFAdded implementation for MROUND(), VAR() and VARP()
add50446POI OverallCode cleanup and optimizations to keep some IDE quiet
add50437POI OverallSupport passing ranges to NPV()
add50409XSSFAdded implementation for IRR()
add47405HSSFImproved performance of RowRecordsAggregate.getStartRowNumberForBlock / getEndRowNumberForBlock
fix50315XSSFAvoid crashing Excel when sorting XSSFSheet autofilter
add50076XSSFAllow access from XSSFReader to sheet comments and headers/footers
add50076XSSFRefactor XSSFEventBasedExcelExtractor to make it easier for you to have control over outputting the cell contents
fix50258XSSFavoid corruption of XSSFWorkbook after applying XSSFRichTextRun#applyFont
fix50154POIFSAllow white spaces and unicode in OPC relationship targets
fix50113XSSFRemove cell from Calculation Chain after setting cell type to blank
fix49966XSSFEnsure that XSSFRow#removeCell clears calculation chain entries
fix50096XSSFFixed evaluation of cell references with column index greater than 255
fix49761HSSFTolerate Double.NaN when reading .xls files
fix50211HSSFUse cached formula result when auto-sizing formula cells
fix50118POIFSOLE2 does allow a directory with an empty name, so support this in POIFS
fix50119XSSFavoid NPE when XSSFReader comes across chart sheets

Version 3.7 (2010-10-29)#

Summary#

  • OOXML
  • support for reading aes-encrypted/write-protected ooxml files
  • support Java 1.5 in auto-generated xmlbeans for ooxml schemas
  • Spreadsheet (Excel)
  • initial support for autofilters
  • support for data validation for ooxml format
  • initial support for themes for ooxml format
  • added implementation for new functions: RANDBETWEEN, POISSON, SUBTOTAL, TEXT, TRUNC
  • support evaluation of indirect defined names in INDIRECT
  • numerous fixes and performance optimizations in the Formula Evaluation module
  • ability to add, modify and remove series from HSSF Charts
  • numerous improvements in the cell data formatter (handling more formatting rules, better color detection, allow overriding of default locale)
  • more examples including a rich "spreadsheet to HTML" converter
  • Document (Word)
  • initial support for the HWPF revision marks authors list
  • support for border codes in HWPF
  • support for processing of symbols in HWPF
  • support sections in Word 6 and Word 95 files
  • improved reading of auto-saved ("complex") documents in HWPF
  • improved support for manipulation of tables and paragraphs in XWPF
  • SlideShow (PowerPoint)
  • allow editing workbooks embedded into HSLF slide shows
  • Text Extraction
  • support for text extraction from XSLF tables
  • add PublisherTextExtractor support to extractorfactory
  • support attachments as embedded documents within the new OutlookTextExtactor
  • new event based XSSF text extractor (XSSFEventBasedExcelExtractor)
  • make it easier to tell which content types each POIXMLTextExtractor handles
  • paragraph level as well as whole-file text extraction for word 6/95 files
  • ...and much much more: code cleanup, many bug fixes and performance improvements

Changes#

TypeBugModuleDescription
fix50075HWPFavoid NPE in ListLevel.getNumberText() when numberText is null
fix50067POI Overallmarked commons-logging and log4j as optional dependencies in POI poms
add49928POI Overallallow overridden built-in formats in XSSFCellStyle
fix49919HWPFsupport for BorderCode in HWPF
fix49908HWPFsupport for processing of symbols in HWPF
fix50022HSSFsupport for retrieving pictures from HSSF workbooks
fix50020HSSFAvoid IllegalStateException when creating Data validation in sheet with macro
fix50033XSSFImproved rounding in MOD
addGenerate SHA1 hashes of distribution files, alongside existing MD5 ones

Version 3.7-beta3 (2010-09-24)#

Changes#

TypeBugModuleDescription
fix48325HSSFIf a HSSF header or footer lacks left/right/centre information, assume it is a centre one
fix49966XSSFCorrectly remove calcChain entries for XSSF cells that stop holding formulas
add47582XSSFXSSFCellStyle support for creating a style in one workbook based on a style from a different one
fix49931HSSFAvoid concurrency problems when re-ordering multiple HSSF header records for a PageSettingsBlock
fix49765XWPFFix XWPFDocument.addPicture so that it correctly sets up relationships
fix48018HWPFImprove HWPF handling of lists in documents read and then saved, by preserving order better
fix49820HWPFFix HWPF paragraph levels, so that outline levels can be properly fetched
fix47271HWPFAvoid infinite loops on broken HWPF documents with a corrupt CHP style with a parent of itself
fix49936HWPFHandle HWPF documents with problematic HeaderStories better
fix49933HWPFSupport sections in Word 6 and Word 95 files (HWPFOldDocument)
fix49941HSSFCorrectly handle space preservation of XSSFRichTextRuns when applying fonts to parts of the string
fixCorrect XWPFRun detection of bold/italic in a paragraph with multiple runs of different styles
addLink XWPFPicture to XWPFRun, so that embedded pictures can be access from where they live in the text stream
fixImprove handling of Hyperlinks inside XWPFParagraph objects through XWPFHyperlinkRun
fixMake XWPFParagraph make more use of XWPFRun, and less on internal StringBuffers
addAdd a getBodyElements() method to XWPF IBody, to make access to embedded paragraphs and tables easier
addMore XSLFRelation entries for common .pptx file parts
fix49872XSSFavoid exception in XSSFFormulaEvaluator.evaluateInCell when evaluating shared formulas
fix49895XSSFavoid corruption of XSSFWorkbook after removing all merged cells from sheet
fix49907HSSFfixed inconsistent behaviour between HSSF and XSSF when creating consecutive names
addAdd getMimeType() method to HWPF Picture, alongside existing file extension
addAdd code for reading Ole10Native data
addAdd getMimeType() method to HSSF/XSSF PictureData, alongside existing file extension
fix49887HSSFallow sheet names longer than 31 chars in XSSF, enforce name uniqueness on the first 31 chars
fix49878XSSFimproved API for hiding sheets
fix49875XSSFfixed XSSFWorkbook.createSheet to throw exception if sheet name begins or ends with a single quote (')
fix49873XSSFfixed XSSFFormulaEvaluator to support blank cells
fix49850HWPFadded a getter for _iStartAt in ListFormatOverrideLevel
fix49761HSSFchange cell type to error when setting Double.NaN or Infinities
fix49833XWPFensure that CTNumPr is included in poi-ooxml-schemas.jar
fix49841HSSFfixed LEFT and RIGHT to return #VALUE! when called with a negative operand
fix49783POI Overallfixed evaluation of XSSF workbooks containing formulas with reference errors (#REF!)
fix49751HSSFfixed fetching names of user defined styles in HSSFCellStyle.getUserStyleName()
add48900XSSFsupport for protecting a XSSF workbook
fix49725POI Overallfixed FormulaParser to correctly process defined names with underscore
add48526XSSFadded implementation for RANDBETWEEN()
fix49725POI Overallavoid exception in OperandResolver.parseDouble when input is minus ("-")
fix49723HSSFfixed OperandResolver to correctly handle inputs with leading decimal place
addinitial support for Excel autofilter

Version 3.7-beta2 (2010-08-09)#

Changes#

TypeBugModuleDescription
add47990HSMFSupport for .msg attachments within a MAPIMessage .msg
fixImprove handling and warnings when closing OPCPackage objects
fix49702XSSFCorrect XSSFWorkbook.getNumCellStyles to check the right styles list
add49690HSSFAdd WorkbookUtil, which provides a way of generating valid sheet names
fix49694HSSFUse DataFormatter when autosizing columns, to better match the real display width of formatted cells
add49441HSMFAllow overriding and guessing of HSMF non-unicode string encodings
fix49689HSSFAllow the setting of user style names on newly created HSSF cell styles
addMake it easier to tell which content types each POIXMLTextExtractor handles
fix49649HSSFAdded clone support for UserSView* and Feat* families of records
fix49653XSSFSupport for escaped unicode characters in Shared String Table
fix49579HSLFprevent ArrayIndexOutOfBoundException in UnknownEscherRecord
fix49593XWPFpreserve leading and trailing white spaces in XWPFRun
add49455XWPFInsert the content of fldSimple fields into the XWPFWordTextExtractor output
fix49640POI OverallFixed parsing formulas containing defined names beginning with an underscore
add49538HSSFAdded implementation for POISSON()
add49524HSSFSupport for setting cell text to be vertically rotated, via style.setRotation(0xff)
fix49609XSSFCase insensitive matching of OOXML part names
add49581HSSFAbility to add, modify and remove series from HSSF Charts
add49185HSSFSupport for HSSFNames where the comment is stored in a NameCommentRecord
fix49599HSSFcorrect writing of noterecord author text when switching between ascii and unicode
fixHWPFimprove reading of auto-saved ("complex") documents
addparagraph level as well as whole-file text extraction for word 6/95 files through hwpf
addtext extraction support for older word 6 and word 95 files via hwpf
add49508XWPFallow the addition of paragraphs to xwpf table cells
fix49446XWPFdon't consider 17.16.23 field codes as properly part of the paragraph's text
fixxslfslideshow shouldn't break on .thmx (theme) files. support for them is still very limited though

Version 3.7-beta1 (2010-06-20)#

Changes#

TypeBugModuleDescription
fix49432XSSFlazy caching of xssfcomment ctcomment objects by reference, to make repeated comment searching faster
fixbetter handling of outlook messages in hsmf when there's no recipient email address
fixwhen formatting numbers with dataformatter, handle brackets following colours
add48574XWPFfurther xwpf support for tables, paragraphs, including enhanced support for adding new ones
add48245HWPFtweak hwpf table cell detection to work across more files
add48996POI Overallinitial support for external name references in hssf formula evaluation
fix46664HSSFfix up tab ids when adding new sheets, so that print areas don't end up invalid
fix45269HWPFimprove replacetext on hwpf ranges
fix47815HSSFcorrect documentation on what happens when you request a string from a non-string formula cell
fix49386HSLFavoid npe when extracting ooxml file properties which are dates
fix49377POI Overallonly call decimalformat.setroundingmode on java 1.6 - it's needed to match excel's rendering of numbers
fix49378POI Overallcorrect 1.6ism
addparse the hsmf headers chunk if present, and use it to find dates in text extraction if needed
fix48494HSSFdetect and support time formats like hh:mm;hh:mm
fix48494HSSFhave excelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
fix48494HSSFhave eventbasedexcelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
fix49096HSSFadd clone support to chart begin and end records, to allow cloning of more chart containing sheets
addlist attachment names in the output of outlooktextextractor (to get attachment contents, use extractorfactory as normal)
fix48872POI Overallallow dateformatter.formatrawcellcontents to handle 1904 as well as 1900 dates
fix48872POI Overallhandle mmmmm and elapsed time formatting rules in dataformatter
fix48872POI Overallhandle zero formatting rules, and better color detection in dataformatter
fix48872POI Overallsupport for more kinds of formatting in dataformatter
fix43161HSLFfixed construction of the dib picture header
add49311POIFSinitial support for reading aes-encrypted/write-protected ooxml files
fix48718XSSFmake the creation of multiple, un-modified fonts in a row in xssf match the old hssf behaviour
fix44916HSSFallow access to the hssfpatriarch from hssfsheet once created
add48779XSSFallow you to get straight from a cellstyle to a color, irrespective of if the color is indexed or inline-defined
add48924HWPFallow access of the hwpf dateandtime underlying date values
add48926HWPFinitial support for the hwpf revision marks authors list
fix49160POI Overallensure that ctdigsigblob is included in poi-ooxml jar
fix49189XWPFdetect w:tab and w:cr entries in xwpf paragraphs, even when the xsd is silly and maps them to ctempty
fix49273XSSFcorrect handling for font character sets with indicies greater than 127
add49334HSSFtrack the valuerangerecords of charts in hssfchart, to allow the basic axis operations
add49242HSSFtrack the linkdatarecords of charts in hssfchart
addimproved performance of xssfworkbook.write
fix48846HSSFavoid npe when finding cell comments
fix49325XSSFensure that ctphoneticpr is included in poi-ooxml jar
fix49191XSSFfixed tests failing in non-english locales
add48432XSSFsupport for xssf themes
add49244XSSFsupport for data validation for ooxml format
add49066HSSFworksheet/cell formatting, with view and html converter
fix49020XSSFworkaround excel outputting invalid xml in button definitions by not closing br tags
fix49050HSSFimprove performance of abstractescherholderrecord when there are lots of continue records
fix49194XSSFcorrect text size limit for ooxml .xlsx files
fix49254XSSFfix cellutils.setfont to use the correct type internally
fix49139POIFSproperly support 4k big block size in poifs
fix48936XSSFavoid writing malformed cdata blocks in sharedstrings.xml
add49026POI Overalladded implementation for text()
add49025POI Overalladded implementation for trunc()
fix49147POI Overallproperly close internal inputstream in extractorfactory#createextractor(file)
fix49138POI Overallfixed locale-sensitive formatters in packagepropertiespart
fix49153POI Overallensure that ctvectorvariant is included in poi-ooxml-schemas.jar
add49146XWPFadded accessors to coreproperties.keywords
fix48916HSLFpropagate parent to parent-aware records decoded from escher
fix48485HSSFadd extra paper size constans to printsetup, such as a3, b4 and b5
fixmake poifs.filesystem.directorynode preserve the original ordering of its files, which hsmf needs to be able to correctly match up chunks
addsupport evaluation of indirect defined names in indirect
fix43670POI Overallimprove hdgf chunkv11 separator detection, and short string detection, to solve the "negative length of chunkheader" problem
add48617HSSFoptionally allow the overriding of the locale used by dataformatter to control how the default number and date formats should look
addnew event based xssf text extractor (xssfeventbasedexcelextractor)
addextractorfactory can now be told to prefer event based extractors (current excel only) on a per-thread or overall basis
fix48544XSSFavoid failures in xlsx2csv when shared string table is missing
fix48571POI Overallproperly close all io streams created in opcpackage
fix48572XSSFalways copy all declared inner classes and interfaces when generating poi-ooxml-schemas
addlow level record support for the extrst (phonetic text) part of unicode strings. no usermodel access to it as yet though.
fixrecord.unicodestring has moved to record.common.unicodestring, to live with the other record-part classes, as it isn't a full record.
addavoid creating temporary files when opening opc packages from input stream
addimproved how hsmf handles multiple recipients
addadd publishertextextractor support to extractorfactory
addadd xslf support for text extraction from tables
addsupport attachments as embeded documents within the new outlooktextextractor
addadd a text extractor (outlooktextextractor) to hsmf for simpler extraction of text from .msg files
fixsome improvements to hsmf parsing of .msg files
fixinitialise the link type of hssfhyperlink, so that gettype() on it works
fix48425POI Overallimproved performance of dateutil.iscelldateformatted()
fix47215fixed interfaceendrecord to tolerate unexpected record contents
fix48415HSSFimproved javadoc on hsspicture.resize()
addadded ant target to install artifacts in local repository
fix48026HSSFfixed pagesettingsblock to allow multiple headerfooterrecord records
fix48202HSSFfixed cellrangeutil.mergecellranges to work for adjacent cell regions
fix48339HSSFfixed externalnamerecord to properly distinguish dde data from ole data items
fix47920HSLFallow editing workbooks embedded into powerpoint files
add48343HSSFadded implementation of subtotal function
fixswitch to compiling the ooxml schemas for java 1.5

Version 3.6 (2009-12-14)#

Changes#

TypeBugModuleDescription
fix48332HSSFfixed xssfsheet autosizecolumn() to tolerate empty richtextstring
fix48332HSSFfixed columninforecord to tolerate missing reserved field
fix47701HSSFfixed recordformatexception when reading list subrecords (lbsdatasubrecord)
add memory usage optimization in xssf - avoid creating parentless xml beans
fix47188XSSFavoid corruption of workbook when adding cell comments
fix48106XSSFimproved work with cell comments in xssf
addadd support for creating summaryinformation and documentsummaryinformation properties on poidocuments that don't have them, via poidocument.createinformationproperties()
fix48180POI Overallbe more forgiving of short chart records, which skip some unused fields
fix48274HSSFfix erronious wrapping of byte colours in hssfpalette.findsimilarcolor
fix48269XSSFfix fetching of error codes from xssf formula cells
fix48229HSSFfixed javadoc for hssfsheet.setcolumnwidth and xssfsheet setcolumnwidth
fix47757HSSFfixed xlsx2csv to avoid exception when processing cells with multiple "t" elements
add48195HSSFshort-circuit evaluation of if() and choose()
add48161HSLFsupport for text extraction from ppt master slides
add47970HSSFadded a method to set arabic mode in hssfsheet
fix48134HSSFrelease system resources when using picture.resize()
fix48087XSSFavoid npe in xssfchartsheet when calling methods of the superclass
fix48038HWPFhandle reading hwpf stylesheets from non zero offsets
addwhen running the "compile-ooxml-xsds" ant task, also generate the source jar for the ooxml schemas
fix45672HSSFimprove handling by missingrecordawarehssflistener of records that cover multiple cells (mulblankrecord and mulrkrecord)
fix48096HSSFrelaxed validation check in recalcidrecord
fix48085HSSFimproved error checking in blockallocationtablereader to trap unreasonable field values
fix47924HSSFfixed logic for matching cells and comments in hssfcell.getcellcomment()
add47942XWPFadded implementation of protection features to xlsx and docx files
fix48070XSSFpreserve leading and trailing white spaces in xssfrichtextstring
add48044HSSFadded implementation for countblank function
fix48036HSSFadded intersectioneval to allow evaluation of the intersection formula operator
fix47999POI Overallavoid un-needed call to the jvm garbage collector when working on ooxml opc packages
add47922HSMFadded example hsmf application that converts a .msg file to text and extracts attachments
add47903POI Overalladded ant target to compile scratchpad examples
add47839POI Overallimproved api for ooxml custom properties
fix47862XSSFfixed xssfsheet.setcolumnwidth to handle columns included in a column span
fix47804XSSFfixed xssfsheet.setcolumnhidden to handle columns included in a column span
fix47889XSSFfixed xssfcell.getstringcellvalue() to properly handle cached formula results

Version 3.5-final (2009-09-28)#

Changes#

TypeBugModuleDescription
fix47747HSSFfixed logic for locating shared formula records
add47809POI Overallimproved work with user-defined functions
fix47581XSSFfixed xssfsheet.setcolumnwidth to produce xml compatible with mac excel 2008
fix47734POI Overallremoved unnecessary svn:executable flag from files in svn trunk
fix47543HSSFadded javadoc how to avoid excel crash when creating too many hssfrichtextstring cells
fix47813XSSFfixed problems with xssfworkbook.removesheetat when workbook contains chart
fix47737XSSFadjust sheet indices of named ranges when deleting sheets
fix47770POI Overallbuilt-in positive formats don't need starting '('
add47771POI Overalladded method setfunction(boolean) for defined names
add47768HSSFimplementation of excel "days360" and "npv" functions
fix47751HSSFdo not allow hssf's cell text longer than 32,767 characters
add47757HSSFadded an example demonstrating how to convert an xlsx workbook to csv
fix44770HSLFfixed ppt parser to tolerate comment2000 containers with missing comment text
fix47773fix for extraction paragraphs and sections from headers/footers with xwpfwordextractor
fix47727XWPFsupport for extraction of header / footer images in hwpf
fixmoved all test data to a top-level directory
add47721HSSFAdded implementation for INDIRECT()
add45583HWPFAvoid exception when reading ClipboardData packet in OLE property sets
add47652HSSFAdded support for reading encrypted workbooks
add47604XSSFImplementation of an XML to XLSX Importer using Custom XML Mapping
fix47620XSSFAvoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns
fix47606XSSFFixed XSSFCell to correctly parse column indexes greater than 702 (ZZ)
fix47598HSSFImproved formula evaluator number comparison
fix47571XWPFFixed XWPFWordExtractor to extract inserted/deleted text
fix47548HSSFFixed RecordFactoryInputStream to properly read continued DrawingRecords
fix46419XSSFFixed compatibility issue with OpenOffice 3.0
fix47559XSSF Fixed compatibility issue with Excel 2008 Mac sp2. Please see the HSSF+XSSF project page for more information.
fix47540XSSFFix for saving custom and extended OOXML properties
fix47535HWPFFixed WordExtractor to tolerate files with empty footnote block
fix47517POI OverallFixed ExtractorFactory to support .xltx and .dotx files
add45556POI OverallSupport for extraction of footnotes from docx files
add45555POI OverallSupport for extraction of endnotes from docx files
add47520XSSFInitial support for custom XML mappings in XSSF
fix47460XSSFFixed NPE when retrieving core properties from a newly created workbook
fix47498HSSFFixed HyperlinkRecord to properly handle URL monikers
fix47504XSSFFixed XSSFWorkbook to read files with hyperlinks to document locations
fix47479HSSFFix BoolErrRecord to tolerate incorrect format written by OOO
fix47448HSSFAllow HSSFEventFactory to handle non-zero padding at the end of the workbook stream
add47456HSLFSupport for getting OLE object data in PowerPointExtractor
fix47411XSSFExplicitly set the 1900 date system when creating XSSF workbooks
add47400HWPFSupport for text extraction of footnotes, endnotes and comments in HWPF
fix47415HSSFFixed PageSettingsBlock to allow multiple PLS records
fix47412POI OverallFixed concurrency issue with EscherProperties.initProps()
fix47143HSSFFixed OOM in HSSFWorkbook#getAllPictures when reading .xls files containing metafiles
addAdded implementation for ISNA()
add46793HSLFfixed SimpleShape#getLineWidth to handle default line width
add47356HWPFremoved unused private fields in HWPF BorderCode
add47355HWPFImproved HWPF TableCell to expose TableCellDescriptor
fix46610HWPFImproved HWPF to better handle unicode
fix47261HSLFFixed SlideShow#removeSlide to remove references to Notes
fix47375HSSFFixed HSSFHyperlink to correctly set inter-sheet and file links
fix47384HSSFFixed ExternalNameRecord to handle unicode names
fix47372HSSFFixed locale-sensitive unit tests to pass when running on non-US locale

Version 3.5-beta6 (2009-06-22)#

Changes#

TypeBugModuleDescription
fix47363HSSFFixed HSSFSheet to allow addition of data validations after sheet protection
fix47294XSSFFixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes
fix47309HSSFFixed logic in HSSFCell.getCellComment to handle sheets with more than 65536 comments
fix46776HSSFAdded clone() method to MulBlankRecord to fix crash in Sheet.cloneSheet()
fix47244HSSFFixed HSSFSheet to handle missing header / footer records
fix47312HSSFFixed formula parser to properly reject cell references with a '0' row component
fix47199HSSFFixed PageSettingsBlock/Sheet to tolerate margin records after other non-PSB records
fix47069HSSFFixed HSSFSheet#getFirstRowNum and HSSFSheet#getLastRowNum to return correct values after removal of all rows
fix47278XSSFFixed XSSFCell to avoid generating xsi:nil entries in shared string table
fix47206XSSFFixed XSSFCell to properly read inline strings
add47250HSSFFixed FontRecord to expect unicode flags even when name length is zero
add47198HSSFFixed formula evaluator comparison of -0.0 and 0.0
add47229HSSFFixed ExternalNameRecord to handle DDE links
add46287HSSFControl of header and footer extraction in ExcelExtractor / XSSFExcelExtractor
add46554POI OverallNew ant target "jar-examples"
add46161XSSFSupport in XSSF for setGroupColumnCollapsed and setGroupRowCollapsed
add46806XSSFAllow columns greater than 255 and rows greater than 0x100000 in XSSF formulas
add41711HSLFBase class for "old version" exceptions, and new HSLF detection + use of old versions exception
fix47179POIFSFix string encoding issues with HSMF chunks on non-windows platforms
add47183POIFSAttachment support for HSMF
fix47154HSSFHandle the cell format @ as the same as General
fix47048HSSFFixed evaluation of defined names with the 'complex' flag set
fix46953HSSFMore tweaks to PageSettingsBlock parsing logic in Sheet constructor
fix47089XSSFFixed XSSFWorkbook.createSheet to properly increment sheetId
fix46568POI OverallFixed XSLFPowerPointExtractor to properly process line breaks
fix39056POIFSFixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream
fix47054HSSFFixed cloneStyleFrom to avoid exception when cloning styles of the same family
fix46186HSSFFixed Sheet to read GutsRecord in the Sheet(RecordStream rs)
fix46714HSSFAutomatically call sheet.setAlternativeExpression when sheet.setRowSumsBelow is called
fix46279Allow 255 arguments for excel functions in XSSF
fix47028XSSFFixed XSSFCell to preserve cell style when cell value is set to blank
fix47026XSSFAvoid NPE in XSSFCell.setCellType() when workbook does not have SST
fix46987HSSFAllow RecordFactory to handle non-zero padding at the end of the workbook stream
fix47034HSSFFix reading the name of a NameRecord when the name is very long
fix47001HSSFFixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs
fix46973HSSFFixed defined names to behave better when refersToFormula is unset
fix46832XSSFAllow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF
fix46951HSSFFixed formula parser to better handle range operators and whole row/column refs.
fix46948HSSFFixed evaluation of range operator to allow for area-ref operands
fix46918HSSFFixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format
fix46898XSSFFixed formula evaluator to not cache intermediate circular-reference error results
fix46917HSSFFixed PageItemRecord(SXPI) to allow multiple field infos
fix46904HSSFFix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files
fix46840HSSFPageSettingsBlock should include HEADERFOOTER record
fix46885XSSFupdate cell type when setting cached formula result in XSSFCell
addadded modifiers for anchor type to XSSFClientAnchor
add46772XSSFsupport built-in data formats in XSSFDataFormat
fix46719XSSFfixed XSSFSheet.shiftRows to correctly preserve row heights
fix46715XSSFpreserve custom column widths across re-serialization of XSSFWorkbook
add46703HSSFadded setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet
add46708XSSFadded getMergedRegion(int) to common interface org.apache.poi.ss.usermodel.Sheet
fixfixed Sheet.autoSizeColumn() to use cached formula values when processing formula cells
fixFixed formula parser to handle names with backslashes
add46660HSSFadded Workbook getHidden() and setHidden(boolean)
fix46693HSSFFixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX
fix46627HSLFFixed offset of added images if Pictures stream contains pictures with zero length

Version 3.5-beta5 (2009-02-19)#

Changes#

TypeBugModuleDescription
fix46536XSSFWhen shifting rows, update formulas on that sheet to point to the new location of those rows
fix46663XSSFFixed XSSFSheet.shiftRows to properly update references of the shifted cells
fix46535XSSFRemove reference from calculation chain when a formula is deleted
fix46654HSSFHSSFRow/RowRecord to properly update cell boundary indexes
fix46643HSSFFixed formula parser to encode range operator with tMemFunc
fix46647HSSFFixed COUNTIF NE operator and other special cases involving type conversion
add46635HSLFAdded a method to remove slides
fix40520HSSFFixed HSSFFont.applyFont() to properly apply font to overlapping regions
fix46545HSSFFixed ObjRecord to ignore excessive padding written by previous POI versions
fix46613HSSFFixed evaluator to perform case insensitive string comparisons
add46544HSSFcommand line interface for hssf ExcelExtractor
fix46547HSSFAllow addition of conditional formatting after data validation
fix46548HSSFPage Settings Block fixes - continued PLS records and PSB in sheet sub-streams
add46523HSSFadded implementation for SUMIF function
addSupport for reading HSSF column styles
fixHook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor
fix46472HPSFAvoid NPE in HPSFPropertiesExtractor when no properties exist
fix46479HSSFfixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()
add45031HSSFadded implementation for CHOOSE() function
fix46361HDFresolve licensing issues around the HDGF resource file, chunks_parse_cmds.tbl
add46410HSSFadded implementation for TIME() function
add46320HSSFadded HSSFPictureData.getFormat()
fix46445HSSFfixed HSSFSheet.shiftRow to move hyperlinks
fixfixed formula parser to correctly resolve sheet-level names
fix46433XSSFsupport for shared formulas in XSSF
add46299XWPFsupport for carriage return and line break in XWPFRun
add46300XWPFsupport for line spacing in XWPFParagraph
add46308XWPFinitial support for creation of XWPFTable
addAdded getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()
fix46385HSSF(also patch 46362) fix serialization of StyleRecord with unicode name
fix46368HSSFFix HSSFRichTextRun and strings longer than 32768 characters
addSupport sheet-level names
fixFixed XSSFCell to properly handle cell references with column numbers up to XFD
fix44914HSSFFixed warning message "WARN. Unread n bytes of record 0xNN"
add46156HSSFImproved number to text conversion to be closer to that of Excel
fix46312HSSFFixed ValueRecordsAggregate to handle removal of new empty row
add46269HSSFImproved error message when attempting to read BIFF2 file
fix46206HSSFFixed Sheet to tolerate missing DIMENSION records
add46301HSSFadded pivot table records: SXDI, SXVDEX, SXPI, SXIDSTM, SXVIEW, SXVD, SXVS, et al
fix46280HSSFFixed RowRecordsAggregate etc to properly skip PivotTable records

Version 3.5-beta4 (2008-11-29)#

Changes#

TypeBugModuleDescription
fix46213HSSFFixed FormulaRecordAggregate to gracefully ignore extra StringRecords
fix46174HSSFFixed HSSFName to handle general formulas (not just area references)
add46189HSSFadded chart records: CHARTFRTINFO, STARTBLOCK, ENDBLOCK, STARTOBJECT, ENDOBJECT, and CATLAB
fix46199HSSFMore tweaks to EmbeddedObjectRefSubRecord
addChanges to formula evaluation allowing for reduced memory usage
fix45290POIFSSupport odd files where the POIFS header block comes after the data blocks, and is on the data blocks list
fix46184HSSFMore odd escaped date formats
addInclude the sheet number in the output of XLS2CSVmra
fix46043HWPFcorrectly write out HPSF properties with HWPF
add45973POI Overalladded CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF
fix46182HSLFfixed Slideshow.readPictures() to skip pictures with invalid headers
fix46137POIFSHandle odd files with a ContinueRecord after EOFRecord
fixFixed problem with linking shared formulas when ranges overlap
fix45784HSSFMore fixes to SeriesTextRecord
fix46033HSLFfixed TableCell to correctly set text type
fix46122HSLFfixed Picture.draw to skip rendering if picture data was not found
fix15716HSSFmemory usage optimisation - converted Ptg arrays into Formula objects
add46065HSSFadded implementation for VALUE function
add45966HSSFadded implementation for FIND function
fix45778HSSFfixed ObjRecord to read ftLbsData properly
fix46053HSSFfixed evaluation cache dependency analysis when changing blank cells

Version 3.5-beta3 (2008-09-26)#

Changes#

TypeBugModuleDescription
fix45518POI OverallFix up ColumnHelper to output valid col tags, by making 1 based and 0 based bits clearer, and using the right ones
fix45676POI OverallHandle very long cells in the XSSF EventUserModel example
addInitial ExtractorFactory support for building TextExtractors for embeded documents

Version 3.5-beta2 (2008-08-20)#

Changes#

TypeBugModuleDescription
addSupport stripping XSSF header and footer fields (eg page number) out of header and footer text if required
addAdd POIXMLPropertiesTextExtractor, which provides to the OOXML file formats a similar function to HPSF's HPSFPropertiesExtractor
add45539POI OverallImprove XWPFWordExtractor to extract headers and footers
fixImprove how XWPF handles paragraph text
addSupport in XWPF handles headers and footers
add45592HWPFImprove XWPF text extraction to include tables always, and picture text where possible
add45545POI OverallImprove XSLF usermodel support, and include XSLF comments in extracted text
add45540POI OverallFix XSSF header and footer support, and include headers and footers in the output of XSSFExcelExtractor
add45431XSSFSupport for .xlsm files, sufficient for simple files to be loaded by excel without warning
addNew class org.apache.poi.hssf.record.RecordFormatException, which DDF uses instead of the HSSF version, and the HSSF version inherits from
add45431XSSFPartial support for .xlm files. Not quite enough for excel to load them though
fix45430HSSFCorrect named range sheet reporting when no local sheet id is given in the xml

Version 3.5-beta1 (2008-07-18)#

Changes#

TypeBugModuleDescription
add45018POI OverallSupport for fetching embedded documents from within an OOXML file
addPort support for setting a policy on missing / blank cells when fetching, to XSSF too
addCommon text extraction factory, which returns the correct POITextExtractor for the supplied data
addText Extraction support for the new OOXML files (.xlsx, .docx and .pptx)
addInitial support for processing OOXML Excel files (.xlsx), both directly through XSSF, and also through the new common UserModel
addCreated a common interface for handling PowerPoint files, irrespective of if they are .ppt or .pptx
addCreated a common interface for handling Excel files, irrespective of if they are .xls or .xlsx

Version 3.2-FINAL (2008-10-19)#

Changes#

TypeBugModuleDescription
fix45866HSSFallowed for change of unicode compression across Continue records
fix45964HSSFsupport for link formulas in Text Objects
fix43354HSSFsupport for evaluating formulas with missing args
fix45912HSSFfixed ArrayIndexOutOfBoundsException in EmbeddedObjectRefSubRecord
fix45889HSLFfixed ArrayIndexOutOfBoundsException when constructing HSLF Table with a single row
addInitial support for creating hyperlinks in HSLF
fix45876HSSFfixed BoundSheetRecord to allow sheet names longer than 31 chars
add45890HSSFfixed HSSFSheet.shiftRows to also update conditional formats
add45865HSSFmodified Formula Parser/Evaluator to handle cross-worksheet formulas
addOptimised the FormulaEvaluator to take cell dependencies into account
add16936HSSFInitial support for whole-row cell styling
addUpdate hssf.extractor.ExcelExtractor to optionally output blank cells too
addInclude the sheet name in the output of examples.XLS2CSVmra
fix45784HSSFSupport long chart titles in SeriesTextRecords
fix45777HSSFThrow an exception if HSSF Footer or Header is attempted to be set too long, rather than having it break during writing out
add45844HSLFAdditional diagnostics for HSLF SlideShowRecordDumper
fix45829HSSFHSSFPicture.getImageDimension() failed when DPI of image is zero
fix45815HSLFBit mask values in StyleTextPropAtom were not preserved across read-write
add45814HSLFSpecify RecordType for slide show Handout (4041)
fix45805HSSFFixed 16-bit signed/unsigned bug in HSSFSheet.getColWidth etc
fix45780HSSFFixed HSSFSheet.shiftRows to also update Area refs
fix45804POI OverallUpdate HSMF to handle Outlook 3.0 msg files, which have a different string chunk type
addExpose the name of Named Cell Styles via HSSFCellStyle (normally held on the parent style though)
fix45978Fixed IOOBE in Ref3DPtg.toFormulaString() due eager initialisation of SheetReferences
addMade HSSFFormulaEvaluator no longer require initialisation with sheet or row
addExtended support for cached results of formula cells
fix45639HSSFFixed AIOOBE due to bad index logic in ColumnInfoRecordsAggregate
fixFixed special cases of INDEX function (single column/single row, errors)
add45761HSSFSupport for Very Hidden excel sheets in HSSF
add45738HWPFInitial HWPF support for Office Art Shapes
fix45720HSSFFixed HSSFWorkbook.cloneSheet to correctly clone sheets with drawings
fix45728HSLFFix for SlideShow.reorderSlide in HSLF
addInitial support for embedded movies and controls in HSLF
fix45358HSSFsigned/unsigned error when parsing 3-d area refs, performance problem evaluating area refs, and ClassCastExcecption in IF()
addSupport for HPBF Publisher hyperlinks, including during text extraction
fix26321 44958HSSFpreserve position of ArrayRecords and TableRecords among cell value records
fixImpove empty header or footer handling in HWPF HeaderStories
fixAvoid NPE in hssf.usermodel.HeaderFooter when stripping fields out
fixAvoid NPE in EscherBSERecord on older escher records
addBasic text extraction support in HPBF
addInitial, low level support for Publisher files, in the form of HPBF
fix45699HSSFFix RowRecordsAggregate to tolerate intervening MERGEDCELLS records
fix45698HSSFFix LinkTable to tolerate multiple EXTERNSHEET records
fix45682HSSFFix for cloning of CFRecordsAggregate
addInitial support for evaluating external add-in functions like YEARFRAC
fix45672HSSFFix for MissingRecordAwareHSSFListener to prevent multiple LastCellOfRowDummyRecords when shared formulas are present
fix45645HSSFFix for HSSFSheet.autoSizeColumn() for widths exceeding Short.MAX_VALUE
add45623HSSFSupport for additional HSSF header and footer fields, including bold and full file path
add45623HSSFSupport stripping HSSF header and footer fields (eg page number) out of header and footer text if required
add45622HWPFSupport stripping HWPF fields (eg macros) out of text, via Range.stripFields(text)
addNew HPSF based TextExtractor for document metadata, org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor
fixProperly update the array of Slide's text runs in HSLF when new text shapes are added
fix45590HSLFFix for Header/footer extraction for .ppt files saved in Office 2007
fixBig improvement in how HWPF handles unicode text, and more sanity checking of text ranges within HWPF
addInclude headers and footers int he extracted text from HWPF's WordExtractor
addAdded support to HWPF for headers and footers
fixImprove how HWPF deals with unicode internally. Should avoid some odd behaviour when manipulating unicode text
add45577HSSFAdded implementations for Excel functions NOW and TODAY
fix45582HSSFFix for workbook streams with extra bytes trailing the EOFRecord
add45537HSLFInclude headers and footers (of slides and notes) in the extracted text from HSLF
fix45472HSSFFixed incorrect default row height in OpenOffice 2.3
fix44692HSSFHSSFPicture.resize() stretched image when there was a text next to it
add45543POI OverallOptionally extract comment text with PowerPointExtractor, and initial hslf model support for comments
fix45538POI OverallInclude excel headers and footers in the output of ExcelExtractor
fix44894HSSFrefactor duplicate logic from EventRecordFactory to RecordFactory
addSupport for Headers / Footers in HSLF
fix44953HSSFExtensive fixes for data validation
fix45519HSSFFixed to keep datavalidation records together
addSupport for creating new HSLF CurrentUserAtoms
add45466HSSFPartial support for removing excel comments (won't work for all excel versions yet)
fix45437HWPFDetect encrypted word documents, and throw an EncryptedDocumentException instead of a OOM
add45404HSSFNew class, hssf.usermodel.HSSFDataFormatter, for formatting numbers and dates in the same way that Excel does
fix45414HSSFDon't add too many UncalcedRecords to sheets with charts in them
fix45398HSSFSupport detecting date formats containing "am/pm" as date times
fix45410HSSFRemoved dependency from contrib on commons beanutils,collections and lang
addNew helper, HSSFOptimiser, which handles removing duplicated font and style records, to avoid going over the limits in Excel
fix45322HSSFFixed NPE in HSSFSheet.autoSizeColumn() when cell number format was not found
add45380HSSFMissing return keyword in ArrayPtg.toFormulaString()
add44958HSSFRecord level support for Data Tables. (No formula parser support though)
add35583POI OverallInclude a version class, org.apache.poi.Version, to allow easy introspection of the POI version
addAllow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another
fix45289HSSFfinished support for special comparison operators in COUNTIF
fix45126HSSFAvoid generating multiple NamedRanges with the same name, which Excel dislikes
fixFix cell.getRichStringCellValue() for formula cells with string results
fix45365HSSFHandle more excel number formatting rules in FormatTrackingHSSFListener / XLS2CSVmra
fix45373HSSFImprove the performance of HSSFSheet.shiftRows
fix45367HSSFFixed bug when last row removed from sheet is row zero
fix45348HSSFTweaks to RVA formula logic
fix45354HSSFFixed recognition of named ranges within formulas
fix45338HSSFFix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts
fix45336HSSFFix HSSFColor.getTripletHash()
fix45334HSSFFixed formula parser to handle dots in identifiers
fix45252HWPFImprovement for HWPF Range.replaceText()
fix45001HWPFFurther fix for HWPF Range.delete() and unicode characters
add45175HWPFSupport for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation
fixAvoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.
addSupport for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder

Version 3.1-final (2008-06-29)#

Changes#

TypeBugModuleDescription
fix30978HSSFFixed re-serialization of tRefErr3d and tAreaErr3d
fix45234HSSFRemoved incorrect shared formula conversion in CFRuleRecord
fix45001HWPFImproved HWPF Range.replaceText()
fix44692HSSFFixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size
addSupport custom image renderers in HSLF
fixCorrectly increment the reference count of a blip when a picture is inserted
fix45110Fixed TextShape.resizeToFitText() to properly resize TextShape
fix45091HSSFFixed serialization of RefN~ tokens. Simplified Ptg class hierarchy
fix45133HSSFFixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary
fix45145HSSFFixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate
fix45123HSSFFixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes
fix45087HSSFCorrectly detect date formats like [Black]YYYY as being date based
add45060HSSFImproved token class transformation during formula parsing
add44840HSSFImproved handling of HSSFObjectData, especially for entries with data held not in POIFS
add45043HSSFSupport for getting excel cell comments when extracting text
addExtend 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
fix45025HSSFimproved FormulaParser parse error messages
fix45046HSSFallowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable
fix45066HSSFfixed sheet encoding size mismatch problems
add45003POIFSSupport embedded HDGF visio documents
fix45001HWPFPartial fix for HWPF Range.insertBefore() and Range.delete() with unicode characters
fix44977HSSFSupport for AM/PM in excel date formats
addSupport for specifying a policy to HSSF on missing / blank cells when fetching
add44937HWPFPartial support for extracting Escher images from HWPF files
fix44824HWPFAvoid an infinite loop when reading some HWPF pictures
fix44898POIFSCorrectly handle short last blocks in POIFS

Version 3.1-beta2 (2008-05-26)#

Changes#

TypeBugModuleDescription
fix44306HSSFfixed reading/writing of AttrPtg(type=choose) and method toFormulaString() for CHOOSE formulas
fix24207HSSFadded HSSFName.isDeleted() to check if the name points to cell that no longer exists
fix40414HSSFfixed selected/active sheet after removing sheet from workbook
fix44523HSSFfixed workbook sheet selection and focus
fix45000HWPFFixed NPE in ListLevel when numberText is null
fix44985HSLFProperly update TextSpecInfoAtom when the parent text is changed
fix41187HSSFfixed HSSFSheet to properly read xls files without ROW records
fix44950HSSFfixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals
fix42570HSSFfixed LabelRecord to use empty string instead of null when the length is zero.
fix42564HSSFfixed ArrayPtg to use ConstantValueParser. Fixed a few other ArrayPtg encoding issues.
fixFollow-on from 28754 - StringPtg.toFormulaString() should escape double quotes
fix44929POI OverallImproved error handling in HSSFWorkbook when attempting to read a BIFF5 file
fix44675HSSFParameter operand classes (function metadata) required to encode SUM() etc properly. Added parse validation for number of parameters
fix44921HSSFallow Ptg.writeBytes() to be called on relative ref Ptgs (RefN* and AreaN*)
fix44914HSSFFix/suppress warning message "WARN. Unread n bytes of record 0xNN"
fix44892HSSFmade HSSFWorkbook.getSheet(String) case insensitive
fix44886HSSFCorrectly process PICT metafile in EscherMetafileBlip
fix44893HSSFTake into account indentation in HSSFSheet.autoSizeColumn

Version 3.1-beta1 (2008-04-28)#

Changes#

TypeBugModuleDescription
fix44857HSSFAvoid OOM on unknown escher records when EscherMetafileBlip is incorrect
addHSLFSupport for getting embedded sounds from slide show
addHSLFInitial support for rendering slides into images
addHSLFSupport for getting OLE object data from slide show
addHSLFImplemented more methods in PPGraphics2D
addHSLFAdded Freeform shape which can contain both lines and Bezier curves
fix41071POI OverallImproved text extraction in HSLF
add30311HSSFConditional Formatting - improved API, added HSSFSheetConditionalFormatting
fixUpdate 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
fixFix the logger used by POIFSFileSystem, so that commons-logging isn't required when not used
addUpdate HSLFSlideShow and HSSFWorkbook to take advantage of POIFS updates, and allow reading embeded documents
addImprove how POIFS works with directory entries, and update HWPFDocument to support reading an embeded word document
addInitial support for getting and changing chart and series titles
addImplement 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
fix44792HSSFfixed encode/decode problems in ExternalNameRecord and CRNRecord.
fix43670 44501POI Overall,HDGFFix how HDGF deals with trailing data in the list of chunk headers
add30311HSSFMore work on Conditional Formatting
fixrefactored all junits' usage of HSSF.testdata.path to one place
fix44739HSSFSmall fixes for conditional formatting (regions with max row/col index)
add44694HPSFHPSF: Support for property sets without sections
addImplement Sheet.removeShape(Shape shape) in HSLF
add44675 44695 44691HSSFVarious fixes: Recognising var-arg built-in functions #44675, ExternalNameRecord serialisation bug #44695, PMT() bug #44691
add30311HSSFMore work on Conditional Formatting
addMove the Formula Evaluator code out of scratchpad
addMove the missing record aware eventusermodel code out of scratchpad
add44652 44603HWPFImproved handling of Pictures in Word Documents
fix44636HSSFFix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits
fix44627POI OverallImprove the thread safety of POILogFactory
add30311HSSFInitial support for Conditional Formatting
fix44609HSSFHandle leading spaces in formulas, such as '= 4'
add44608HSSFSupport for PercentPtg in the formula evaluator
fix44606HSSFSupport calculated string values for evaluated formulas
addAdd accessors to horizontal and vertical alignment in HSSFTextbox
add44593HSSFImproved handling of short DVRecords
add28627 44580HDF,HWPFFix Range.delete() in HWPF
add44539HSSFSupport for area references in formulas of rows >= 32768
add44536HSSFImproved support for detecting read-only recommended files
fix43901HSSFCorrectly update the internal last cell number when adding and removing cells (previously sometimes off-by-one)
fix44504HSSFAdded initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
fix44504HSSFImprovements 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
fix44504HSSFFixed number conversion inconsistencies in many functions, and improved RefEval
fix44504HSSFAdded initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
fix44504HSSFImprovements 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
fix44504HSSFFixed number conversion inconsistencies in many functions, and improved RefEval
fix44508HSSFFix formula evaluation with evaluateInCell on boolean formulas
fix44510HSSFFix how DVALRecord works with dropdowns
fix44495HSSFHandle named cell ranges in formulas that have lower case parts
fix44491POI OverallDon't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
fix44471HSSFCrystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
fix44495HSSFHandle named cell ranges in formulas that have lower case parts
fix44491POI OverallDon't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
fix44471HSSFCrystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
add44450HSSFSupport for Lookup, HLookup and VLookup functions
fix44449HSSFAvoid getting confused when two sheets have shared formulas for the same areas, and when the shared formula is set incorrectly
fix44366POIFSInputStreams 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
add44371HSSFSupport for the Offset function
fix38921HSSFHave HSSFPalette.findSimilar() work properly
fix44456HSSFFix the contrib SViewer / SViewerPanel to not fail on sheets with missing rows
fix44403HSSFFurther support for unusual, but valid, arguments to the Mid function
fix44410HSSFSupport for whole-column ranges, such as C:C, in formula strings and the formula evaluator
fix44421HSSFUpdate Match function to properly support Area references
fix44417HSSFImproved handling of references for the need to quote the sheet name for some formulas, but not when fetching a sheet by name
fix44413HSSFFix for circular references in INDEX, OFFSET, VLOOKUP formulas, where a cell is actually allowed to reference itself
fix44403HSSFFix for Mid function handling its arguments wrong
add44364HSSFSupport for Match, NA and SumProduct functions, as well as initial function error support
fix44375HPSFCope 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.
fix38641HSSFHandle 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)
fix44373HSSFHave HSSFDateUtil.isADateFormat recognize more formats as being dates
add37923HSSFSupport for Excel hyperlinks
addImplement hashCode() and equals(obj) on HSSFFont and HSSFCellStyle
fix44345HSSFImplement CountA, CountIf, Index, Rows and Columns functions
fix44336HSSFProperly escape sheet names as required when figuring out the text of formulas
add44326POI OverallImprovements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptions
addSupport for a completed Record based "pull" stream, via org.apache.poi.hssf.eventusermodel.HSSFRecordStream, to complement the existing "push" Event User Model listener stuff

Version 3.0.2-FINAL (2008-02-04)#

Changes#

TypeBugModuleDescription
fix44297HSSFIntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
fix44296HSLFFix for reading slide background images
fix44293HSSFAvoid swapping AreaPtgs from relative to absolute
fix44292HWPFCorrectly process the last paragraph in a word file
fix44254HSSFAvoid some unread byte warnings, and properly understand DVALRecord
addAdd another formula evaluation method, evaluateFormulaCell(cell), which will re-calculate the value for a formula, without affecting the formula itself.
fix41726HSSFFix how we handle signed cell offsets in relative areas and references
add44233HSSFSupport for getting and setting a flag on the sheet, which tells excel to re-calculate all formulas on it at next reload
fix44201HSSFEnable cloning of sheets with data validation rules
fix44200HSSFEnable cloning of sheets with notes
add43008HSSFAdd a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly
fix43058HSSFSupport setting row grouping on files from CR IX, which lack GutsRecords
fix31795HSSFSupport cloning of sheets with certain drawing objects on them
fix43902HSSFDon't consider merged regions when auto-sizing columns
fix42464HSSFAvoid "Expected ExpPtg to be converted from Shared to Non-Shared Formula" on large, formula heavy worksheets
add42033HSSFAdd support for named ranges with unicode names
add34023HSSFWhen shifting rows, update formulas on that sheet to point to the new location of those rows
addSupport getting all the cells referenced by an AreaReference, not just the corner ones
add43510HSSFAdd support for named ranges in formulas, including non-contiguous named ranges
add43937HSSFAdd support for hiding and un-hiding sheets, and checking their current hidden status
fix44167HSSFFix for non-contiguous named ranges
fix44070HSSFFix for shifting comments when shifting rows

Version 3.0.2-BETA2 (2008-01-12)#

Changes#

TypeBugModuleDescription
addSupport for tables in HSLF
fix43781HSLFFix for extracting text from TextBoxes HSLF in
fixImprove JavaDocs relating to hssf font and fill colourings
add44095 44097 44099HSSFSupport for Mid, Replace and Substitute excel functions
add44055POI OverallSupport for getting the from field from HSMF messages
add43551HSSFSupport for 1904 date windowing in HSSF (previously only supported 1900 date windowing)
add41064POIFSSupport for String continue records
add27511POI OverallSupport for data validation, via DVRecord and DVALRecord

Version 3.0.2-BETA1 (2007-12-04)#

Changes#

TypeBugModuleDescription
fix43877HSSFFix for handling mixed OBJ and CONTINUE records
fix39512HSSFFix for handling mixed OBJ and CONTINUE records
fix43837HSSFSupport for unicode NameRecords
fix43807HSSFThrow an IllegalArgumentException if asked to create a merged region with invalid columns or rows, rather than writing out a corrupt file
fix43837HSSFSupport for unicode NameRecords
add43721HSSFSupport for Chart Title Format records
fix42794HSSFFix for BOF records from things like Access
fix43648HSSFFix for IntPtg and short vs int
fix43751HSSFFix for handling rotated text in HSSFSheet.autoSizeColumn
addInclude an Excel text extractor, and put all existing text extractors under a common superclass
addImprovements to the LZW compression engine used by HDGF
addHSSFPicture.resize() - a handy method to reset a picture to its original width and height
addAdd a getSheetIndex(HSSFSheet) method to HSSFWorkbook, and allow a HSSFSheet to get at its parent HSSFWorkbook
addMove POIDocument out of Scratchpad, and update HSSFWorkbook to use it
fix43399HSSFFix for Cell References for rows > 32678
fix43410HSSFImproved Formula Parser support for numbers and ranges
addWhen writing HSLF files out, optionally preserve all OLE2 nodes (default is just the HSLF related nodes)
add43323HSLFSupport for adding Pictures to ShapeGroups in HSLF.
add43222HSSFSupport for getting OLE object data from HSSFWorkbook.
add43247HSLFSupport for getting OLE object data from slideshows.
add43125HSSFSupport for reading EMF, WMF and PICT images via HSSFWorkbook.getAllPictures()
fix43088HSSFFix for reading files with long cell comments and text boxes
fix42844HSSFFix for the EventUserModel and records that aren't immediately followed by their ContinueRecords
fix43055HSSFFix for saving Crystal Reports xls files when preserving nodes
fix43116HSSFFix for Escher layer handling of embedded OLE2 documents
fix43108HSSFWhere permissions deny fetching System Properties, use sensible defaults
fix43093HSSFFix formula evaluator support for Area3D references to other sheets
fixImprovements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this
fix42999HSSFFix for HSSFPatriarch positioning problems
addSupport for write-protecting a HSSF workbook
addSupport for querying, setting and un-setting protection on sheets in a HSSF workbook
addInitial HSMF (outlook) support
fixTidy up the javadocs

Version 3.0.1-FINAL (2007-07-05)#

Changes#

TypeBugModuleDescription
fixAdministrative updates to the Maven POMs, and the release artifact build process
fix23951HSSFFix for HSSF setSheetOrder and tab names
fix42524HSLFBetter HSLF support for problem shape groups
fix42520HSLFBetter HSLF support for corrupt picture records
addInitial support for a "missing record aware" HSSF event model
addAdditional HSLF support for Title and Slide Master Sheets
fix42474HSLFImproved HSLF note to slide matching, and a NPE
fix42481HSLFTweak some HSLF exceptions, to make it clearer what you're catching
fix42667Fix for HSLF writing of files with tables
addImproved way of detecting HSSF cells that contain dates, isADateFormat
addInitial, read-only support for Visio documents, as HDGF

Version 3.0-FINAL (2007-05-18)#

Changes#

TypeBugModuleDescription
fix39977POI OverallFix POM for Maven users
fix38976HSSFAdd createPicture to HSSFShapeGroup
addDetect Office 2007 XML documents, and throw a meaningful exception
addAdditional HSLF support for PowerPoint
addInitial support for HWPF image extraction

Version 3.0-alpha3 (2006-12-12)#

Changes#

TypeBugModuleDescription
addAdditional HSLF support for PowerPoint

Version 3.0-alpha2 (2006-06-16)#

Changes#

TypeBugModuleDescription
addHSSF Formula support
addAdditional HSLF support for PowerPoint
fix39389HSSFExtended Ascii support for WingDings

Version 3.0-alpha1 (2005-06-04)#

Changes#

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

Version 2.5.1-FINAL (2004-02-29)#

Changes#

TypeBugModuleDescription
addOutlining support
fix27574HSSFHSSFDateUtil.getExcelDate() is one hour off when DST changes
fix26465HSSFwrong lastrow entry
fix28203HSSFUnable to open read-write excel file including forms

Version 2.5-FINAL (2004-02-29)#

Changes#

TypeBugModuleDescription
addAdd support for the Escher file format
fix27005HSSFjava.lang.IndexOutOfBoundsException during Workbook.cloneSheet()

Version 2.0-FINAL (2004-01-26)#

Changes#

TypeBugModuleDescription
updateNo changes

Version 2.0-RC2 (2004-01-11)#

Changes#

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

Version 2.0-RC1 (2003-11-02)#

Changes#

TypeBugModuleDescription
fix12561HSSF(Min) HSSFWorkbook throws Exceptions
fix12730HSSF(Nor) values dont get copied to another sheet.
fix13224POI Overall(Maj) Exception thrown when cell has =Names call
fix13796HSSF(Nor) Error Reading Formula Record (optimized if, external link)
fix13921HSSF(Nor) Sheet name cannot exceed 31 characters and cannot contain :
fix14330HSSF(Nor) Error reading FormulaRecord
fix14460HSSF(Nor) Name in Formula - ArrayOutOfBoundsException
fix15228HSSF(Cri) [Urgent] ArrayIndexoutofbounds Exception. POI - Version 1.8
fix16488HSSF(Maj) Unable to open written spreadsheet in Excel, but can in Open
fix16559HSSF(Nor) testCustomPalette.xls crashes Excel 97
fix16560HSSF(Nor) testBoolErr.xls crashes Excel '97
fix17374HSSF(Min) HSSFFont - BOLDWEIGHT_NORMAL
fix18800HSSF(Maj) The sheet made by HSSFWorkbook#cloneSheet() doesn't work cor
fix18846POI Overall(Min) [RFE]Refactor the transformation between byte array a
fix19599HSSF(Min) java.lang.IllegalArgumentException
fix19961HSSF(Nor) Sheet.getColumnWidth() returns wrong value
fix21066HSSF(Blo) Can not modify a blank spreadsheet
fix21444HSSF(Enh) Macro functions
fix21447HSSF(Nor) [RFE]String Formula Cells
fix21674HSSF(Enh) Documentation changes for @(Greater|Less|Not)EqualPt
fix21863POI Overall(Enh) build.xml fixes
fix22195POIFS(Nor) [RFE] Support for Storage Class ID
fix22742HSSF(Cri) Failed to create HSSFWorkbook!
fix22922HSSF(Cri) HSSFSheet.shiftRows() throws java.lang.IndexOutOfBoundsExcep
fix22963HPSF(Nor) org.apache.poi.hpsf.SummaryInformation.getEditTime() should
fix24149POIFS(Maj) Error passing inputstream to POIFSFileSystem
fix21722HSSF(Nor) Add a ProtectRecord to Sheets and give control over
fix9576HSSF (Nor) DBCELL, INDEX EXTSST (was Acess 97 import)
fix13478POIFS(Blo) [RFE] POIFS, RawDataBlock: Missing workaround for lo
fix14824HSSF(Nor) Unable to modify empty sheets
fix12843HSSF(Cri) Make POI handle chinese better
fix15353HSSF(Nor) [RFE] creating a cell with a hyperlink
fix15375HSSF(Blo) Post 1.5.1 POI causes spreadsheet to become unopenable.

Version 2.0-pre3 (2003-07-29)#

Changes#

TypeBugModuleDescription
addHPSF 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.
fixGridlines can now be turned on and off
fixNamePTG refactoring/fixes
fixminor fixes to ExternSheet and formula strings
fixSheet comparisons now ignore case

Version 2.0-pre2 (2003-07-06)#

Changes#

TypeBugModuleDescription
fixA nasty concurrency problem has been fixed. Any users working in a multithreaded environment should seriously consider upgrading to this release.
updateThe EXTSST record has been implemented. This record is used by excel for optimized reading of strings.
updateWhen 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.
fixThere were some issues when removing merged regions (specifically, removing all of them and then adding some more) and have been resolved.
fixWhen 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.
addSupport added for reading formulas with UnaryPlus and UnaryMinus operators.

Version 2.0-pre1 (2003-05-17)#

Changes#

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

Version 1.10-dev (2003-02-19)#

Changes#

TypeBugModuleDescription
addSupport for zoom level
addFreeze and split pane support
addRow and column headers on printouts

Version 1.8-dev (2002-09-20)#

Changes#

TypeBugModuleDescription
addCustom Data Format Support
addEnhanced Unicode Support for Russian and Japanese
addEnhanced formula support including read-only for "optimized if" statements.
addSupport for cloning objects
addFixes for header/footer
addSpanish Documentation translations
addSupport for preserving VBA macros

Version 1.7-dev (Release date not recorded)#

Changes#

TypeBugModuleDescription
updateRemoved runtime dependency on commons logging.
updateFormula support

Version 1.5.1 (2002-06-16)#

Changes#

TypeBugModuleDescription
updateRemoved depedency on commons logging. Now define poi.logging system property to enable logging to standard out.
fixFixed SST string handling so that spreadsheets with rich text or extended text will be read correctly.

Version 1.5 (2002-05-06)#

Changes#

TypeBugModuleDescription
updateNew project build.
updateNew project documentation system based on Cocoon.
updatePackage rename
fixVarious bug fixes
addEarly stages of HSF development (not ready for development)
addInitial low level record support for charting (not complete)

Version 1.2.0 (2002-01-19)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 1.1.0 (2002-01-04)#

Changes#

TypeBugModuleDescription
updateCreated new event model
updateOptimizations made to HSSF including aggregate records for values, rows, etc.
updatepredictive sizing, offset based writing (instead of lots of array copies)
updateminor re-factoring and bug fixes.

Version 1.0.2 (2002-01-11)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 1.0.1 (2002-01-04)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 1.0.0 (2001-12-30)#

Changes#

TypeBugModuleDescription
updateMinor documentation updates.

Version 0.14.0 (2001-12-22)#

Changes#

TypeBugModuleDescription
updateAdded DataFormat helper class and exposed set and get format on HSSFCellStyle
updateFixed column width apis (unit wise) and various javadoc on the subject
updateFix for Dimensions record (again)... (one of these days I'll write a unit test for this ;-p).
updateSome optimization on sheet creation.

Version 0.13.0 (2001-12-16)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 0.12.0 (2001-12-12)#

Changes#

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

Version 0.11.0 (2001-12-08)#

Changes#

TypeBugModuleDescription
updateBugfix release. We were throwing an exception when reading RKRecord objects.

Version 0.10.0 (2001-12-02)#

Changes#

TypeBugModuleDescription
updateGot continuation records to work (read/write)
updateAdded various pre-support for formulas
updateMassive API reorganization, repackaging.
updateBiffViewer class added for validating HSSF & POI and/or HSSF Output.
updateBetter API support for modification.

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

Changes#

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

Version 0.6 (2001-11-11)#

Changes#

TypeBugModuleDescription
updateSupport for read/write and modify.
updateRead only support for MulRK records (converted to Number when writing)

Version 0.5 (2001-11-05)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 0.4 (2001-10-31)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 0.3 (2001-10-26)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 0.2 (2001-09-24)#

Changes#

TypeBugModuleDescription
updateChanges not recorded.

Version 0.1 (2001-08-28)#

Changes#

TypeBugModuleDescription
updateFirst ever public release