Search Apache POI

History of Changes

RSS

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

Summary#

  • The third-party jar for commons-collections4 is now required for handling of OLE2 properties

Changes#

TypeBugModuleDescription
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
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
add57919HSSF, HSLF and HPSF support for in-place writing to the currently open File (requires the POIFS/NPOIFS was opened from a read-write File)
add57919HSSF, 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
add52122Excel 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
fix59766When 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
fix59748Replace 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
fix59724Provide a close() method and implement Closeable on all OLE2-based POIDocument classes
fix59719XSSFcorrectly parse literal data validation constraints
remove59170Remove 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
add57838Remove 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.
remove59170Remove 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
fix54570InvalidFormatException because of Absolute URI forbidden
remove59170Remove 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
fix59434Cannot 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
add58648Regression: 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.
add52949VBA Macro reader and extractor
fix55982Don'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
add56911Fix 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
fix58909Add a cloneSheet() which directly sets the sheetname to allow to avoid a costly renaming of sheets
fix59183Regression 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
fix59199Gracefully 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
fix55791Avoid 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
fix59135Password gets truncated when using passwords longer than 15 characters for the function protectSheet()
add56549HWPFCorrectly calculate char index ranges for HWPF in the TextPieceTable
add57495Fix problem with tables in documents at pos 0
fixFix a number of edge-cases where file-handles would be leaked
remove59170Remove 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)
add57031Out 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
add57914Provide a better error message for OOXML strict format which we do not support yet
add47245Adjust handling of missing row-records as it seems LibreOffice/Excel are handling such documents
add59056Render individual slideshow shapes
fix59074ExtractorFactory 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
fix56345Reject single-cell merged regions
fix58339SS CommonMake OFFSET() allow missing optional height and width parameters
addgithub-27Handle documents with a picture-only header
fix58996Regression 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
fix57034Cell.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)
fix58885Fixed performance regression after fixing bug 58443 when adding a merged region to an XSSFSheet.
addRaised xmlsec version to 2.0.6
add47291Cannot 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()
add58633Set multiple cell style properties at once
add56004Support for WMF rendering
add56892Add API for inserting ignored warnings into XSSF sheets. This can be used e.g. to suppress 'number stored as text' warnings.
add58847Getters/setters/removers for the additional well-known document summary information properties from Office 12
add57796Support hyperlink extraction when rendering slides
fix54916POI 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
fix58760Non-standard namespace-key breaks parsing XLSX files
fix58746Fix missing adjustment of formulas when sheet-ordering is changed.
fix58616Try to initialize with empty password if not done before
fixFix some cases where file-handles were left open, mostly when failing to parse documents
fix55030RichTextRun getFontName can not get chinese font name
fix56570RecordType has repeat by code type 3009
fix58159getHeaderText() and getFooterText() duplicate text in sheet.getTextRuns()
fix58775Set maximum number of data formats to avoid corrupted workbook
add58778XSSFOverride built-in number formats in XSSFWorkbooks
fix58733New AIOOBE in getCell while iterating through a table in PPT
fix58718Master 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
fix46210Title placeholder not recognized by Powerpoint 2003
fix58663Pictures cannot be removed from a slide
add58636Replace ClientAnchor anchor type constants with AnchorType enum
add58644SS CommonReplace Sheet.setZoom(num, den) with Sheet.setZoom(scale)
remove58642Remove 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.
add58617Add custom safe XmlBeans type loader / rename vendor specific schema packages
fix58630Signing failed after deletion of first sheet
fix55955Filling an existing ppt table stopped working with 3.9
fix54210When saving PPT to PNG, some text is rendered backwards
fix53189Shapes 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
fix53192Images in ppt file have wrong width when converting ppt to png
addHSLFAdd support for HSLF metro blobs
fix52297Bullets 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
fix51622autoSizeColumn incorrectly sizes columns containing leading whitespace
fix58576Rename misspelled SheetUtil.canComputeColumnWidth
add58572Add getHyperlink and getHyperlinkList to Sheet interface
add58348Add support for copying rows in XSSFWorkbooks
fix45908RichTextRun.setBullet(false) doesn't work, bullets still here
fix45088HSLFPOI-HSLF changeTextInRichTextRun corrupts presentation
fix45124inserting text or images wipes out boldness and makes everything italic
add58452Set cell formulas containing unregistered function names
add58442Add method to reorganize AreaPtg as top-left and bottom-right references
fix58443Prohibit 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
fix58516Rare new aioobe in 3.13 on initialization of a handful of ppts
fix56957Avoid 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";#
fix58085Fix removing sheet so not to break other existing sheet references
fix58480Work 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
fix50319Make 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
fix58471Improve 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
fix58350Make XSSF and HSSF consistent on Sheet.getMergedRegions: return empty list if there are none
add58216provide picture-shape resize that maintains the aspect ratio
add57925Add a simple fix to avoid an NPE when Workbooks have invalid external references
add57915Fix Dev2Hex for numbers larger than Integer.MAX_VALUE and less than Integer.MIN_VALUE
add57890Add support for different datatypes in XSSFImportFromXML
add58207Provide user access to the original image dimensions
fix55476Fix adding pictures to XWPFRun instances
fix58341Handle edge-cases in D* function
add58245Workbook support for iterating over Sheets
fix58353Return correct value in Match-Function with match-type == -1
fix58315Avoid NPE for RichTextString without font-details
fix53275XSSFFont: reset indexed color flag when setting a non-indexed color
fix58039Make 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
fix58254CellFormatResult.text should check for nulls as per the javadoc
fix58260Fix checks for limit on number of styles in XSSF/SXSSF, fix more than 32k styles in SXSSF workbooks
fix58262ReadOnlySharedStringsTable now handles workbooks with an empty SST part
fix52111Intersection formulae are now supported in XSSF
fix58253CellReference upper-case check for #REF!, and javadoc improvements
fix58252More CellReference unit testing coverage
fix54938Throw InvalidFormatException as documented instead of IllegalArgumentException in WorkbookFactory.create()
fix58237When adding a picture to a XWPF header or footer, attach it to the right part
fix58220Improve the javadocs for XSSFFont and Font getFontHeight methods
fix56479Don't hardcode dcterms as namespace alias in the attribute, but expect the actual alias that is used in the corresponding element
fix56519XSLFSlide.draw is not working with text embedded in PPTX
fix58205getSlideMasters() returns the master slides in the incorrect order
fix57786XSLFFreeformShape ignores quadratic bezier curves
fix58206provide a mechanism to find slide layouts by name
fix58204STYLE: ShapeContainer interface makes internal getShapesList() redundant
add58190The current picture handling uses raw integers for types and index, replace with enum and reference
fix58203Apparently Maven uses plurals for all artifacts except javadocs, so tweak our naming to make it happy
add58193Use input stream rather than byte array for checksum etc.
add58200SXSSF support for evaluating formula cells, provided the cell and all its references are within the current window
fix58098Avoid NPE in cleanup if NPOIFSFileSystem is opened on a locked File under Windows
addMerged common_sl branch to trunk
fix57571Fix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
fix58175Fix creating comments for XSSF/SXSSF, regression was introduced via bug 54920
fix58156Possible data corruption in hasPOIFSHeader and hasOOXMLHeader
add57484Allow processing of non-OOXML core namespace packages
add58130Conditional Formatting support for DataBars, Icon Sets / Multi-States, and Color Scales

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

Changes#

TypeBugModuleDescription
add56791The 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
add58138Conditional Formatting support for the common Color class, in addition to previous color shorts
fix58133Agile encryption - wrong checksum calculation
fix58113Regression: NullPointerException when setting cell value to null
add57893Add a method for obtaining all merged regions on a worksheet. This is faster for XSSFSheet than obtaining each individually by iteration.
add58036Add basic support for VBA macro-enabled workbooks (xlsm)
fix57744Fix parsing the email submission data when id contains a hyphen
fix57678Better handle years in mail-messages between 1980 and 1999
fix54332WMF extraction failing in Tika for older PowerPoint Files
add56865Limit number of bytes (by counting them) while opening office docs
add50090zip bomb prevention
fix58069Biff8RC4 xorShort returns wrong value for unsigned shorts
fix56420Fix possible NullPointerException when empty cell is included in Sumif calculation
fix58040Log Forging
fix56328Improve AreaReference to take account of the spreadsheet format version when determining whether a reference is whole-column.
fix57963Fix and verify in CI builds that we can compile most examples without requiring scratchpad-jar, update documentation.
fix53109Correctly handle unicode strings in NameCommentRecord
add57904Automatically verify that the resulting source-packages can be built
fix57512Fix potential NPE in DateUtil for invalid dates
fix57889Fix potential NPE in XWPFParagraph.getNumFmt()
fix57951Use BigDecimal in some cases in DataFormatter.formatRawCellContents, to avoid rounding problems on JDK8
fix55410Use 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
fix57552Sort 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
fix57880Handle >32,767 cell styles and formats in XSSF (file format limit is 64,000)
add57593Allow WorkbookFactory.create methods to open xlsx files protected with the default password
add57593Add overloaded WorkbookFactory.create methods which take the spreadsheet password
fix57666When removing a SXSSF sheet, ensure temp files associated with it are disposed of
fix57826If a XSSF shape has a buFont but no bullet character, mirror Excel and treat as un-bulleted
fix57642Fix setSheetName with ISERROR on XSSF
add57747Add ISERR() function
fix57829Avoid XmlValueDisconnectedException when removing a XWPFRun from a XWPFParagraph by removing from IRuns as well
fix57851Skip null properties in PropertyTableBase, which is how PropertyFactory reports unsupported POIFS properties
fix57820Avoid NPE on HSLF Tables with a top position of -1
fix56579Throw exception if max string length of 32767 chars is exceeded in XSSF and SXSSF.
fix55386Fix handling of bold formatting in example application 'ToHtml'
fix47304Use fixed encoding when extracting text in WordDocument
fix56017Fix shifting comments with shifted rows
fix56295Fix cloning of styles across workbooks and handling of default value of attribute applyFill
fix56380Remove limitation of 1024 comments per Workbook
fix56467Fix cloning of sheets with pictures
addMore helpful ExtractorFactory exception if given a Visio VSDX ooxml file
fix56799Include CTTblGrid in the smaller poi-ooxml-schemas jar
fix57165Avoid PartAlreadyExistsException when removing/cloning sheets
fix56893Additional 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
fix57622Change from XMLEventFactory.newFactory to XMLEventFactory.newInstance, for IBM JDK Compatibility

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

Changes#

