High level representation of a SpreadsheetML workbook. This is the first object most users will construct whether they are reading or writing a workbook. It is also the top level object for creating new sheets/etc.
Class Properties
Class Hierarchy
Click to view full-sized image
Nested Classes
Click to view full-sized image
Class Statistics
  • Nested Classes: 1
  • Constructors: 6
  • Fields: 25
  • Methods: 123
Constructor Summary
VisibilityNameParametersDeprecatedExternal UseCFGCallDFG
publicXSSFWorkbookXSSFWorkbookType workbookTypeShowShowShow
Create a new SpreadsheetML workbook.
publicXSSFWorkbookInputStream isShowShowShow
Constructs a XSSFWorkbook object, by buffering the whole stream into memory and then opening an {@link OPCPackage} object for it.

Using an {@link InputStream} requires more memory than using a File, so if a {@link File} is available then you should instead do something like

       OPCPackage pkg = OPCPackage.open(path);
       XSSFWorkbook wb = new XSSFWorkbook(pkg);
       // work with the wb object
       pkg.close(); // gracefully closes the underlying zip file
publicXSSFWorkbookFile fileShowShowShow
Constructs a XSSFWorkbook object from a given file.

Once you have finished working with the Workbook, you should close the package by calling {@link #close()}, to avoid leaving file handles open.

Opening a XSSFWorkbook from a file has a lower memory footprint than opening from an InputStream

publicXSSFWorkbookString pathShowShowShow
Constructs a XSSFWorkbook object given a file name.

Once you have finished working with the Workbook, you should close the package by calling {@link #close()}, to avoid leaving file handles open.

Opening a XSSFWorkbook from a file has a lower memory footprint than opening from an InputStream

Create a new SpreadsheetML workbook.
publicXSSFWorkbookOPCPackage pkgShowShowShow
Constructs a XSSFWorkbook object given a OpenXML4J Package object, see http://poi.apache.org/oxml4j/.

Once you have finished working with the Workbook, you should close the package by calling either {@link #close()} or {@link OPCPackage#close()}, to avoid leaving file handles open.

Creating a XSSFWorkbook from a file-backed OPC Package has a lower memory footprint than an InputStream backed one.

Field Summary
VisibilityTypeNameStaticInstanceFinalDeprecatedExternal UseDFG
this holds the XSSFName objects attached to this workbook, keyed by lower-case name
this holds the XSSFName objects attached to this workbook
shared string table - a cache of strings in this workbook
Used to keep track of the data formatter so that all createDataFormatter calls return the same one for a given book. This ensures that updates from one places is visible someplace else.
List of all pivot tables in workbook
Width of one character of the default font in pixels. Same for Calibry and Arial.
Excel silently truncates long sheet names to 31 chars. This constant is used to ensure uniqueness in the first 31 chars
Images formats supported by XSSF but not by HSSF
The underlying XML bean
this holds the XSSFSheet objects attached to this workbook
A collection of shared objects used for styling content, e.g. fonts, cell styles, colors, etc.
The locator of user-defined functions. By default includes functions from the Excel Analysis Toolpack
External Links, for referencing names or cells in other workbooks.
A collection of custom XML mappings
The policy to apply in the event of missing or blank cells when fetching from a row. See {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
array of pictures for this workbook
cached instance of XSSFCreationHelper for this workbook
Method Summary
VisibilityReturnNameParametersStaticInstanceConcreteDeprecatedExternal UseCFGCallDFG
publicintlinkExternalWorkbookString name
Workbook workbook
Adds the External Link Table part and relations required to allow formulas referencing the specified external workbook to be added to this one. Allows formulas such as "[MyOtherWorkbook.xlsx]Sheet3!$A$5" to be added to the file, for workbooks not already linked / referenced. Note: this is not implemented and thus currently throws an Exception stating this.
privatevoidvalidateSheetIndexint indexShowShowShow
Validate sheet index
Specifies a boolean value that indicates whether structure of workbook is locked.
A value true indicates the structure of the workbook is locked. Worksheets in the workbook can't be moved, deleted, hidden, unhidden, or renamed, and new worksheets can't be inserted.
A value of false indicates the structure of the workbook is not locked.
Specifies a boolean value that indicates whether the windows that comprise the workbook are locked.
A value of true indicates the workbook windows are locked. Windows are the same size and position each time the workbook is opened.
A value of false indicates the workbook windows are not locked.
Specifies a boolean value that indicates whether the workbook is locked for revisions.
Locks the structure of workbook.
Whether Excel will be asked to recalculate all formulas when the workbook is opened.
Unlocks the structure of workbook.
Convenience method to get the active sheet. The active sheet is is the sheet which is currently displayed when the workbook is viewed in Excel. 'Selected' sheet(s) is a distinct concept.
Locks the windows that comprise the workbook.
publicvoidsetActiveSheetint indexShowShowShow
Convenience method to set the active sheet. The active sheet is is the sheet which is currently displayed when the workbook is viewed in Excel. 'Selected' sheet(s) is a distinct concept.
Are we a normal workbook (.xlsx), or a macro enabled workbook (.xlsm)?
Gets the first tab that is displayed in the list of tabs in excel.
publicvoidsetFirstVisibleTabint indexShowShowShow
Sets the first tab that is displayed in the list of tabs in excel.
publicvoidsetVBAProjectXSSFWorkbook macroWorkbookShowShowShow
Adds a vbaProject.bin file taken from another, given workbook to this one.
Unlocks the workbook for revisions.
publicvoidsetSheetOrderString sheetname
int pos
sets the order of appearance for a given sheet.
publicintaddOlePackagebyte[] oleData
String label
String fileName
String command
privatevoidaddRelationRelationPart rp
POIXMLDocumentPart target
publicvoidsetSelectedTabint indexShowShowShow
We only set one sheet as selected for compatibility with HSSF.
publicvoidsetSheetNameint sheetIndex
String sheetname
Set the sheet name.
publicbooleanvalidateWorkbookPasswordString passwordShowShowShow
Validate the password against the stored hash, the hashing method will be determined by the existing password attributes
privateStringgetUniqueSheetNameString srcNameShowShowShow
Generate a valid sheet name based on the existing one. Used when cloning sheets.
publicvoidsetRevisionsPasswordString password
HashAlgorithm hashAlgo
Sets the revisions password.
publicXSSFNamegetBuiltInNameString builtInCode
int sheetNumber
Unlocks the windows that comprise the workbook.
publicintgetSheetIndexSheet sheetShowShowShow
Returns the index of the given sheet
publicXSSFNamecreateBuiltInNameString builtInName
int sheetNumber
Generates a NameRecord to represent a built-in region
Create an XSSFSheet for this workbook, adds it to the sheets and returns the high level representation. Use this to create new sheets.
Locks the workbook for revisions.
publicXSSFSheetcreateSheetString sheetnameShowShowShow
Create a new sheet for this Workbook and return the high level representation. Use this to create new sheets.

Note that Excel allows sheet names up to 31 chars in length but other applications (such as OpenOffice) allow more. Some versions of Excel crash with names longer than 31 chars, others - truncate such names to 31 character.

POI's SpreadsheetAPI silently truncates the input argument to 31 characters. Example:

     Sheet sheet = workbook.createSheet("My very long sheet name which is longer than 31 chars"); // will be truncated
     assert 31 == sheet.getSheetName().length();
     assert "My very long sheet name which i" == sheet.getSheetName();

Except the 31-character constraint, Excel applies some other rules:

Sheet name MUST be unique in the workbook and MUST NOT contain the any of the following characters:

  • 0x0000
  • 0x0003
  • colon (:)
  • backslash (\)
  • asterisk (*)
  • question mark (?)
  • forward slash (/)
  • opening square bracket ([)
  • closing square bracket (])
The string MUST NOT begin or end with the single quote (') character.

See {@link org.apache.poi.ss.util.WorkbookUtil#createSafeSheetName(String nameProposal)} for a safe way to create valid names

Get the number of worksheets in the this workbook
publicvoidsetWorkbookPasswordString password
HashAlgorithm hashAlgo
Sets the workbook password.
Alias for {@link #sheetIterator()} to allow foreach loops Note: remove() is not supported on this iterator. Use {@link #removeSheetAt(int)} to remove sheets instead.
privateXSSFNamecreateAndStoreNameCTDefinedName ctNameShowShowShow
publicStringgetSheetNameint sheetIxShowShowShow
Get the sheet name
publicXSSFSheetgetSheetAtint indexShowShowShow
Get the XSSFSheet object at the given index.
publicXSSFSheetgetSheetString nameShowShowShow
Get sheet with the given name (case insensitive match)
publicvoidremoveSheetAtint indexShowShowShow
Removes sheet at the given index.

Care must be taken if the removed sheet is the currently active or only selected sheet in the workbook. There are a few situations when Excel must have a selection and/or active sheet. (For example when printing - see Bug 40414).
This method makes sure that if the removed sheet was active, another sheet will become active in its place. Furthermore, if the removed sheet was the only selected sheet, another sheet will become selected. The newly active/selected sheet will have the same index, or one less if the removed sheet was the last in the workbook.

privatevoidupdateNamedRangesAfterSheetReorderint oldIndex
int newIndex
update sheet-scoped named ranges in this workbook after changing the sheet order of a sheet at oldIndex to newIndex. Sheets between these indices will move left or right by 1.
publicvoidsetWorkbookTypeXSSFWorkbookType typeShowShowShow
Sets whether the workbook will be an .xlsx or .xlsm (macro-enabled) file.
Create a new Font and add it to the workbook's font table
publicvoidsetVBAProjectInputStream vbaProjectStreamShowShowShow
Adds a vbaProject.bin file to the workbook. This will change the workbook type if necessary.
privatevoidupdateActiveSheetAfterSheetReorderint oldIndex
int newIndex
publicXSSFFontfindFontboolean bold
short color
short fontHeight
String name
boolean italic
boolean strikeout
short typeOffset
byte underline
Finds a font that matches the one with the supplied attributes
Get the number of fonts in the this workbook
privatevoidvalidateSheetNameString sheetNameShowShowShow
marshal named ranges from the {@link #namedRanges} collection to the underlying CTWorkbook bean
protectedXSSFDialogsheetcreateDialogsheetString sheetname
CTDialogsheet dialogsheet
Create a new XSSFCellStyle and add it to the workbook's style table
privateCTSheetaddSheetString sheetnameShowShowShow
Get the number of styles the workbook contains
privateStringgetReferencePrintAreaString sheetName
int startC
int endC
int startR
int endR
publicXSSFCellStylegetCellStyleAtint idxShowShowShow
Get the cell style object at the given index
Returns the locator of user-defined functions.

The default instance extends the built-in functions with the Excel Analysis Tool Pack. To set / evaluate custom functions you need to register them as follows:

publicintgetSheetIndexString nameShowShowShow
Returns the index of the sheet by his name (case insensitive match)
Returns the spreadsheet version (EXCLE2007) of this workbook
publicXSSFTablegetTableString nameShowShowShow
Returns the data table with the given name (case insensitive).
Get the number of named ranges in the this workbook
publicXSSFNamegetNameAtint nameIndexShowShowShow
Get the named range at the given index.
publicXSSFNamegetNameString nameShowShowShow
Get the first named range with the given name. Note: names of named ranges are not unique as they are scoped by sheet. {@link #getNames(String name)} returns all named ranges with the given name.
publicListgetNamesString nameShowShowShow
Get the named ranges with the given name. Note:Excel named ranges are case-insensitive and this method performs a case-insensitive search.
Get a list of all the named ranges in the workbook.
Return a object representing a collection of shared objects used for styling content, e.g. fonts, cell styles, colors, etc.
Returns the Theme of current workbook.
publicvoidparseSheetMap shIdMap
CTSheet ctSheet
Not normally to be called externally, but possibly to be overridden to avoid the DOM based parse of large sheets (see examples).
Returns an object that handles instantiating concrete classes of the various instances for XSSF.
publicintgetNameIndexString nameShowShowShow
Gets the named range index by name.
publicvoidremoveNameint nameIndexShowShowShow
Remove the named range at the given index.
publicvoidremoveNameString nameShowShowShow
Remove the first named range found with the given name. Note: names of named ranges are not unique (name + sheet index is unique), so {@link #removeName(Name)} should be used if possible.
Create a new CTWorkbook with all values set to default
publicvoidremoveNameName nameShowShowShow
As {@link #removeName(String)} is not necessarily unique (name + sheet index is unique), this method is more accurate.
publicvoidsetPrintAreaint sheetIndex
String reference
Sets the printarea for the sheet provided

i.e. Reference = $A$1:$B$2

Returns an iterator of the sheets in the workbook in sheet order. Includes hidden and very hidden sheets. Note: remove() is not supported on this iterator. Use {@link #removeSheetAt(int)} to remove sheets instead.
publicvoidsetPrintAreaint sheetIndex
int startColumn
int endColumn
int startRow
int endRow
For the Convenience of Java Programmers maintaining pointers.
Get the document's embedded files.
protectedOPCPackagenewPackageXSSFWorkbookType workbookTypeShowShowShow
Create a new SpreadsheetML package and setup the default minimal content
publicvoidremovePrintAreaint sheetIndexShowShowShow
Delete the printarea for the sheet specified
Retrieves the current policy on what to do when getting missing or blank cells from a row. The default is to return blank and null cells. {@link MissingCellPolicy}
Returns SharedStringsTable - tha cache of string for this workbook
publicvoidupdateNameXSSFName name
String oldName
publicvoidsetMissingCellPolicyMissingCellPolicy missingCellPolicyShowShowShow
Sets the policy on what to do when getting missing or blank cells from a row. This will then apply to all calls to {@link Row#getCell(int)}}. See {@link MissingCellPolicy}
Returns the workbook's data format table (a factory for creating data format strings).
Return the underlying XML bean
publicintaddPicturebyte[] pictureData
int format
Adds a picture to the workbook.
Gets all pictures from the Workbook.
publicStringgetPrintAreaint sheetIndexShowShowShow
Retrieves the reference for the printarea of the specified sheet, the sheet name is appended to the reference even if it was not specified.
privatebooleancontainsSheetString name
int excludeSheetIdx
Determines whether a workbook contains the provided sheet name. For the purpose of comparison, long names are truncated to 31 chars.
Gets a boolean value that indicates whether the date systems used in the workbook starts in 1904.

The default value is false, meaning that the workbook uses the 1900 date system, where 1/1/1900 is the first day in the system..

Removes the workbook protection settings
publicvoidsetHiddenboolean hiddenFlagShowShowShow
publicintaddPictureInputStream is
int format
Adds a picture to the workbook.
publicbooleanisSheetHiddenint sheetIxShowShowShow
protectedvoidsetPivotTablesList pivotTablesShowShowShow
publicbooleanisSheetVeryHiddenint sheetIxShowShowShow
privatevoidonSheetDeleteint indexShowShowShow
Gracefully remove references to the sheet being deleted
publicSheetVisibilitygetSheetVisibilityint sheetIxShowShowShow
publicXSSFSheetcloneSheetint sheetNumShowShowShow
Create an XSSFSheet from an existing sheet in the XSSFWorkbook. The cloned sheet is a deep copy of the original.
publicXSSFSheetcloneSheetint sheetNum
String newName
Create an XSSFSheet from an existing sheet in the XSSFWorkbook. The cloned sheet is a deep copy of the original but with a new given name.
publicvoidsetSheetHiddenint sheetIx
boolean hidden
protectedCTPivotCacheaddPivotCacheString rIdShowShowShow
Add pivotCache to the workbook
publicvoidsetSheetHiddenint sheetIx
int state
publicXSSFFontgetFontAtshort idxShowShowShow
Get the font at the given index number
publicvoidsetSheetVisibilityint sheetIx
SheetVisibility visibility
protectedvoidonDeleteFormulaXSSFCell cellShowShowShow
Fired when a formula is deleted from this workbook, for example when calling cell.setCellFormula(null)
publicbooleanvalidateRevisionsPasswordString passwordShowShowShow
Validate the password against the stored hash, the hashing method will be determined by the existing password attributes
publicvoidaddToolPackUDFFinder toopackShowShowShow
Register a new toolpack in this workbook.
Return the {@link CalculationChain} object for this workbook

The calculation chain object specifies the order in which the cells in a workbook were last calculated

Returns the list of {@link ExternalLinksTable} object for this workbook

The external links table specifies details of named ranges etc that are referenced from other workbooks, along with the last seen values of what they point to.

Note that Excel uses index 0 for the current workbook, so the first External Links in a formula would be '[1]Foo' which corresponds to entry 0 in this list.

publicvoidsetForceFormulaRecalculationboolean valueShowShowShow
Whether the application shall perform a full recalculation when the workbook is opened.

Typically you want to force formula recalculation when you modify cell formulas or values of a workbook previously created by Excel. When set to true, this flag will tell Excel that it needs to recalculate all formulas in the workbook the next time the file is opened.

Note, that recalculation updates cached formula results and, thus, modifies the workbook. Depending on the version, Excel may prompt you with "Do you want to save the changes in filename?" on close.

Issue Summary
Issue IdLast ChangedSummaryStatusSeverityPriorityRelated CommitsView Report
601972016-10-09 03:06:55setSheetOrder doesn't update names scopeRESOLVEDnormalP2dd1ed5b84Show
574942015-01-28 14:53:58Discrepancy between using XSSFWorkbook.getSheetAt(0).getRowIterator() and XSSFWorkbook.getSheetAt(0).getRow(#)RESOLVEDnormalP2Show
616992017-10-31 15:45:23Implement XSSFWorkbook#isHidden()NEWenhancementP2Show
597382016-07-24 23:39:08Excel Files generated using XSSFWorkbook can't be opened using Ms-Excel or OpenOfficeRESOLVEDnormalP2Show
605862017-01-15 02:08:29Support embedding OLE1.0 package in XSSF / SS CommonRESOLVEDenhancementP25899f8884Show
470282009-04-17 11:09:14Inconsistent behavior between HSSF, XSSF: Cell.setCellStyle(...)RESOLVEDnormalP2ecb76070aShow
470412009-04-17 09:47:55Getting error while creating a worksheet using XSSFWorkbook classRESOLVEDcriticalP2Show
470892009-04-24 11:27:27XSSFWorkbook.createSheet(...) corrupts Excel fileRESOLVEDmajorP2Show
568362014-10-16 23:56:05XML signature supportRESOLVEDnormalP25692f061a, aa91f244dShow
599202016-08-01 12:51:33Unexpected change in behaviour for XSSFWorkbook.setWorkbookPasswordRESOLVEDnormalP2Show
599222016-08-01 18:21:22Rename misspelled XSSFPaswordHelper to XSSFPasswordHelperRESOLVEDenhancementP2fcb22a8a5, ca31684a2Show
458992008-09-28 22:33:05patch for XSSFWorkbookRESOLVEDnormalP2Show
472942009-06-10 11:45:51XSSFWorkbook - FormulaParseException thrown from setRepeatingRowsAndColumns() when sheet name has a quote - ' in it.RESOLVEDmajorP2af23e1554Show
586172015-11-22 20:52:46Add custom safe XmlBeans type loader / rename vendor specific schema packagesRESOLVEDnormalP247b5cde9cShow
470262009-04-20 09:51:05Problems with Cell FormulaRESOLVEDnormalP2ecb76070aShow
591702016-11-02 16:19:35Remove deprecated classes (POI 3.15)RESOLVEDnormalP2e355d20cf, ccdc23ab4, e9be07056, ae12cfcd5, 3387617db, dde2a2528, 59d1dc095, 7d6be0ff5, 28622a6da, 1d8067338, 8eb863686, 7b14a4843, 07767097b, 890afdc0f, c7c11821f, e28a8789f, 06b4103cb, 3369507ca, 5fe6c32f8, 8e36872c4, 45ec02487, c3833b5ce, d7fc37b2d, 4243208ad, 9b217ab2d, 7228082d6, 8e8422620, 38b29717e, f2390589dShow
476202009-08-05 10:55:29XSSFWorkbook.setRepeatingRowsAndColumns causes FormulaParseExceptionRESOLVEDnormalP2d5f241bfbShow
478132009-09-13 07:49:29Problems with XSSFWorkbook.removeSheetAt when workbook contains chartRESOLVEDnormalP2390d185a8Show
610332017-09-20 19:09:57[PATCH] Add Workbook.setCellFormulaValidation to control whether formulas are validated during Cell.setCellFormula or notRESOLVEDenhancementP2Show
545642013-06-25 15:20:04[PATCH] Invalid range in error message when accessing out of range sheetRESOLVEDtrivialP2a7bfec927Show
619722018-01-20 23:05:25Adding chart in Document of MS-Word File without reading Temp MS-Word FileRESOLVEDnormalP2Show
514152011-06-23 10:49:38Sheet name cannot exceed 31 charactersRESOLVEDregressionP2abe5618b5Show
450182008-05-28 08:44:09[PATCH] Patch to fetch embedded documents from OOXML filesRESOLVEDnormalP2Show
466602009-02-13 13:50:54How to unhide a hidden Workbook?RESOLVEDnormalP2521656d9cShow
567052015-07-22 08:49:24[PATCH] XSSFWorkbook.getSheet(String) is slow with many sheetsRESOLVEDnormalP2Show
474112009-06-29 07:53:38xlsx files with date values don't display properly in Mac Excel 2008 (due to different defaults, apparently)RESOLVEDnormalP2efc543103Show
484322010-05-20 02:02:27[PATCH]Initial draft of XSSFThemeRESOLVEDnormalP2eb4a56cb5Show
500292010-09-30 00:21:39XSSFWorkbook created cannot be opened by Excel 2007 SP2RESOLVEDblockerP2Show
475202010-01-20 12:15:48[PATCH] Implementation of an XLSX to XML Exporter using Custom XML MappingRESOLVEDnormalP28a3095d0b, 0662f7e86Show
619402017-12-31 00:14:35Replace ClassID statics with enumRESOLVEDnormalP2Show
560202014-07-30 15:45:43[Patch] Patch for creating PivotTablesRESOLVEDnormalP2797f3368dShow
588012017-09-22 17:41:07POI 3.13 - Failed to open load xlsx file into XSSFWorkbookRESOLVEDnormalP2Show
561292015-09-13 19:34:47XSSFWorkBook.setSheetHidden(0, true) does not hide the first sheetRESOLVEDmajorP2a5918f26fShow
566752015-01-22 15:02:34Cannot create new XSSFWorkbook from an OPCPackage that opened an Excel 2013 file with PackageAccess.READRESOLVEDnormalP2Show
492532011-03-30 18:57:47setRepeatingRowsAndColumns sets print orientation from landscape to portraitRESOLVEDnormalP2df4983815Show
524842015-11-30 09:53:54Superscript font works for XSSFWorkbook but not SXSSFWorkbookRESOLVEDenhancementP2Show
562782014-05-14 20:19:32Workbook Opens in Excel But Not POI Due To NPERESOLVEDnormalP26d2ecdeacShow
471002011-03-04 06:32:22Change Worksheet name, related formula are not updatedRESOLVEDnormalP2817a44dcdShow
578402017-11-03 22:21:23[PATCH] Support for structured references with Excel tables.RESOLVEDenhancementP21a906b4d6, 6d03eafcf, c8627bb8b, 71e3aa52f, a6f21296c, 6a6aa540e, ed3364b6d, 9e54ef68c, e3beb3abd, be9b61504, fe44b01cd, 12d7fb30a, ea30ed25b, 07c65c3fc, cd4058fd6Show
514222011-06-30 15:54:30Support using RecalcIdRecord to trigger a full formula recalculation on loadRESOLVEDnormalP219a6ad2ab, 9930e7099Show
458812008-09-24 10:57:11Fix some examplesRESOLVEDnormalP2Show
476682009-08-17 03:16:46OOXML is parsed as tree, but PPTX is a graphVERIFIEDcriticalP26fab98df5, 76ccb2957Show
478092009-09-16 17:46:47[PATCH] Improved work with UDFs.RESOLVEDnormalP2141dc22e8, cae73922aShow
564672015-03-11 18:25:48[PATCH] cloneSheet() does not properly copy picturesRESOLVEDnormalP2b7c14b3a8Show
564682014-07-16 21:15:51[PATCH] Writing a workbook more than once corrupts the fileRESOLVEDmajorP2d0320ad77Show
617342018-04-19 08:48:34Error after writing XLSM file via XSSFWorkbook - file read via XSSFWorkbook beforeRESOLVEDmajorP2Show
498752010-09-04 11:57:21Different behaviour with invalid sheet names between HSSF and XSSFRESOLVEDnormalP2374442842Show
498782010-09-05 09:09:48setSheetHidden for XSSF workbook not working properlyRESOLVEDnormalP2d55edf3f7Show
571842017-01-08 20:24:47Missing Formula support for External ReferencesNEWenhancementP23b4a96bbc, 0fdd7a1dbShow
613742017-09-13 20:04:58Opening an XSSFWorkbook in CICS using a EBCDIC encodingRESOLVEDnormalP2Show
499662010-11-12 07:05:22Removing formula cell doesn't clear calcChain entryRESOLVEDnormalP239a185e9a, e8bbd4c95Show
525042012-02-03 11:23:43Can't insert picture on a XSSFWorkbookRESOLVEDnormalP2Show
620182018-01-23 05:49:11RichTextString.numFormattingRuns not work on pasted cell contains styled text.RESOLVEDnormalP2Show
506382011-01-22 21:27:02Creating XSSFWorkbook works on windows but not on LinuxRESOLVEDmajorP2Show
567442014-07-18 22:49:36Support for ExternalLinks in XSSFRESOLVEDnormalP21ed2a1832, 611bcffb0Show
503152013-09-05 15:40:44XSSF sheet.setAutoFilter() crashes Excel by sorting.RESOLVEDnormalP20f86c22aeShow
460032008-10-17 11:45:42Implemented XSSFWorkbook.setPrintArea()RESOLVEDnormalP2Show
624352018-06-06 16:54:44Rename POIXMLDocument getAllEmbedds to getAllEmbeddedPartsRESOLVEDnormalP2Show
568542015-09-13 20:18:11XMLBeans performance when using getXXXList() and other proxy methodsRESOLVEDnormalP2a82d67a2d, aa91f244dShow
569302016-03-13 21:36:22XSSFWorkbook ignores XSSFName's that have the same nameRESOLVEDmajorP24bd9afde4Show
544702016-06-15 09:45:50[PATCH] Solution to support Graph in XSSFWorkbook.cloneSheet methodNEWenhancementP1Show
603312017-05-20 20:21:14Remove deprecated classes (POI 3.16)RESOLVEDenhancementP2a3f001b7a, cbc3f8599, 0ff9cbb0f, 579a132ef, 5add58312, 21009c9ab, 6ea58e94b, 3fe0aeb31Show
617012017-10-31 09:56:53XSSFName.getSheetName() throws when the named range refers to a formula with a Table rangeNEWnormalP2Show
477372009-09-12 09:03:07Unreadable content opening XSSF generated excel.RESOLVEDcriticalP2390d185a8Show
587752015-12-29 05:56:14Excel reports corrupt workbook if workbook has more than 205 custom DataFormatsRESOLVEDnormalP20849d8c34, ef26a1d15, 3204cedf2, 9bdfcc4be, 8a7cd6308, a50f45e4c, 0404c61acShow
571652016-03-13 21:35:15Failed to clone a sheet from an Excel 2010RESOLVEDnormalP29ede62441, e13374683Show
571712014-12-22 09:00:51Moving the active sheet and deleting the others results in a corrupted fileRESOLVEDnormalP20fdfac62cShow
454312016-03-31 06:08:43XSSFWorkbook cannot save a macro-enabled Excel (.xlsm)RESOLVEDnormalP2Show
573732014-12-22 14:38:08XSSFWorkbook doesn't workRESOLVEDnormalP283f5683c5Show
574822015-01-22 15:04:09InvalidOperationException occurs when creating XSSFWorkbook with PackageAccess.READRESOLVEDnormalP2b25e4ca87, ca3398338Show
546252013-03-03 16:16:36User defined functions added to static variableRESOLVEDnormalP2651e62217Show
514702015-04-08 07:04:32java.lang.IndexOutOfBoundsException during XSSF Workbook.cloneSheet()RESOLVEDnormalP277277a7acShow
514832014-09-04 22:55:06XSSF locking of specific features not workingRESOLVEDnormalP2ff053aa4cShow
549162016-01-10 20:48:28[PATCH] POI does not always read all the slides in pptx filesRESOLVEDmajorP2f56b918b1, 907285520, 378308070Show
606052017-01-20 06:07:09Convert Workbook.SHEET_STATE_HIDDEN, VISIBLE, and VERY_HIDDEN to enumNEEDINFOenhancementP2dfd906aa9, 15be6fb33, 2f648842cShow
578802017-09-10 08:02:24Writing negative cellStyleIndex into sheet1.xmlRESOLVEDnormalP2f3c14d82a, 3543d1a55Show
580362015-07-13 09:05:32[PATCH] XSSFWorkbook.setVBAProject()RESOLVEDenhancementP2Show
535002015-05-18 20:16:50[Patch] Getter for repeating rows and columnsRESOLVEDnormalP2d619711ea, 8394c58b1Show
479422009-10-28 09:28:03document protection implementationRESOLVEDenhancementP21d8220671Show
605092016-12-28 20:02:35XSSFWorkbook.setSheetName() does not update references in chartsNEWenhancementP2Show
581462015-08-03 07:33:14Unable to simply create Theme in new XSSFWorkbookRESOLVEDnormalP2Show
582452015-09-17 11:18:55[PATCH] Make Workbook interface iterable over sheetsRESOLVEDenhancementP29647b62d1Show
522042011-11-18 13:17:18InputStream not closedRESOLVEDnormalP26790b8559Show
597732016-08-15 05:39:46Move loop invariants outside of loop for faster executionNEWenhancementP233cf81519, 954306ea2, e97b333ea, 73fcbfdb6Show
522682011-12-07 08:52:58Missing images on cloned sheets.RESOLVEDnormalP21b19410d6Show
623552018-05-27 22:21:47Unsplit packages to conform Jigsaw (Java 9) module standardNEWnormalP2Show
459742008-10-21 10:57:07POI 3.5b3: XSSFCell.getCellStyle can return nullRESOLVEDnormalP2Show
454922008-09-21 11:57:37HSSFCellStyle.getFillBackgroundColor() does always return 64RESOLVEDnormalP20c6a27425Show
487182017-07-23 22:33:08XSSFWorkbook.createFont fails to add font to styletable if un-modified Font was createdRESOLVEDnormalP2e09e67c40Show
571632015-10-27 09:13:42Cannot delete an arbitrary sheet in an XLS workbook (only the last one)RESOLVEDnormalP212c220121, 0fdfac62cShow
522552012-02-26 06:38:55RFE: XWPFPictureData should allow registration of new image formatsRESOLVEDnormalP2a6aa1fd99Show
610312017-06-16 20:14:10XSSFWorkbook and SXSSFWorkbook produce different outputNEWenhancementP2Show
589092016-03-31 16:14:05[PATCH] Performance problem on cloneSheet/setSheetNameRESOLVEDenhancementP2d0513f2caShow
588792016-01-16 22:29:19Return SpreadsheetVersion from WorkbookRESOLVEDenhancementP2276e95e43Show
458942008-09-25 23:03:03patch XSSFWorkbookRESOLVEDnormalP2Show
475592009-08-09 06:30:45POI generated xlsx files are not compatible with Excel 2008 Mac SP2RESOLVEDnormalP20f1f7d1d4Show
460802008-10-25 06:40:30javadoc for XSSFHyperlinkRESOLVEDnormalP2Show
459172008-11-05 20:11:03Documentation XSSFFontRESOLVEDnormalP2Show
460812008-10-25 06:40:55implemented XSSFWorkbook.setRepeatingRowsAndColumnsRESOLVEDnormalP2Show
459202008-11-05 20:20:09Implement XSSFSheet.getDisplayGuts and XSSFSheet.setDisplayGutsRESOLVEDnormalP2Show
462072008-11-13 22:50:29[POI 3.5 Beta 3] MS Excel 2007 open workbook (saved by XSSFWorkbook ) with errorsRESOLVEDnormalP2Show
535682012-10-10 10:50:21Pictures in XSSF have NULL anchorsRESOLVEDnormalP27290c5fab, eb40f810dShow
597182016-06-19 20:34:18Deprecate SS Font.get/setBoldweightRESOLVEDnormalP2acac716a6Show
568002014-08-01 14:35:04Exception for XLSB files should indicate that the file format is unsupportedRESOLVEDnormalP20e44d8da7Show
464332008-12-22 11:53:40XSSFWorkbook.getCellFormula() FailedRESOLVEDnormalP2Show
565372014-07-03 05:47:32Using org.apache.poi.ss.usermodel.WorkbookFactory.create(File) leaks file handlesRESOLVEDnormalP2a1d0c8a26, 47a8f6cf4, f33843810, e34e77b12, 1bcf519c7Show
499072010-09-11 08:48:30Inconsistent behaviour between HSSF and XSSF when creating consecutive namesRESOLVEDnormalP2442579c32Show
464192009-07-28 03:07:23XSSFWorkbook.write() file format errorRESOLVEDmajorP20f1f7d1d4Show
539502012-10-04 13:30:52setForceFormulaRecalculation does not force formula recalcuation in xlsx documents created with Excel 2010RESOLVEDnormalP2141294063Show
Revision Control Summary
Commit IdCommiterDate/TimeSummaryRelated IssuesView Commit
aa91f244dAndreas Beeker2014-09-30Bug 56836 - XML signature support56854, 56836Show
390d185a8Yegor Kozlov2009-09-12improved XSSFWorkbook.removeSheetAt, see Bugzilla 47737 and 4781347737, 47813Show
acac716a6Javen O'Neal2016-06-18bug 59718: deprecate get/setBoldweight. Use get/setBold59718Show
9930e7099Yegor Kozlov2011-06-30added Workbook.getForceFormulaRecalculation as requested in Bug 5142251422Show
19a6ad2abYegor Kozlov2011-06-27Bug 51422 - Support using RecalcIdRecord to trigger a full formula recalculation on load51422Show
ff053aa4cAndreas Beeker2014-09-04Bug 51483 - XSSF locking of specific features not working Added some documentation to the crypto functions and adapted xor1verifier code to the OFFCrypto-Docs51483Show
6d2ecdeacNick Burch2014-03-17Fix bug #56278 - Support loading .xlsx files with no Styles Table56278Show
abe5618b5Yegor Kozlov2011-06-23Bug 51415 - Fixed Workbook.createSheet(sheetName) to truncate names longer than 31 characters51415Show
47b5cde9cAndreas Beeker2015-11-21#58617 - Add custom safe XmlBeans type loader / rename vendor specific schema packages58617Show
b25e4ca87Nick Burch2015-01-2257482 Handle XSLX files with no shared strings table in read-only mode57482Show
77277a7acYegor Kozlov2011-07-20fixed bug 51470 - avoid exception when cloning XSSF sheets with background images51470Show
21009c9abAndreas Beeker2016-12-03#60331 - Remove deprecated classes - remove constructors with PackageRelationship argument60331Show
ecb76070aYegor Kozlov2009-04-17Fixed XSSFCell to preserve cell style when cell value is set to blank, also avoid NPE in XSSFCell.setCellType() when workbook does not have SST, see bugs 47026 and 4702847026, 47028Show
276e95e43Javen O'Neal2016-01-16bug 58879: add SpreadsheetVersion to Workbook interface58879Show
0f1f7d1d4Yegor Kozlov2009-07-24fixed compatibility issues with OpenOffice 3.0 and Excel 2008 Mac sp2, see Bugzilla #46419 and #4755947559, 46419Show
e09e67c40Nick Burch2010-05-28Fix bug #48718 - Make the creation of multiple, un-modified fonts in a row in XSSF match the old HSSF behaviour48718Show
dd1ed5b84Javen O'Neal2016-10-09bug 60197: Workbook#setSheetOrder should update named range sheet indices60197Show
76ccb2957Yegor Kozlov2009-08-12Improved parsing of OOXML documents, see Bugzilla 4766847668Show
0f86c22aeYegor Kozlov2010-12-02 Avoid crashing Excel when sorting XSSFSheet autofilter, see Bugzilla 5031550315Show
a82d67a2dAndreas Beeker2014-08-28Bug 56854 - XMLBeans performance when using getXXXList() and other proxy methods56854Show
a7bfec927Nick Burch2013-06-25Fix from Florian Hopf from bug #54564 - Fix error message text for a workbook with no sheets when a sheet operation is performed54564Show
f56b918b1Andreas Beeker2016-01-10#54916 - POI does not always read all the slides in pptx files54916Show
0e44d8da7Nick Burch2014-08-01Fix bug #56800 - Provide a helpful exception, XLSBUnsupportedException, if XSSFWorkbook is passed a .xlsb file56800Show
c3833b5ceJaven O'Neal2016-06-17bug 59170: remove deprecated o.a.p.xwpf.model.XWPFHyperlinkDecorator class59170Show
eb4a56cb5Nick Burch2010-05-19Apply (with slight tweaks) patch from bug #48432 - Support for XSSF themes48432Show
8a3095d0bYegor Kozlov2009-07-16support for custom XML mappings in XSSF, see Bugzilla 4752047520Show
521656d9cJosh Micich2009-02-13Bugzilla 46660 - added 'hidden' property to Workbook46660Show
1b19410d6Yegor Kozlov2011-12-07Bugzilla 52268 - support cloning sheets with drawings in XSSF52268Show
0fdfac62cDominik Stadler2014-12-22Bug 57171 and 57163: Adjust the active sheet in setSheetOrder() and removeSheet() for both HSSF and XSSF57171, 57163Show
73fcbfdb6Javen O'Neal2016-07-02bug 59773: move loop invariants outside of loop or change for loops to for-each loops59773Show
141dc22e8Yegor Kozlov2009-09-16improved work with user-defined functions, see Bugzilla 4780947809Show
47a8f6cf4Nick Burch2014-06-11Partial fix for #56537 - Have Workbook offer a close() method, which in turn closes the NPOIFS or OPC resource from which it was loaded56537Show
d0513f2caDominik Stadler2016-03-31Apply patch from bug 58909 - Add a cloneSheet() which directly sets the sheetname to allow to avoid a costly renaming of sheets. Combine related unit-tests into Base-Test-Classes to run them for all types of Workbook/Sheet/...58909Show
a50f45e4cJaven O'Neal2015-12-28bug 58775: use short for data format index, int for cell style index58775Show
39a185e9aNick Burch2010-09-21Fix bug #49966 - Correctly remove calcChain entries for XSSF cells that stop holding formulas49966Show
3b4a96bbcNick Burch2014-11-04Some more XSSF testing for #5718457184Show
8a7cd6308Javen O'Neal2015-12-28bug 58775: add Override annotations, Javadocs, and comments58775Show
1d8220671Ugo Cei2009-10-28[47942] added implementation of protection features to XLSX and DOCX files. Patch submitted by Roberto Albertini.47942Show
efc543103Yegor Kozlov2009-06-27Explicitly set the 1900 date system when creating XSSF workbooks, see Bugzilla 4741147411Show
dfd906aa9Javen O'Neal2017-01-20bug 60605: remove code for enforcing rule that active sheet cannot be hidden60605Show
15be6fb33Javen O'Neal2017-01-20bug 60605: convert Workbook.SHEET_STATE_* to SheetVisibility enum60605Show
3543d1a55Nick Burch2015-05-03Avoid short wrapping on cell styles and formats > 32,767 in XSSF - format supports up to 64,000 of them #5788057880Show
1ed2a1832Nick Burch2014-07-19There can be more than one linked ExternalLinks table for a workbook #5674456744Show
5899f8884Andreas Beeker2017-01-15#60586 - Support embedding OLE1.0 package in XSSF / SS Common60586Show
611bcffb0Nick Burch2014-07-18Initial support for XSSF External Links tables, which hold references to other workbooks referenced by formulas and names. #5674456744Show
df4983815Nick Burch2011-03-18Fix bug #49253 - When setting repeating rows and columns for XSSF, don't break the print settings if they were already there49253Show
442579c32Yegor Kozlov2010-09-11fixed inconsistent behaviour between HSSF and XSSF when creating consecutive names, see Bugzilla 4990749907Show
d5f241bfbYegor Kozlov2009-08-05Avoid FormulaParseException in XSSFWorkbook.setRepeatingRowsAndColumns when removing repeated rows and columns, see Bugzilla 4762047620Show
6790b8559Yegor Kozlov2011-12-10Bugzilla 52204: Deprecated XSSFWorkbook(String path) constructor because it does not close underlying .zip file52204Show
797f3368dNick Burch2014-07-30Patch from Sofia Larsson and Martin Andersson from bug #56020 - XSSF support for creating Pivot tables56020Show
f33843810Nick Burch2014-07-03Now that XSSFWorkbook can be closed, the older path based constructor no longer needs to be deprecated #5653756537Show
d55edf3f7Yegor Kozlov2010-09-05improved API for hiding sheets, see Bugzilla 4987849878Show
374442842Yegor Kozlov2010-09-04fixed XSSFWorkbook.createSheet to throw exception if sheet name begins or ends with a single quote ('), see Bugzilla 4987549875Show
fcb22a8a5Javen O'Neal2016-08-01bug 59922: rename XSSFPaswordHelper to XSSFPasswordHelper59922Show
a6aa1fd99Yegor Kozlov2012-02-26Bugzilla 52255 - support adding TIFF,EPS and WPG pictures in OOXML documents52255Show
817a44dcdYegor Kozlov2011-03-04Change related formulas and named ranges when XSSFWorkbook.setSheetName is called, see Bugzilla 4710047100Show
4bd9afde4Dominik Stadler2016-03-13Bug 56930: Add Workbook.getNames() to allow to query for names that appear multiple times56930Show
0fdd7a1dbNick Burch2014-11-04Partial HSSF support for adding new external workbook formula references for #5718457184Show
eb40f810dYegor Kozlov2012-10-10Bugzilla 53568: Fixed null returned by XSSFPicture.getPictureData()53568Show
141294063Yegor Kozlov2012-10-04Bugzilla 53950 - fixed setForceFormulaRecalculation to reset workbook-level manual flag<53950Show
83f5683c5Dominik Stadler2014-12-22Bug 57373: Fix get/setFirstVisibleTab() for XSSFWorkbook57373Show
8e36872c4Andreas Beeker2016-03-12#59170 - Remove deprecated classes (POI 3.15) - *Workbook.setRepeatingRowsAndColumns()59170Show
d0320ad77Andreas Beeker2014-05-14Bug 56468 - Writing a workbook more than once corrupts the file56468Show
9647b62d1Nick Burch2015-09-17Patch from Javen ONeal from bug #58245 - Make Workbook support iterating over Sheets58245Show
8394c58b1Yegor Kozlov2012-08-04Bug 53500: split setRepatingRowsAndColumns into setRepeatingRows and setRepeatingColumns53500Show
a5918f26fDominik Stadler2015-09-13Update javadoc for bug 5612956129Show
af23e1554Yegor Kozlov2009-06-10Fixed XSSFWorkbook#setRepeatingRowsAndColumns to tolerate sheet names with quotes, see bugzilla #4729447294Show
b7c14b3a8Dominik Stadler2015-03-11Bug 56467: Fix cloning of sheets with pictures56467Show
cae73922aJosh Micich2009-09-17Improvements to patch 47809 (support for UDFs)47809Show
651e62217Yegor Kozlov2013-03-03Bugzilla 54625 - Register user-defined functions in instance scope instead of static54625Show
e13374683Dominik Stadler2015-03-01Bug 57165: Avoid PartAlreadyExistsException when removing/cloning sheets57165Show