TypeBugModuleDescription
fix57459Add method in SXSSFSheet to directly set row OutLineLevel
fix57456Add workaround to read empty SSTRecord where Excel puts random number in unique-strings-count-field
fix57535Add 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
fix57482Handle 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
add53453Add methods to set margins in sections of HWPF documents
fix46898XSSFReturn #VALUE! for circular references.
fix46192Add methods to query outline level for HSSF and XSSF
fix56240Handle PP97_DUALSTORAGE streams
fix47261SlideShow.removeSlide makes PPT corrupted
add49541Mapping of symbol characters to unicode equivalent
add54541Add support for cropped images in Slide.draw()
add57007Add initial implementations of DMIN and DGET functions
addSupport for Office Binary Document RC4 CryptoAPI Encryption for HSLF
add57195Support for Office Binary Document RC4 Encryption
fix57373Fix get/setFirstVisibleTab() for XSSFWorkbook
fix57362Properly initialize chart-axis datastructure when loading a spreadsheet which already contains one.
fix56511Fix NullPointerException for RichText strings with no formatting for some runs.
add56550Avoid IBM JDK fail immediately during loading some POI classes, note: IBM JDK 1.7 or higher is needed because of XML APIs.
add56595Switch the cache in DateUtil.isADateFormat() to ThreadLocals to not have another syncpoint here.
fix56644NullPointerException in XSSFCell Constructor with different MissingCellPolicy
fix56888XSSFDataValidation ignores "allow blank" read from sheet, assumes true
fix57171Adjust the active sheet in setSheetOrder()
fix57163Adjust the active sheet in removeSheet()
fix57231Add missing ArrayRecord.clone()
addExpose the version information from OldExcelExtractor
fix570713+ XSSF column label names for pivot tables
add57063XSSF 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
fix57479Typo in HSSFWorkbook javadocs and quick-guide.
fix57480Fix some unnecessary casts, generics, Eclipse warnings, ...
addAdded workarounds to tests for JDK 6 LineBreakMeasurer bug
fix57250XMLSlideShow.setSlideOrder() produces corrupted CTSlideIdList
fix57272Deadlock 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
fix57171Adjust active sheet correctly when sheets are moved.
fix57163Adjust active sheet correctly when sheets are removed.
fix57164XSSFDrawing.createCellComment() does not honor dx and dy values passed in
add55967Picture 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
add57003Implement 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
fix57185Correct naming from "Serie" to "Series"
fix57176Include CTDefinedNamesImpl in the smaller poi-ooxml-schemas jar
fix57162Could not open macro enabled xlsm file after writing using POI3.11beta2 version
add57010Add implementation of function PROPER
fix57166Add missing HSSFWorkbook constructor javadocs
add57151And documentation and validation in CellRangeAddress to prevent invalid row/column combinations
add55164Support for adding slide notes
fix57143Javadocs and throws clause for WorkbookUtil
add54542Add support for cropped images in XSLFPictureShape.drawContent()
addadded ooxml-security-1.0 to the maven artifacts
fix55864XSSFImportFromXML.importFromXML() does not support optional elements
fix56835Unreadable 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
add56836XML signature support
fix57080IndexOutOfBoundsException in poi decryptor
addThe minimum Apache Ant version required to build has been increased to 1.8.x or later
add56956Add a NPOIFSFileSystem constructor with a FileChannel and the read-only option
fix56914XSSFRowShifter.updateConditionalFormatting throws IOOBE when there are more than 1 CTConditionalFormatting
fix56913Replace usages of o.a.p.util.ArrayUtil.copyOf* methods with replacements from j.u.Arrays
fix51483XSSF locking of specific features not working
fix48195Formulas: Fix incorrect evaluation of IF() with ROW()/COLUMN() as else-result.
fix55280XSSFGreatly improve performance of shifting rows in sheets with many merged regions.
fix51222XSSFColor.getARGBHex() returns wrong color for Excel 2007 xlsx file
fix56730Fix exporting XML if schema contains ref-elements
fix56864XWPFLatentStyles.isLatentStyle always returns true if there is at least 1 lsdException
fix56854XMLBeans performance when using getXXXList() and other proxy methods

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

Changes#

TypeBugModuleDescription
fix56812For XSLF Pictures, provide a way to get the URI of externally linked pictures
fix54764On 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)
fix56800Provide a helpful exception, XLSBUnsupportedException, if XSSFWorkbook is passed a .xlsb file
fix56814Switch 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
fix54764On 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)
fix56164Tidy 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)#

Changes#

TypeBugModuleDescription
fix56164Tidy up the OPC SAX setup code with a new common Helper, preventing external entity expansion (CVE-2014-3529)
fix55196Correct XWPF createTOC handling of short style names
fix55050If the start+end row and cell are the same on an AreaPtg, avoid inverting the relative flag
fix54725HWPF where no parent style CHP exists, use an empty set when processing the style to avoid a NPE
fix56502When shifting XSSF rows with formula cells, if the formula can't be parsed, log + leave it unchanged rather than failing
fix56527Avoid NPE from XSSFHyperLink when setting the cell it references on a new link
fix53984If an unsupported BofRecord is found for a sheet, warn and skip rather than breaking
fix53984Support the ColInfoRecord coming after the cells, rather than before as is normal
fix56132Allow XSSF formula evaluation to also skip missing external workbook references, if requested, in line with existing HSSF support
add56020XSSF support for creating Pivot Tables
add55906Formula Evaluator support for multi-sheet references for those functions which support them, eg SUM(Sheet1:Sheet3!A1:B2)
add56023Allow XSSF event model to find + return comments, and use this for the event based .xlsx text extractor. Required backwards-incompatible updates to XSSFSheetXMLHandler.SheetContentsHandler
fix56194HPSF thumbnail format tags are Int not UInt
fix56735Allow a system wide setting of where Temp files (eg for SXSSF) go, via TempFile / TempFileCreationStrategy
fix56683Have XMLBeans request UTF-8 for strings by default, to avoid issues on the odd platform where that isn't already the case
fix54443Correct HSSFOptimiser logic for the case where the to-keep style wasn't previously in use
add56737XSSF support for evaluating formula references to other Workbooks
fix56688Fix border cases in EDATE function: handle RefEval and BlankEval and also return #VALUE, not #REF in case of error
add56744Initial support for XSSF External Links tables, which hold references to other workbooks referenced by formulas and names
fix56702If a cell is of type numeric but has an empty <v/> tag, return as 0
fix56537Make Workbook be Closeable, so you can call close() to explicitly free the file based resources when you're done
fix54771Read text from SDTs at the table cell level, including (sometimes) Cover Page, Table of Contents and Bibliography
fix56556Change how ColumnHelper finds CTCol instances, to speed up the more common use case when most are wanted for reading
fix56572HSSFCell should follow XSSF, and allow setting a null-style to return to the default style
fix56563Fix multithreading bug when reading 2 similar files
fix53691Fix a copy/paste error in CFRuleRecord.clone()
fix56170Fix a problem with cells in workbooks becoming disconnected
fix56514Add missing null-check if simple shape does not
fix56325Bug 54400 introduced a problem when removing a sheet with named ranges
fix47251NoteRecord can sometimes be double-padded if there's no author set
fix54034Handle date format strings in an iso8601 style format, with a T in them
fix56274Correct SXSSF writing of tables when creating from a template
fix56468Writing a workbook more than once corrupts the file
fix53983Outlook sometimes stores a codepage of ANSI when it means 1252, detect and alias
add56486Add XOR obfuscation/decryption support to HSSF
add56269DateFormat - Rounding of fractionals
fix56482Excel 2007 and later allows for more than 3 Conditional Formatting rules per sheet, so change our hard limit to logging a compatibility warning
addAdd NPOIFS in-place write support, including updating the contents of existing entries
addComplete NPOIFS write support
fix56447NPOIFS fixes for 2+gb files loaded via File (InputStream is limited to 2gb due to ByteBuffer limits)
fix56450Avoid a NPE if a comment has no associated NoteRecord (but we still don't know where it belongs)
fix56437Streaming write support in NPOIFS
fix56315Fix floating point rounding problems with ROUND function
fix55594Fix SXSSF encodings on EBCDIC platforms, by setting the required encoding explicitly
fix56278Support loading .xlsx files with no Styles Table
fix56195Replace System.err in XSSFSheetXMLHandler with proper logging
fix56169Fix NPE during export to XML with xs:all
fix55923Fix compare/sorting of nodes in exported XML
fix55926Handle numeric formula values when exporting to XML
fix55927Handle date types when exporting to XML
addStop being compatible to JDK 1.5, we now require JDK 6
fix56011Use default style if the cell style attribute is not present
addUpgrade third party libs to latest versions: commons-logging, commons-codec, log4j
fix56260Avoid warnings when a TextHeaderAtom is empty and has another straight after, or where there's a TextRulerAtom / MasterTextPropAtom / TextSpecInfoAtom before the Text Chars / Bytes
add56075Add Change Tracking support to XWPF
add56077Add password hash function to HWPF
add56076Add document protection with password support to XWPF
fix55026Support OOXML ContentTypes which include parameters
fix55732PPT can't open, fails with "Couldn't instantiate ... StyleTextProp9Atom"
fix56138HSPF code page strings can be zero length
add53130SXSSF Shared Strings option support
fix55902Mixed fonts issue with Chinese characters (unable to form images from ppt)
add56022XSSF Event Text Extractor header/footer support
fix53282Hyperlink with a non-breaking space throws java.lang.IllegalStateException
fix55802Special Letters not exported correct
addExpose the StyleIndex of HWPF CharacterRuns
fix51891Fix StringIndexOutOfBoundsException : Ole10Native.<init> (parsing word file)

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

Changes#

TypeBugModuleDescription
fix51585WorkbookFactory.create() hangs when creating a workbook
add55873Support for COUNTIFS function
fix55723Inconsistent behavior in HSSFSheet.setAutoFilter() function, also make XSSF work when setAutoFilter is called multiple times
fix51158Writing a workbook multiple times produces unreadable content
fix45776Fix corrupt file problem using TextRun.setText
fix41246AIOOBE with missing notes entries
fix48593Multiple Saves Causes Slide Corruption
add55579Support embedding OLE objects into HSLF
add55818Add encryption support
fix55731Fix StringBuilder logic in DataFormatter.cleanFormatForNumber
fix55730Fix org.apache.poi.ss.usermodel.BuiltinFormats.java for 0x29-0x2c
fix55901Avoid using RMI based exception from PropertySetFactory, as it's not needed nor helpful
fix55850Fix NullPointerException during Xml-extraction from xslx
fix55640Avoid IndexOutOfboundsException when setting nested row grouping
fix55745fix handling of tables in XSSF if there are comments as well
add55560Patch for hiding slides in HSLF
fix53176Fixed auto shapes render problem in pptx files
add55661CellStyle support for get/set Shrink To Fit
fix49237HSSF Row Style XfIndex is 12 not 16 bits of data
fix53475OOXML encrypted document fix for cspname being optional
fix55733XWPFWordExtractor needs to handle .docx files with neither headers nor footers
fix55729DataFormatter should format Error cells, returning the Excel error string
add55612Performance improvement in HSSFCellStyle.getDataFormatString()
add55611Performance improvement in DateUtil.isADateFormat(int, String)
add55578Support embedding OLE1.0 packages in HSSF
add49658Support embedding EMF/WMF pictures in HSSF
fix52400Fix handling some types of TNEF files
fix54400Updating the index in the LinkTable whenever sheets are removed
fix49940Apply patch to avoid XmlValueDisconnectedException when saving a file twice
add55369Add support for collapsing rows in SXSSF
fix55692Give a more helpful error if an Encrypted .xlsx file is passed to HSSF
fix55650Avoid AIOOBE if a non-existant Xfs is requested for a style
fix55658Don't fail in SXSSF if a numeric cell is overwritten with a string
fix55341Constants for HAIR and DOTTED border styles are swapped
addAdd Eclipse project files
add55647When creating a temp file, ensure the name isn't already taken
add54722Extract text from HSLF tables
add55544Support for SHA-512 hashes on OOXML protected documents, as used by Office 2013

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

Changes#

TypeBugModuleDescription
fix53798Add fix for XmlValueDisconnectException during shifting rows
fix54524Fix handling of special case in FormulaShifter
fix50298Fix corruption of Workbook when setting sheet order
fix55419Fix SimpleFractionException when fraction goes to greater than overflow
add54786Add support for quoting in date formatting
fix52233Do not make the XSSFSheet invalid during write()
add55195MultiOperandNumericFunction.collectValue() currently uses concrete final classes but should use interfaces instead
fix55380Endless loop in CellRangeUtil.mergeRanges() when regions are overlapping
add55347 45551Integrate 55292 into XSSF extractors -- extract text from text boxes in xlsx files
fix55361Tika 792 - Avoid CTMarkup NoSuchMethodException stack trace by adding two beans to ooxml-lite"
fix55294 52186Fix column grouping in XSSF.
add55292Enhancements to XSSFSimpleShape (textbox) including: ability to add multiple paragraphs, formatting (read/write) and text extraction.
fix55191Avoid 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
fix54233Some 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
fix54925Avoid issues if the length of a StyleTextPropAtom prop is longer than the parent text
fix54564Fix error message text for a workbook with no sheets when a sheet operation is performed
fix53972Presence of PLV record shouldn't affect HSSF Data Validation
fix55142Not all XWPF SDT blocks need newlines
fix54920XSSFDrawing.createCellComment causes CommentsTable to lose reference to comment in cell A1
fix54982ExtractorFactory does not close files when extracting via OCPPackage.open()
fix54607NullPointerException in XSSFSheet.getTopRow() when the top row is 1
fix54686Improve how DataFormatter handles fractions
fix55066Don't load XWPF Footnotes twice
add54849Controlled 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
fix55053Update License links following ECMA site re-organisation
add49658Support embedding EMF/WMF pictures in HSSF
add55047REPT formula support
add55042COMPLEX formula support
add55041CODE formula support
fix55001Support Unicode text (TextCharsAtom) in HSLF TextShape
fix54682UnhandledDataStructure should sanity check before allocating, not after
add54673Simple wildcard support in HLOOKUP, VOOLKUP, MATCH, COUNTIF
fix54625Register user-defined functions in instance scope instead of static
fix54469Support for financial functions IPMT and PPMT
fix54407Avoid XmlValueDisconnectedException when merging slides
fix54356Support of statistical function SLOPE
fix54403Support of statistical function INTERCEPT
fix54557Don't mis-detect format patterns like .000 as dates
fix54506Support unusual .xls files with a BOOK directory entry (normally it is Workbook)
add54508EDATE formula support
fix53810NPOIFS fix for 0 not -1 padded partially used XBATs
fix54402IfError handling of indirect references
add53966IfError support (from Analysis Toolpak)
fix53650Prevent unreadable content and disallow to overwrite rows from input template in SXSSF
fix54228 53672Fixed XSSF to read cells with missing R attribute
fix54206Ensure that shared formulas are updated when shifting rows in a spreadsheet
fixSynchronize table headers with parent sheet in XSSF
fix54210Fixed rendering text in flipped shapes in PPT2PNG and PPTX2PNG

Version 3.9 (2012-12-03)#

Changes#

TypeBugModuleDescription
fix54188Avoid NPE in PPT2PNG
fix52628Replace System.err info messages with a POILogger
fix54137improved performance of DataFormatter with Fractions
fix54099Ensure that CTHMerge and CTTcBorders go to poi-ooxml-schemas jar
fix54111Fixed extracting text from table cells in HSLF
add52583add support for drop-down lists in doc to html conversion
add52863add workaround for files with broken CHP SPRMs
fix53182Reading combined character styling and direct formatting of a character run
fix52311Conversion to html : Problem in titles number
fix53914TableRow#getTopBorder() return bottom's border
fix53282Avoid exception when parsing OPC relationships with non-breaking spaces
fix54016Avoid exception when parsing workbooks with DConRefRecord in row aggregate
fix54008Fixed Ant build to support build directories with blanks
fix53374Avoid exceptions when parsing hyperlinks of type "javascript://"
fix53404Fixed compatibility bug with modifying xls files created by POI-3.6 and earlier
add53979Support fetching properties of Numbered Lists from PPT files
add53784Partial HSMF support for fixed sized properties
add53943added method processSymbol() to allow converting word symbols
fix53763avoid style mess when using HSSFOptimiser
fix52972preserve leading / trailing spaces in SXSSF
fix53965Fixed XmlValueOutOfRangeException calling getDataValidations for custom validations with XSSFSheet
fix53974Avoid NPE when constructing HSSFWorkbook on Google App Engine
fix53568Fixed null returned by XSSFPicture.getPictureData()
fix53950fixed setForceFormulaRecalculation to reset workbook-level "manual" flag
fix52211avoid unnecessary re-converting content types to US-ASCII, it can cause exceptions on ibm mainframes
fix53568Set shapes anchors in XSSF when reading from existing drawings
addHSSFOptimiser will now also tidy away un-used cell styles, in addition to duplicate styles
fix53493Fixed memory and temporary file leak in SXSSF
fix53780Fixed memory and temporary file leak in SXSSF
fix53380ArrayIndexOutOfBounds Exception parsing word 97 document.
fix53434Subtotal is not return correct value.
fix53642XLS formula evaluation logging
fix53561Unexpected adding of drawings into a workbook
fix53413[GSoC] Improved work with shapes. HSSF
fix53361feature: enhancements in EscherAggregate
fix53302EscherAggregate does not handle Continue records
fix53144First comment not cloned after cloneSheet()
fix53028Broken auto fit row height in the cells with word wrap
fix53010[GSoC2012] Improve drawing support in HSSF
fix52764Unmodified cell comments disappear after HSSFWorkbook.write
fix52300Corrupted File after cloneSheet()
fix52272Inserting images on cloned sheet with images.
fix51796The [EscherClientAnchorRecord] for object (eg: TextBox,Shape) may get lost.
fix51683[HSSF] Improve support for Shapes and Shape Groups
fix51676Using drawingPatriarch.createCellComment(anchor) leads to File error: data may have been lost
fix51675Background images cause problems in HSSF spreadsheet
fix51455It would be really nice to be able to set the background picture of a comment
fix51341Adding Image to Header in Excel Using HSSF
fix51280when we insert a new image to the existing excel file that corrupts the previous images
fix50696File Error: data may have been lost
fix48989If we have a comment but the row is not created we will not be able to get it.
fix48873Comments not saving in XLS files with collapsible columns
fix48654Not able to read Excel (xls) file having drawing objects
fix48590Excel crashes after using removeCellComment methods
fix46444cloning cloned sheet with autofilters corrupts the workbook
fix45129Lost picture in file output after saving with POI
fix47624File Error Data May Have been Lost error while opening commented workbook(excel file)
fix46143setLineStyleColor for comments do not work
fix53699Patch to correct BorderStyle enum positions
add53064Ugly Duckling case study
add53644XLS formula bugfix (CalFieldFunc) + WeekDay addon
add53446Fixed some problems extracting PNGs
fix53205Fixed some parsing errors and encoding issues in HDGF
add53204Improved performance of PageSettingsBlock in HSSF
add53500Getter for repeating rows and columns
fix53369Fixed 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
add48469Updated case study
add53476Support Complex Name in formulas
fix53414properly update sheet dimensions when adding column
addAdd File based constructor to OPCPackage, alongside existing String one (which constructed a File from the string internally)
fix53389Handle formatting General and @ formats even if a locale is prefixed to them
fix53271SXSSFRemoved unconditional asserts in SXSSF
add53025Updated documentation and example on using Data Validations
add53227XSSFCorrected AddDimensionedImage.java to support XSSF/SXSSF
add53058Utility for representing drawings contained in a binary Excel file as a XML tree
add53165HWPFHWPF support for fetching the description (alt text) of a picture
fix48528support negative arguments to the DATE() function
fix53092allow 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
fix53043don't duplicate hyperlink relationships when saving XSSF file
fix53101fixed evaluation of SUM over cell range > 255
fix49529avoid 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
add52928DateFormatConverter: an utility to convert instances of java.text.DateFormat to Excel format patterns
fix52895show SSTIndex instead of XFIndex in LabelSSTRecord.toString()
fix52835Tolerate missing Count and UniqueCount attributes when parsing shared strings table in XSSF eventusermodel
add52818Added implementation for RANK()
fix52682allow setting text with trailing carriage return in HSLF
fix52244use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type
addsupport setting background color of sheet tab in XSSF
add51564support for enforcing fields update in XWPF
add51673support grouping rows in SXSSF
add51780support replacement of content types in OPC packages
fix52784replace ISO control characters with question marks in SXSSF to be consistent with XSSF
add52057updated formula test framework to be aware of recently added Functions
add52574support setting header / footer page margins in HSSF
add52583fixed WorkbookUtil#createSafeSheetName to escape colon
add51710fixed reading shared formulas in XSSF
add52708misc improvements in CellFormat
add52690added a getter for length of encrypted data in Ecma and Agile decryptors
fix52255support adding TIFF,EPS and WPG pictures in OOXML documents
fix52078avoid OutOfMemoryError when rendering grouped pictures in HSLF
fix52745fixed XSSFRichtextString.append to preserve leading / trailing spaces
fix52716tolerate hyperlinks that have neither location nor relation
fix52599avoid duplicate text when rendering slides in HSLF
fix52598respect slide background when rendering slides in HSLF
fix51731fixed painting shape outlines in HSLF
fix52701fixed setting vertical alignment for XSLFTableCell
fix52687fixed merging slides with pictures with associated custom tags
add allow runtime registration of functions in FormulaEvaluator
fix52665When reading from a ZipFileZipEntrySource that has already been closed, give IllegalArgumentException rather than NPE
fix52664MAPIMessage may not always have name chunks when checking for 7 bit encodings
fix52649fixed namespace issue in WordToFoConverter
fix52385avoid truncated array and vector data when reading OLE properties
fix52662CharacterRun NPE fix when fetching symbol fonts, where no fonts are defined
add52658support merging table cells in XSLF
addvalidate row number and column index in SXSSF when creating new rows / cells
fix51498fixed evaluation of blank cells in COUNTIF
add52576support changing external file references in HSSFWorkbook
add49896support external references in FormulaRenderer
fix52527avoid exception when matching shared formula records in HSSF
add52568Added methods to set/get an XWPFRun's text color
add52566Added methods to set/get vertical alignment and color in XWPFTableCell
add52562Added methods to get/set a table row's Can't Split and Repeat Header attributes in XWPF
add52561Added methods to set table inside borders and cell margins in XWPF
add52569Support DConRefRecord in HSSF
add52575added an option to ignore missing workbook references in formula evaluator
addValidate address of hyperlinks in XSSF
fix52540Relax the M4.1 constraint on reading OOXML files, as some Office produced ones do have 2 Core Properties, despite the specification explicitly forbidding this
add52462Added implementation for SUMIFS()
addPOIXMLPropertiesTextExtractor support for extracting custom OOXML properties as text
fix52449Support writing XWPF documents with glossaries (Glossaries are not yet supported, but can now be written out again without changes)
fix52446Handle files which have been truncated by a few bytes in NPropertyTable
fix52438Update CellDateFormatter to handle times without seconds
add52389Support ?/? as well as #/# fractions, and tighten DataFormatter rules for fraction matching
add52200Updated XWPF table example code
add52378Support for WORKDAY and NETWORKDAYS functions
add52349Merge the logic between the TEXT function and DataFormatter
fix52349Correctly support excel style date format strings in the TEXT function
fix52369XSSFExcelExtractor should format numeric cells based on the format strings applied to them
fix52369Event based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler
fix52348Avoid exception when creating cell style in a workbook that has an empty xf table
fix52219fixed XSSFSimpleShape to set rich text attributes from XSSFRichtextString
fix52314enhanced SheetUtil.getColumnWidth

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

Changes#

TypeBugModuleDescription
fix52204Deprecated XSSFWorkbook(String path) constructor because it does not close underlying .zip file
fix46288fixed refcount of Fill pictures in HSLF
add51961support compression of temp files in SXSSF
add52268support cloning sheets with drawings in XSSF
add52285Support XWPF smart tags text in Paragraphs
fix51875More 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
fix52209fixed inserting multiple pictures in XSLF
fix51803fixed HSLF TextExtractor to extract content from master slide
fix52190null check on XWPF setFontFamily
fix52062ensure that temporary files in SXSSF are deleted
fix50936Exception parsing MS Word 8.0 file (as duplicate of 47958)
fix47958ArrayIndexOutOfBoundsException from PicturesTable.getAllPictures() during Escher tree walk
fix51944PAPFormattedDiskPage.getPAPX - IndexOutOfBounds
fix52032HWPF - ArrayIndexOutOfBoundsException with no stack trace (broken after revision 1178063)
addsupport for converting pptx files into images with a PPTX2PNG tool
add52050Support for the Excel RATE function
fix51566HSLF fix for finishing parsing the picture stream on the first non-valid type
fix51974Avoid HWPF issue when identifying the picture type
fix52035Fix signed issue with very large word 6 files
fix51949Avoid NPE on double close of ZipFileZipEntrySource
fix51950XWPF fix for footnotes not always being present in a document
fix51963Correct AreaReference handling of references containing a sheet name which includes a comma
fix51955XSSFReader supplied StylesTables need to have the theme data available
fix51716Removed incorrect assert in SXSSFSheet#getSXSSFSheet
fix51834Opening and Writing .doc file results in corrupt document
fix51902Picture.fillRawImageContent - ArrayIndexOutOfBoundsException (duplicate)
fix51890ArrayIndexOutOfBounds ExceptionPicture.fillRawImageContent
addAllow the passing of a File object to WorkbookFactory.create, which permits lower memory processing than the InputStream version
fix51873update HSMF to ignore Outlook 2002 Olk10SideProp entries, which don't behave like normal chunks
fix51850support creating comments in XSSF on an earlier slide when later ones already have them
add51804optionally 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
fix51832handle XLS files where the WRITEPROTECT record precedes the FILEPASS one, rather than following as normal
fix51809correct GTE handling in COUNTIF
addAdd HWPF API to update range text and delete bookmarks
addHWPF Bookmarks tables are correctly updated on text updates
add51670avoid LeftoverDataException when reading .xls files with invalid LabelRecords
add51196prevent NPE in XWPFPicture.getPictureData()
add51771prevent NPE when getting object data from OLEShape in HSLF
add51196more progress with Chart APi in XSSF
fix51785Allow XSSF setForceFormulaRecalculation to work with the minimal ooxml-schemas jar
fix51772IllegalArgumentException 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
fix51678Extracting text from Bug51524.zip is slow
fix51671HWPFDocument.write based on NPOIFSFileSystem throws a NullPointerException
addsupport for tables and hyperlinks in XSLF
fix51535correct signed vs unsigned short reading in NDocumentInputStream
add51634support SXSSF streaming from templates
addinitial support for XSLF usermodel API
fix51187fixed OPCPackage to correctly handle self references
fix51635Improved performance of XSSFSheet#write
fix47731Word Extractor considers text copied from some website as an embedded object
addAdd Word-to-Text converter and use it as replacement for WordExtractor
fix51604replace 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
fix50209Fixed evaluation of Subtotals to ignore nested subtotals
fix44431HWPFDocument.write destroys fields
fix50401fixed EscherProperty to return property name instead of 'unknown' for complex properties
addInitial support for endnotes and footnotes in HWPF
fix51470avoid exception when cloning XSSF sheets with background images
fix51481Fixed autofilters in HSSF to avoid warnings in Excel 2007
fix51533Avoid 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
fix46250Fixed cloning worksheets with images
fix51524PapBinTable constructor is slow (regression)
fix51514allow HSSFObjectData to work with both POIFS and NPOIFS
fix51514avoid NPE when copying nodes from one HSSF workbook to a new one, when opened from NPOIFS
fix51504avoid NPE when DefaultRowHeight or DefaultColumnWidth records are missing
fix51502Correct Subtotal function javadoc entry
addSupport for hyperlinks in SXSSF
fix49933Word 6/95 documents with sections cause ArrayIndexOutOfBoundsException
add51469XSSF support for row styles, to match existing HSSF functionality
fix51476Correct XSSF cell formatting in HTML export
add51486XWPF support for adding new footnotes
fix48065Problems with save output of HWPF (losing formatting)
fix47563Exception when working with table
fix47287StringIndexOutOfBoundsException in CharacterRun.replaceText()
fix46817Regression: 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.
fix51474SXSSF handling for null strings
fix48294Fixed HSSFWorkbook.setSheetOrder() to respect inter-sheet references
fix51448Avoid exception when evaluating workbooks with more than 256 sheets
fix51458Correct BitField wrapping when setting large values
add51460Improve HSSF performance when loading very long rows, by switching the CellValue array to an iterator
fix51444Prevent corrupted output when saving files created by LibreOffice 3.3
add51422Support using RecalcIdRecord to trigger a full formula recalculation on load
add50474Example demonstrating how to update Excel workbook embedded in a WordprocessingML document
fix51431Avoid IndexOutOfBoundException when removing freeze panes in XSSF
fix48877Fixed XSSFRichTextString to respect leading and trailing line breaks
fix49564Fixed default behaviour of XSSFCellStyle.getLocked()
fix48314Fixed setting column and row breaks in XSSF
add51424Ignore exceptions in ParagraphSprmUncompressor
fix51415Fixed Workbook.createSheet(sheetName) to truncate names longer than 31 characters
fix51332Fixed internal IDs of shapes generated by HSSFPatriarch when there are more than 1023 drawing objects
fix48408Improved documentation for Sheet.setColumnWidth
add51390Added handling of additional properties to HWPF ParagraphSprmCompressor
add51389Support for sprmPJc paragraph SPRM in HWPF
fix48469New Case Study for POI web site
fix50681Avoid exceptions in HSSFDataFormat.getDataFormatString()
fix50681Fixed autosizing columns beyond 255 character limit
fix51374Fixed incorrect setting of lastPrinted OOXML core property
add51351Word to XSL-FO converter
fix50458Fixed missing shapeId in XSSF drawings
fix51339Fixed arithmetic rounding in formula evaluation
add51356Support autoSizeColumn in SXSSF
add51335Parse picture goal and crop sizes in HWPF
add51305Add sprmTCellPaddingDefault support in HWPF
add51265Enhanced Handling of Picture Parts in XWPF
add51292Additional HWPF Table Cell Descriptor values

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

Changes#

TypeBugModuleDescription
fix51098Correctly calculate image width/height, if image fits into one cell
fix47147Correct extra paragraphs from XWPF Table Cells
add51188Support for getting and setting XWPF zoom settings
add51134Support for adding Numbering and Styles to a XWPF document that doesn't already have them
fix51273Formula Value Cache fix for repeated evaluations
add51171Improved performance of SharedValueManager
fix51236XSSF set colour support for black/white to match getter
add51196Initial support for Spreadsheet Chart API
addAdd support for OOXML Agile Encryption
add51160Initial version of SXSSF, a low memory footprint API to produce xlsx files
fix51171Improved performance of opening large .xls files
add51172Add XWPF support for GIF pictures
addNPOIFS Mini Streams now support extending the underlying big block stream to fit more data
fix51148XWPFDocument now properly tracks paragraphs and tables when adding/removing them
fix51153Correct sizing of LbsDataSubRecord with unused padding fields
fix51143NameCommentRecord correction for writing non ASCII strings
fix51112Correct XWPFTable tracking of new rows
fix51113Correct XWPFParagraph tracking of inserted runs
fix51111Correct XWPFParagraph tracking of new runs
fix51115Handle DataFormatter escaping of "." in the same way as "-" and "/"
fix51100Fix IOUtils issue for NPOIFS reading from an InputStream where every block is full
fix50956Correct 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
add49765Support for adding a picture to a XSSFRun
fixRename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features
fix51061Correct 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.
fix50884XSSF 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
add50967Support for continued ExtSSTRecords
add48968Support 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
fix50841Improved SpreadSheet DataFormatter to handle scientific notation, invalid dates and format spacers
fix49381Correct createFreezePane in XSSF, so that the left row/column matches the documentation + HSSF
fix49253When setting repeating rows and columns for XSSF, don't break the print settings if they were already there
fix49219ExternalNameRecord support for DDE Link entries without an operation
fix50846More XSSFColor theme improvements, this time for Cell Borders
fix50939ChartEndObjectRecord 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
fix50313support for getting HWPFDocument fields
fix50912fixed setting named styles to HSSFCells
fix50779fixed RecordFormatException when reading unicode strings with photenic data
fix50718More helpful error message when you try to create a CellReference with #REF!
fix50784XSSFColors return by XSSFFont now have theme information applied to them
fix50846Improve how XSSFColor inherits from Themes
fix50847XSSFFont now accepts the full range of Charsets from FontChartset
fix50786Speed up calls to HSSFColor.getIndexHash() by returning a cached, unmodifiable Map. HSSFColor.getModifiableIndexHash() provides access to the old (slow but modifiable) functionality
fix47100Change related formulas and named ranges when XSSFWorkbook.setSheetName is called

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

Changes#

TypeBugModuleDescription
add50610Ant tasks for running POI against a workbook
add32903Correct XBAT chaining explanation in /poifs/fileformat.html
add50829Support for getting the tables associated with a XSSFSheet
fix50299More XSSFColor updates for ARGB vs RGB
fix50581Use stax:stax-api instead of org.apache.geronimo.specs:geronimo-stax-api_1.0_spec
fix50786Fix XSSFColor to fetch the RGB values of old-style indexed colours
fix50299Fix XSSFColor fetching of white and black background themes
fix50795Avoid NPE from xmlbeans when moving XSSF Comments from one cell to another
fix46664When creating HSSF Print Areas, ensure the named range is reference based not value based
fix50756When 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
fix50539Better fix for html-style br tags (invalid XML) inside XSSF documents
add49928allow overridden built-in formats in HSSFCellStyle
add50607Added implementation for CLEAN(), CHAR() and ADDRESS()
add50587Improved documentation on user-defined functions
addInside ExtractorFactory, support finding embedded OOXML documents and providing extractors for them
addPartial HDGF LZW compression support
add50244Support for continued NameRecords
fix50416Correct shifting of the first or last row in a sheet by multiple rows
fix50440Support 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
add48539Added implementation for MROUND(), VAR() and VARP()
add50446Code cleanup and optimizations to keep some IDE quiet
add50437Support passing ranges to NPV()
add50409Added implementation for IRR()
add47405Improved performance of RowRecordsAggregate.getStartRowNumberForBlock / getEndRowNumberForBlock
fix50315Avoid crashing Excel when sorting XSSFSheet autofilter
add50076Allow access from XSSFReader to sheet comments and headers/footers
add50076Refactor XSSFEventBasedExcelExtractor to make it easier for you to have control over outputting the cell contents
fix50258avoid corruption of XSSFWorkbook after applying XSSFRichTextRun#applyFont
fix50154Allow white spaces and unicode in OPC relationship targets
fix50113Remove cell from Calculation Chain after setting cell type to blank
fix49966Ensure that XSSFRow#removeCell clears calculation chain entries
fix50096Fixed evaluation of cell references with column index greater than 255
fix49761Tolerate Double.NaN when reading .xls files
fix50211Use cached formula result when auto-sizing formula cells
fix50118OLE2 does allow a directory with an empty name, so support this in POIFS
fix50119avoid 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
fix50075avoid NPE in ListLevel.getNumberText() when numberText is null
fix50067marked commons-logging and log4j as optional dependencies in POI poms
add49928allow overridden built-in formats in XSSFCellStyle
fix49919support for BorderCode in HWPF
fix49908support for processing of symbols in HWPF
fix50022support for retrieving pictures from HSSF workbooks
fix50020Avoid IllegalStateException when creating Data validation in sheet with macro
fix50033Improved rounding in MOD
addGenerate SHA1 hashes of distribution files, alongside existing MD5 ones

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

Changes#

TypeBugModuleDescription
fix48325If a HSSF header or footer lacks left/right/centre information, assume it is a centre one
fix49966Correctly remove calcChain entries for XSSF cells that stop holding formulas
add47582XSSFCellStyle support for creating a style in one workbook based on a style from a different one
fix49931Avoid concurrency problems when re-ordering multiple HSSF header records for a PageSettingsBlock
fix49765Fix XWPFDocument.addPicture so that it correctly sets up relationships
fix48018Improve HWPF handling of lists in documents read and then saved, by preserving order better
fix49820Fix HWPF paragraph levels, so that outline levels can be properly fetched
fix47271Avoid infinite loops on broken HWPF documents with a corrupt CHP style with a parent of itself
fix49936Handle HWPF documents with problematic HeaderStories better
fix49933Support sections in Word 6 and Word 95 files (HWPFOldDocument)
fix49941Correctly 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
fix49872avoid exception in XSSFFormulaEvaluator.evaluateInCell when evaluating shared formulas
fix49895avoid corruption of XSSFWorkbook after removing all merged cells from sheet
fix49907fixed 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
fix49887allow sheet names longer than 31 chars in XSSF, enforce name uniqueness on the first 31 chars
fix49878improved API for hiding sheets
fix49875fixed XSSFWorkbook.createSheet to throw exception if sheet name begins or ends with a single quote (')
fix49873fixed XSSFFormulaEvaluator to support blank cells
fix49850added a getter for _iStartAt in ListFormatOverrideLevel
fix49761change cell type to error when setting Double.NaN or Infinities
fix49833ensure that CTNumPr is included in poi-ooxml-schemas.jar
fix49841fixed LEFT and RIGHT to return #VALUE! when called with a negative operand
fix49783fixed evaluation of XSSF workbooks containing formulas with reference errors (#REF!)
fix49751fixed fetching names of user defined styles in HSSFCellStyle.getUserStyleName()
add48900support for protecting a XSSF workbook
fix49725fixed FormulaParser to correctly process defined names with underscore
add48526added implementation for RANDBETWEEN()
fix49725avoid exception in OperandResolver.parseDouble when input is minus ("-")
fix49723fixed OperandResolver to correctly handle inputs with leading decimal place
addinitial support for Excel autofilter

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

Changes#

TypeBugModuleDescription
add47990Support for .msg attachments within a MAPIMessage .msg
fixImprove handling and warnings when closing OPCPackage objects
fix49702Correct XSSFWorkbook.getNumCellStyles to check the right styles list
add49690Add WorkbookUtil, which provides a way of generating valid sheet names
fix49694Use DataFormatter when autosizing columns, to better match the real display width of formatted cells
add49441Allow overriding and guessing of HSMF non-unicode string encodings
fix49689Allow the setting of user style names on newly created HSSF cell styles
addMake it easier to tell which content types each POIXMLTextExtractor handles
fix49649Added clone support for UserSView* and Feat* families of records
fix49653Support for escaped unicode characters in Shared String Table
fix49579prevent ArrayIndexOutOfBoundException in UnknownEscherRecord
fix49593preserve leading and trailing white spaces in XWPFRun
add49455Insert the content of fldSimple fields into the XWPFWordTextExtractor output
fix49640Fixed parsing formulas containing defined names beginning with an underscore
add49538Added implementation for POISSON()
add49524Support for setting cell text to be vertically rotated, via style.setRotation(0xff)
fix49609Case insensitive matching of OOXML part names
add49581Ability to add, modify and remove series from HSSF Charts
add49185Support for HSSFNames where the comment is stored in a NameCommentRecord
fix49599correct 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
add49508allow the addition of paragraphs to xwpf table cells
fix49446don'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
fix49432lazy 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
add48574further xwpf support for tables, paragraphs, including enhanced support for adding new ones
add48245tweak hwpf table cell detection to work across more files
add48996initial support for external name references in hssf formula evaluation
fix46664fix up tab ids when adding new sheets, so that print areas don't end up invalid
fix45269improve replacetext on hwpf ranges
fix47815correct documentation on what happens when you request a string from a non-string formula cell
fix49386avoid npe when extracting ooxml file properties which are dates
fix49377only call decimalformat.setroundingmode on java 1.6 - it's needed to match excel's rendering of numbers
fix49378correct 1.6ism
addparse the hsmf headers chunk if present, and use it to find dates in text extraction if needed
fix48494detect and support time formats like hh:mm;hh:mm
fix48494have excelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
fix48494have eventbasedexcelextractor make use of hssfdataformatter, so that numbers and dates come out closer to how excel would render them
fix49096add 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)
fix48872allow dateformatter.formatrawcellcontents to handle 1904 as well as 1900 dates
fix48872handle mmmmm and elapsed time formatting rules in dataformatter
fix48872handle zero formatting rules, and better color detection in dataformatter
fix48872support for more kinds of formatting in dataformatter
fix43161fixed construction of the dib picture header
add49311initial support for reading aes-encrypted/write-protected ooxml files
fix48718make the creation of multiple, un-modified fonts in a row in xssf match the old hssf behaviour
fix44916allow access to the hssfpatriarch from hssfsheet once created
add48779allow you to get straight from a cellstyle to a color, irrespective of if the color is indexed or inline-defined
add48924allow access of the hwpf dateandtime underlying date values
add48926initial support for the hwpf revision marks authors list
fix49160ensure that ctdigsigblob is included in poi-ooxml jar
fix49189detect w:tab and w:cr entries in xwpf paragraphs, even when the xsd is silly and maps them to ctempty
fix49273correct handling for font character sets with indicies greater than 127
add49334track the valuerangerecords of charts in hssfchart, to allow the basic axis operations
add49242track the linkdatarecords of charts in hssfchart
addimproved performance of xssfworkbook.write
fix48846avoid npe when finding cell comments
fix49325ensure that ctphoneticpr is included in poi-ooxml jar
fix49191fixed tests failing in non-english locales
add48432support for xssf themes
add49244support for data validation for ooxml format
add49066worksheet/cell formatting, with view and html converter
fix49020workaround excel outputting invalid xml in button definitions by not closing br tags
fix49050improve performance of abstractescherholderrecord when there are lots of continue records
fix49194correct text size limit for ooxml .xlsx files
fix49254fix cellutils.setfont to use the correct type internally
fix49139properly support 4k big block size in poifs
fix48936avoid writing malformed cdata blocks in sharedstrings.xml
add49026added implementation for text()
add49025added implementation for trunc()
fix49147properly close internal inputstream in extractorfactory#createextractor(file)
fix49138fixed locale-sensitive formatters in packagepropertiespart
fix49153ensure that ctvectorvariant is included in poi-ooxml-schemas.jar
add49146added accessors to coreproperties.keywords
fix48916propagate parent to parent-aware records decoded from escher
fix48485add 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
fix43670improve hdgf chunkv11 separator detection, and short string detection, to solve the "negative length of chunkheader" problem
add48617optionally 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
fix48544avoid failures in xlsx2csv when shared string table is missing
fix48571properly close all io streams created in opcpackage
fix48572always 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
fix48425improved performance of dateutil.iscelldateformatted()
fix47215fixed interfaceendrecord to tolerate unexpected record contents
fix48415improved javadoc on hsspicture.resize()
addadded ant target to install artifacts in local repository
fix48026fixed pagesettingsblock to allow multiple headerfooterrecord records
fix48202fixed cellrangeutil.mergecellranges to work for adjacent cell regions
fix48339fixed externalnamerecord to properly distinguish dde data from ole data items
fix47920allow editing workbooks embedded into powerpoint files
add48343added implementation of subtotal function
fixswitch to compiling the ooxml schemas for java 1.5

Version 3.6 (2009-12-14)#

Changes#

TypeBugModuleDescription
fix48332fixed xssfsheet autosizecolumn() to tolerate empty richtextstring
fix48332fixed columninforecord to tolerate missing reserved field
fix47701fixed recordformatexception when reading list subrecords (lbsdatasubrecord)
add memory usage optimization in xssf - avoid creating parentless xml beans
fix47188avoid corruption of workbook when adding cell comments
fix48106improved work with cell comments in xssf
addadd support for creating summaryinformation and documentsummaryinformation properties on poidocuments that don't have them, via poidocument.createinformationproperties()
fix48180be more forgiving of short chart records, which skip some unused fields
fix48274fix erronious wrapping of byte colours in hssfpalette.findsimilarcolor
fix48269fix fetching of error codes from xssf formula cells
fix48229fixed javadoc for hssfsheet.setcolumnwidth and xssfsheet setcolumnwidth
fix47757fixed xlsx2csv to avoid exception when processing cells with multiple "t" elements
add48195short-circuit evaluation of if() and choose()
add48161support for text extraction from ppt master slides
add47970added a method to set arabic mode in hssfsheet
fix48134release system resources when using picture.resize()
fix48087avoid npe in xssfchartsheet when calling methods of the superclass
fix48038handle reading hwpf stylesheets from non zero offsets
addwhen running the "compile-ooxml-xsds" ant task, also generate the source jar for the ooxml schemas
fix45672improve handling by missingrecordawarehssflistener of records that cover multiple cells (mulblankrecord and mulrkrecord)
fix48096relaxed validation check in recalcidrecord
fix48085improved error checking in blockallocationtablereader to trap unreasonable field values
fix47924fixed logic for matching cells and comments in hssfcell.getcellcomment()
add47942added implementation of protection features to xlsx and docx files
fix48070preserve leading and trailing white spaces in xssfrichtextstring
add48044added implementation for countblank function
fix48036added intersectioneval to allow evaluation of the intersection formula operator
fix47999avoid un-needed call to the jvm garbage collector when working on ooxml opc packages
add47922added example hsmf application that converts a .msg file to text and extracts attachments
add47903added ant target to compile scratchpad examples
add47839improved api for ooxml custom properties
fix47862fixed xssfsheet.setcolumnwidth to handle columns included in a column span
fix47804fixed xssfsheet.setcolumnhidden to handle columns included in a column span
fix47889fixed xssfcell.getstringcellvalue() to properly handle cached formula results

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

Changes#

TypeBugModuleDescription
fix47747fixed logic for locating shared formula records
add47809improved work with user-defined functions
fix47581fixed xssfsheet.setcolumnwidth to produce xml compatible with mac excel 2008
fix47734removed unnecessary svn:executable flag from files in svn trunk
fix47543added javadoc how to avoid excel crash when creating too many hssfrichtextstring cells
fix47813fixed problems with xssfworkbook.removesheetat when workbook contains chart
fix47737adjust sheet indices of named ranges when deleting sheets
fix47770built-in positive formats don't need starting '('
add47771added method setfunction(boolean) for defined names
add47768implementation of excel "days360" and "npv" functions
fix47751do not allow hssf's cell text longer than 32,767 characters
add47757added an example demonstrating how to convert an xlsx workbook to csv
fix44770fixed ppt parser to tolerate comment2000 containers with missing comment text
fix47773fix for extraction paragraphs and sections from headers/footers with xwpfwordextractor
fix47727support for extraction of header / footer images in hwpf
fixmoved all test data to a top-level directory
add47721Added implementation for INDIRECT()
add45583Avoid exception when reading ClipboardData packet in OLE property sets
add47652Added support for reading encrypted workbooks
add47604Implementation of an XML to XLSX Importer using Custom XML Mapping
fix47620Avoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns
fix47606Fixed XSSFCell to correctly parse column indexes greater than 702 (ZZ)
fix47598Improved formula evaluator number comparison
fix47571Fixed XWPFWordExtractor to extract inserted/deleted text
fix47548Fixed RecordFactoryInputStream to properly read continued DrawingRecords
fix46419Fixed compatibility issue with OpenOffice 3.0
fix47559 Fixed compatibility issue with Excel 2008 Mac sp2. Please see the HSSF+XSSF project page for more information.
fix47540Fix for saving custom and extended OOXML properties
fix47535Fixed WordExtractor to tolerate files with empty footnote block
fix47517Fixed ExtractorFactory to support .xltx and .dotx files
add45556Support for extraction of footnotes from docx files
add45555Support for extraction of endnotes from docx files
add47520Initial support for custom XML mappings in XSSF
fix47460Fixed NPE when retrieving core properties from a newly created workbook
fix47498Fixed HyperlinkRecord to properly handle URL monikers
fix47504Fixed XSSFWorkbook to read files with hyperlinks to document locations
fix47479Fix BoolErrRecord to tolerate incorrect format written by OOO
fix47448Allow HSSFEventFactory to handle non-zero padding at the end of the workbook stream
add47456Support for getting OLE object data in PowerPointExtractor
fix47411Explicitly set the 1900 date system when creating XSSF workbooks
add47400Support for text extraction of footnotes, endnotes and comments in HWPF
fix47415Fixed PageSettingsBlock to allow multiple PLS records
fix47412Fixed concurrency issue with EscherProperties.initProps()
fix47143Fixed OOM in HSSFWorkbook#getAllPictures when reading .xls files containing metafiles
addAdded implementation for ISNA()
add46793fixed SimpleShape#getLineWidth to handle default line width
add47356removed unused private fields in HWPF BorderCode
add47355Improved HWPF TableCell to expose TableCellDescriptor
fix46610Improved HWPF to better handle unicode
fix47261Fixed SlideShow#removeSlide to remove references to Notes
fix47375Fixed HSSFHyperlink to correctly set inter-sheet and file links
fix47384Fixed ExternalNameRecord to handle unicode names
fix47372Fixed locale-sensitive unit tests to pass when running on non-US locale

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

Changes#

TypeBugModuleDescription
fix47363Fixed HSSFSheet to allow addition of data validations after sheet protection
fix47294Fixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes
fix47309Fixed logic in HSSFCell.getCellComment to handle sheets with more than 65536 comments
fix46776Added clone() method to MulBlankRecord to fix crash in Sheet.cloneSheet()
fix47244Fixed HSSFSheet to handle missing header / footer records
fix47312Fixed formula parser to properly reject cell references with a '0' row component
fix47199Fixed PageSettingsBlock/Sheet to tolerate margin records after other non-PSB records
fix47069Fixed HSSFSheet#getFirstRowNum and HSSFSheet#getLastRowNum to return correct values after removal of all rows
fix47278Fixed XSSFCell to avoid generating xsi:nil entries in shared string table
fix47206Fixed XSSFCell to properly read inline strings
add47250Fixed FontRecord to expect unicode flags even when name length is zero
add47198Fixed formula evaluator comparison of -0.0 and 0.0
add47229Fixed ExternalNameRecord to handle DDE links
add46287Control of header and footer extraction in ExcelExtractor / XSSFExcelExtractor
add46554New ant target "jar-examples"
add46161Support in XSSF for setGroupColumnCollapsed and setGroupRowCollapsed
add46806Allow columns greater than 255 and rows greater than 0x100000 in XSSF formulas
add41711Base class for "old version" exceptions, and new HSLF detection + use of old versions exception
fix47179Fix string encoding issues with HSMF chunks on non-windows platforms
add47183Attachment support for HSMF
fix47154Handle the cell format @ as the same as General
fix47048Fixed evaluation of defined names with the 'complex' flag set
fix46953More tweaks to PageSettingsBlock parsing logic in Sheet constructor
fix47089Fixed XSSFWorkbook.createSheet to properly increment sheetId
fix46568Fixed XSLFPowerPointExtractor to properly process line breaks
fix39056Fixed POIFSFileSystem to set CLSID of root when constructing instances from InputStream
fix47054Fixed cloneStyleFrom to avoid exception when cloning styles of the same family
fix46186Fixed Sheet to read GutsRecord in the Sheet(RecordStream rs)
fix46714Automatically call sheet.setAlternativeExpression when sheet.setRowSumsBelow is called
fix46279Allow 255 arguments for excel functions in XSSF
fix47028Fixed XSSFCell to preserve cell style when cell value is set to blank
fix47026Avoid NPE in XSSFCell.setCellType() when workbook does not have SST
fix46987Allow RecordFactory to handle non-zero padding at the end of the workbook stream
fix47034Fix reading the name of a NameRecord when the name is very long
fix47001Fixed WriteAccessRecord and LinkTable to handle unusual format written by Google Docs
fix46973Fixed defined names to behave better when refersToFormula is unset
fix46832Allow merged regions with columns greater than 255 or rows bigger than 65536 in XSSF
fix46951Fixed formula parser to better handle range operators and whole row/column refs.
fix46948Fixed evaluation of range operator to allow for area-ref operands
fix46918Fixed ExtendedPivotTableViewFieldsRecord(SXVDEX) to allow shorter format
fix46898Fixed formula evaluator to not cache intermediate circular-reference error results
fix46917Fixed PageItemRecord(SXPI) to allow multiple field infos
fix46904Fix POIFS issue with duplicate block 0 references on very old BIFF5/BIFF7 files
fix46840PageSettingsBlock should include HEADERFOOTER record
fix46885update cell type when setting cached formula result in XSSFCell
addadded modifiers for anchor type to XSSFClientAnchor
add46772support built-in data formats in XSSFDataFormat
fix46719fixed XSSFSheet.shiftRows to correctly preserve row heights
fix46715preserve custom column widths across re-serialization of XSSFWorkbook
add46703added setDisplayZeros / isDisplayZeros to common interface org.apache.poi.ss.usermodel.Sheet
add46708added 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
add46660added Workbook getHidden() and setHidden(boolean)
fix46693Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX
fix46627Fixed offset of added images if Pictures stream contains pictures with zero length

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

Changes#

TypeBugModuleDescription
fix46536When shifting rows, update formulas on that sheet to point to the new location of those rows
fix46663Fixed XSSFSheet.shiftRows to properly update references of the shifted cells
fix46535Remove reference from calculation chain when a formula is deleted
fix46654HSSFRow/RowRecord to properly update cell boundary indexes
fix46643Fixed formula parser to encode range operator with tMemFunc
fix46647Fixed COUNTIF NE operator and other special cases involving type conversion
add46635Added a method to remove slides
fix40520Fixed HSSFFont.applyFont() to properly apply font to overlapping regions
fix46545Fixed ObjRecord to ignore excessive padding written by previous POI versions
fix46613Fixed evaluator to perform case insensitive string comparisons
add46544command line interface for hssf ExcelExtractor
fix46547Allow addition of conditional formatting after data validation
fix46548Page Settings Block fixes - continued PLS records and PSB in sheet sub-streams
add46523added implementation for SUMIF function
addSupport for reading HSSF column styles
fixHook up POIXMLTextExtractor.getMetadataTextExtractor() to the already written POIXMLPropertiesTextExtractor
fix46472Avoid NPE in HPSFPropertiesExtractor when no properties exist
fix46479fixed bugs related to cached formula values and HSSFFormulaEvaluator.evaluateInCell()
add45031added implementation for CHOOSE() function
fix46361resolve licensing issues around the HDGF resource file, chunks_parse_cmds.tbl
add46410added implementation for TIME() function
add46320added HSSFPictureData.getFormat()
fix46445fixed HSSFSheet.shiftRow to move hyperlinks
fixfixed formula parser to correctly resolve sheet-level names
fix46433support for shared formulas in XSSF
add46299support for carriage return and line break in XWPFRun
add46300support for line spacing in XWPFParagraph
add46308initial support for creation of XWPFTable
addAdded getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()
fix46385(also patch 46362) fix serialization of StyleRecord with unicode name
fix46368Fix HSSFRichTextRun and strings longer than 32768 characters
addSupport sheet-level names
fixFixed XSSFCell to properly handle cell references with column numbers up to XFD
fix44914Fixed warning message "WARN. Unread n bytes of record 0xNN"
add46156Improved number to text conversion to be closer to that of Excel
fix46312Fixed ValueRecordsAggregate to handle removal of new empty row
add46269Improved error message when attempting to read BIFF2 file
fix46206Fixed Sheet to tolerate missing DIMENSION records
add46301added pivot table records: SXDI, SXVDEX, SXPI, SXIDSTM, SXVIEW, SXVD, SXVS, et al
fix46280Fixed RowRecordsAggregate etc to properly skip PivotTable records

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

Changes#

TypeBugModuleDescription
fix46213Fixed FormulaRecordAggregate to gracefully ignore extra StringRecords
fix46174Fixed HSSFName to handle general formulas (not just area references)
add46189added chart records: CHARTFRTINFO, STARTBLOCK, ENDBLOCK, STARTOBJECT, ENDOBJECT, and CATLAB
fix46199More tweaks to EmbeddedObjectRefSubRecord
addChanges to formula evaluation allowing for reduced memory usage
fix45290Support odd files where the POIFS header block comes after the data blocks, and is on the data blocks list
fix46184More odd escaped date formats
addInclude the sheet number in the output of XLS2CSVmra
fix46043correctly write out HPSF properties with HWPF
add45973added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF
fix46182fixed Slideshow.readPictures() to skip pictures with invalid headers
fix46137Handle odd files with a ContinueRecord after EOFRecord
fixFixed problem with linking shared formulas when ranges overlap
fix45784More fixes to SeriesTextRecord
fix46033fixed TableCell to correctly set text type
fix46122fixed Picture.draw to skip rendering if picture data was not found
fix15716memory usage optimisation - converted Ptg arrays into Formula objects
add46065added implementation for VALUE function
add45966added implementation for FIND function
fix45778fixed ObjRecord to read ftLbsData properly
fix46053fixed evaluation cache dependency analysis when changing blank cells

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

Changes#

TypeBugModuleDescription
fix45518Fix up ColumnHelper to output valid col tags, by making 1 based and 0 based bits clearer, and using the right ones
fix45676Handle 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
add45539Improve XWPFWordExtractor to extract headers and footers
fixImprove how XWPF handles paragraph text
addSupport in XWPF handles headers and footers
add45592Improve XWPF text extraction to include tables always, and picture text where possible
add45545Improve XSLF usermodel support, and include XSLF comments in extracted text
add45540Fix XSSF header and footer support, and include headers and footers in the output of XSSFExcelExtractor
add45431Support 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
add45431Partial support for .xlm files. Not quite enough for excel to load them though
fix45430Correct named range sheet reporting when no local sheet id is given in the xml

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

Changes#

TypeBugModuleDescription
add45018Support 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
fix45866allowed for change of unicode compression across Continue records
fix45964support for link formulas in Text Objects
fix43354support for evaluating formulas with missing args
fix45912fixed ArrayIndexOutOfBoundsException in EmbeddedObjectRefSubRecord
fix45889fixed ArrayIndexOutOfBoundsException when constructing HSLF Table with a single row
addInitial support for creating hyperlinks in HSLF
fix45876fixed BoundSheetRecord to allow sheet names longer than 31 chars
add45890fixed HSSFSheet.shiftRows to also update conditional formats
add45865modified Formula Parser/Evaluator to handle cross-worksheet formulas
addOptimised the FormulaEvaluator to take cell dependencies into account
add16936Initial 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
fix45784Support long chart titles in SeriesTextRecords
fix45777Throw an exception if HSSF Footer or Header is attempted to be set too long, rather than having it break during writing out
add45844Additional diagnostics for HSLF SlideShowRecordDumper
fix45829HSSFPicture.getImageDimension() failed when DPI of image is zero
fix45815Bit mask values in StyleTextPropAtom were not preserved across read-write
add45814Specify RecordType for slide show Handout (4041)
fix45805Fixed 16-bit signed/unsigned bug in HSSFSheet.getColWidth etc
fix45780Fixed HSSFSheet.shiftRows to also update Area refs
fix45804Update 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
fix45639Fixed AIOOBE due to bad index logic in ColumnInfoRecordsAggregate
fixFixed special cases of INDEX function (single column/single row, errors)
add45761Support for Very Hidden excel sheets in HSSF
add45738Initial HWPF support for Office Art Shapes
fix45720Fixed HSSFWorkbook.cloneSheet to correctly clone sheets with drawings
fix45728Fix for SlideShow.reorderSlide in HSLF
addInitial support for embedded movies and controls in HSLF
fix45358signed/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 44958preserve 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
fix45699Fix RowRecordsAggregate to tolerate intervening MERGEDCELLS records
fix45698Fix LinkTable to tolerate multiple EXTERNSHEET records
fix45682Fix for cloning of CFRecordsAggregate
addInitial support for evaluating external add-in functions like YEARFRAC
fix45672Fix for MissingRecordAwareHSSFListener to prevent multiple LastCellOfRowDummyRecords when shared formulas are present
fix45645Fix for HSSFSheet.autoSizeColumn() for widths exceeding Short.MAX_VALUE
add45623Support for additional HSSF header and footer fields, including bold and full file path
add45623Support stripping HSSF header and footer fields (eg page number) out of header and footer text if required
add45622Support 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
fix45590Fix 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
add45577Added implementations for Excel functions NOW and TODAY
fix45582Fix for workbook streams with extra bytes trailing the EOFRecord
add45537Include headers and footers (of slides and notes) in the extracted text from HSLF
fix45472Fixed incorrect default row height in OpenOffice 2.3
fix44692HSSFPicture.resize() stretched image when there was a text next to it
add45543Optionally extract comment text with PowerPointExtractor, and initial hslf model support for comments
fix45538Include excel headers and footers in the output of ExcelExtractor
fix44894refactor duplicate logic from EventRecordFactory to RecordFactory
addSupport for Headers / Footers in HSLF
fix44953Extensive fixes for data validation
fix45519Fixed to keep datavalidation records together
addSupport for creating new HSLF CurrentUserAtoms
add45466Partial support for removing excel comments (won't work for all excel versions yet)
fix45437Detect encrypted word documents, and throw an EncryptedDocumentException instead of a OOM
add45404New class, hssf.usermodel.HSSFDataFormatter, for formatting numbers and dates in the same way that Excel does
fix45414Don't add too many UncalcedRecords to sheets with charts in them
fix45398Support detecting date formats containing "am/pm" as date times
fix45410Removed 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
fix45322Fixed NPE in HSSFSheet.autoSizeColumn() when cell number format was not found
add45380Missing return keyword in ArrayPtg.toFormulaString()
add44958Record level support for Data Tables. (No formula parser support though)
add35583Include 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
fix45289finished support for special comparison operators in COUNTIF
fix45126Avoid generating multiple NamedRanges with the same name, which Excel dislikes
fixFix cell.getRichStringCellValue() for formula cells with string results
fix45365Handle more excel number formatting rules in FormatTrackingHSSFListener / XLS2CSVmra
fix45373Improve the performance of HSSFSheet.shiftRows
fix45367Fixed bug when last row removed from sheet is row zero
fix45348Tweaks to RVA formula logic
fix45354Fixed recognition of named ranges within formulas
fix45338Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts
fix45336Fix HSSFColor.getTripletHash()
fix45334Fixed formula parser to handle dots in identifiers
fix45252Improvement for HWPF Range.replaceText()
fix45001Further fix for HWPF Range.delete() and unicode characters
add45175Support 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
fix30978Fixed re-serialization of tRefErr3d and tAreaErr3d
fix45234Removed incorrect shared formula conversion in CFRuleRecord
fix45001Improved HWPF Range.replaceText()
fix44692Fixed 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
fix45091Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy
fix45133Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary
fix45145Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate
fix45123Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes
fix45087Correctly detect date formats like [Black]YYYY as being date based
add45060Improved token class transformation during formula parsing
add44840Improved handling of HSSFObjectData, especially for entries with data held not in POIFS
add45043Support 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
fix45025improved FormulaParser parse error messages
fix45046allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable
fix45066fixed sheet encoding size mismatch problems
add45003Support embedded HDGF visio documents
fix45001Partial fix for HWPF Range.insertBefore() and Range.delete() with unicode characters
fix44977Support for AM/PM in excel date formats
addSupport for specifying a policy to HSSF on missing / blank cells when fetching
add44937Partial support for extracting Escher images from HWPF files
fix44824Avoid an infinite loop when reading some HWPF pictures
fix44898Correctly handle short last blocks in POIFS

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

Changes#

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

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

Changes#

TypeBugModuleDescription
fix44857Avoid 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
fix41071Improved text extraction in HSLF
add30311Conditional 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
fix44792fixed encode/decode problems in ExternalNameRecord and CRNRecord.
fix43670 44501Fix how HDGF deals with trailing data in the list of chunk headers
add30311More work on Conditional Formatting
fixrefactored all junits' usage of HSSF.testdata.path to one place
fix44739Small fixes for conditional formatting (regions with max row/col index)
add44694HPSF: Support for property sets without sections
addImplement Sheet.removeShape(Shape shape) in HSLF
add44675 44695 44691Various fixes: Recognising var-arg built-in functions #44675, ExternalNameRecord serialisation bug #44695, PMT() bug #44691
add30311More work on Conditional Formatting
addMove the Formula Evaluator code out of scratchpad
addMove the missing record aware eventusermodel code out of scratchpad
add44652 44603Improved handling of Pictures in Word Documents
fix44636Fix formula parsing of RefVPtg, which was causing #VALUE to be shown on subsequent edits
fix44627Improve the thread safety of POILogFactory
add30311Initial support for Conditional Formatting
fix44609Handle leading spaces in formulas, such as '= 4'
add44608Support for PercentPtg in the formula evaluator
fix44606Support calculated string values for evaluated formulas
addAdd accessors to horizontal and vertical alignment in HSSFTextbox
add44593Improved handling of short DVRecords
add28627 44580Fix Range.delete() in HWPF
add44539Support for area references in formulas of rows >= 32768
add44536Improved support for detecting read-only recommended files
fix43901Correctly update the internal last cell number when adding and removing cells (previously sometimes off-by-one)
fix44504Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
fix44504Improvements 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
fix44504Fixed number conversion inconsistencies in many functions, and improved RefEval
fix44504Added initial support for recognising external functions like YEARFRAC and ISEVEN (using NameXPtg), via LinkTable support
fix44504Improvements 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
fix44504Fixed number conversion inconsistencies in many functions, and improved RefEval
fix44508Fix formula evaluation with evaluateInCell on boolean formulas
fix44510Fix how DVALRecord works with dropdowns
fix44495Handle named cell ranges in formulas that have lower case parts
fix44491Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
fix44471Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
fix44495Handle named cell ranges in formulas that have lower case parts
fix44491Don't have the new-style "HPSF properties are always available" affect the old-style use of HPSF alongside HSSF
fix44471Crystal Reports generates files with short StyleRecords, which isn't allowed in the spec. Work around this
add44450Support for Lookup, HLookup and VLookup functions
fix44449Avoid getting confused when two sheets have shared formulas for the same areas, and when the shared formula is set incorrectly
fix44366InputStreams 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
add44371Support for the Offset function
fix38921Have HSSFPalette.findSimilar() work properly
fix44456Fix the contrib SViewer / SViewerPanel to not fail on sheets with missing rows
fix44403Further support for unusual, but valid, arguments to the Mid function
fix44410Support for whole-column ranges, such as C:C, in formula strings and the formula evaluator
fix44421Update Match function to properly support Area references
fix44417Improved handling of references for the need to quote the sheet name for some formulas, but not when fetching a sheet by name
fix44413Fix for circular references in INDEX, OFFSET, VLOOKUP formulas, where a cell is actually allowed to reference itself
fix44403Fix for Mid function handling its arguments wrong
add44364Support for Match, NA and SumProduct functions, as well as initial function error support
fix44375Cope 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.
fix38641Handle 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)
fix44373Have HSSFDateUtil.isADateFormat recognize more formats as being dates
add37923Support for Excel hyperlinks
addImplement hashCode() and equals(obj) on HSSFFont and HSSFCellStyle
fix44345Implement CountA, CountIf, Index, Rows and Columns functions
fix44336Properly escape sheet names as required when figuring out the text of formulas
add44326Improvements 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
fix44297IntPtg must operate with unsigned short. Reading signed short results in incorrect formula calculation
fix44296Fix for reading slide background images
fix44293Avoid swapping AreaPtgs from relative to absolute
fix44292Correctly process the last paragraph in a word file
fix44254Avoid 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.
fix41726Fix how we handle signed cell offsets in relative areas and references
add44233Support for getting and setting a flag on the sheet, which tells excel to re-calculate all formulas on it at next reload
fix44201Enable cloning of sheets with data validation rules
fix44200Enable cloning of sheets with notes
add43008Add a moveCell method to HSSFRow, and deprecate setCellNum(), which didn't update things properly
fix43058Support setting row grouping on files from CR IX, which lack GutsRecords
fix31795Support cloning of sheets with certain drawing objects on them
fix43902Don't consider merged regions when auto-sizing columns
fix42464Avoid "Expected ExpPtg to be converted from Shared to Non-Shared Formula" on large, formula heavy worksheets
add42033Add support for named ranges with unicode names
add34023When 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
add43510Add support for named ranges in formulas, including non-contiguous named ranges
add43937Add support for hiding and un-hiding sheets, and checking their current hidden status
fix44167Fix for non-contiguous named ranges
fix44070Fix for shifting comments when shifting rows

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

Changes#

TypeBugModuleDescription
addSupport for tables in HSLF
fix43781Fix for extracting text from TextBoxes HSLF in
fixImprove JavaDocs relating to hssf font and fill colourings
add44095 44097 44099Support for Mid, Replace and Substitute excel functions
add44055Support for getting the from field from HSMF messages
add43551Support for 1904 date windowing in HSSF (previously only supported 1900 date windowing)
add41064Support for String continue records
add27511Support for data validation, via DVRecord and DVALRecord

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

Changes#

TypeBugModuleDescription
fix43877Fix for handling mixed OBJ and CONTINUE records
fix39512Fix for handling mixed OBJ and CONTINUE records
fix43837Support for unicode NameRecords
fix43807Throw an IllegalArgumentException if asked to create a merged region with invalid columns or rows, rather than writing out a corrupt file
fix43837Support for unicode NameRecords
add43721Support for Chart Title Format records
fix42794Fix for BOF records from things like Access
fix43648Fix for IntPtg and short vs int
fix43751Fix 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
fix43399Fix for Cell References for rows > 32678
fix43410Improved Formula Parser support for numbers and ranges
addWhen writing HSLF files out, optionally preserve all OLE2 nodes (default is just the HSLF related nodes)
add43323Support for adding Pictures to ShapeGroups in HSLF.
add43222Support for getting OLE object data from HSSFWorkbook.
add43247Support for getting OLE object data from slideshows.
add43125Support for reading EMF, WMF and PICT images via HSSFWorkbook.getAllPictures()
fix43088Fix for reading files with long cell comments and text boxes
fix42844Fix for the EventUserModel and records that aren't immediately followed by their ContinueRecords
fix43055Fix for saving Crystal Reports xls files when preserving nodes
fix43116Fix for Escher layer handling of embedded OLE2 documents
fix43108Where permissions deny fetching System Properties, use sensible defaults
fix43093Fix formula evaluator support for Area3D references to other sheets
fixImprovements to HSSFDateUtils.isADateFormat, and have HSSFDateUtil.isCellDateFormatted use this
fix42999Fix 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
fix23951Fix for HSSF setSheetOrder and tab names
fix42524Better HSLF support for problem shape groups
fix42520Better 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
fix42474Improved HSLF note to slide matching, and a NPE
fix42481Tweak 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
fix39977Fix POM for Maven users
fix38976Add 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
fix39389Extended 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
fix27574HSSFDateUtil.getExcelDate() is one hour off when DST changes
fix26465wrong lastrow entry
fix28203Unable to open read-write excel file including forms

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

Changes#

TypeBugModuleDescription
addAdd support for the Escher file format
fix27005java.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
fix25695HSSFCell.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
fix12561(Min) HSSFWorkbook throws Exceptions
fix12730(Nor) values dont get copied to another sheet.
fix13224(Maj) Exception thrown when cell has =Names call
fix13796(Nor) Error Reading Formula Record (optimized if, external link)
fix13921(Nor) Sheet name cannot exceed 31 characters and cannot contain :
fix14330(Nor) Error reading FormulaRecord
fix14460(Nor) Name in Formula - ArrayOutOfBoundsException
fix15228(Cri) [Urgent] ArrayIndexoutofbounds Exception. POI - Version 1.8
fix16488(Maj) Unable to open written spreadsheet in Excel, but can in Open
fix16559(Nor) testCustomPalette.xls crashes Excel 97
fix16560(Nor) testBoolErr.xls crashes Excel '97
fix17374(Min) HSSFFont - BOLDWEIGHT_NORMAL
fix18800(Maj) The sheet made by HSSFWorkbook#cloneSheet() doesn't work cor
fix18846(Min) [RFE]Refactor the transformation between byte array a
fix19599(Min) java.lang.IllegalArgumentException
fix19961(Nor) Sheet.getColumnWidth() returns wrong value
fix21066(Blo) Can not modify a blank spreadsheet
fix21444(Enh) Macro functions
fix21447(Nor) [RFE]String Formula Cells
fix21674(Enh) Documentation changes for @(Greater|Less|Not)EqualPt
fix21863(Enh) build.xml fixes
fix22195(Nor) [RFE] Support for Storage Class ID
fix22742(Cri) Failed to create HSSFWorkbook!
fix22922(Cri) HSSFSheet.shiftRows() throws java.lang.IndexOutOfBoundsExcep
fix22963(Nor) org.apache.poi.hpsf.SummaryInformation.getEditTime() should
fix24149(Maj) Error passing inputstream to POIFSFileSystem
fix21722(Nor) Add a ProtectRecord to Sheets and give control over
fix9576 (Nor) DBCELL, INDEX EXTSST (was Acess 97 import)
fix13478(Blo) [RFE] POIFS, RawDataBlock: Missing workaround for lo
fix14824(Nor) Unable to modify empty sheets
fix12843(Cri) Make POI handle chinese better
fix15353(Nor) [RFE] creating a cell with a hyperlink
fix15375(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