org.apache.poi.xssf.usermodel
Class XSSFTable

java.lang.Object
  extended by org.apache.poi.POIXMLDocumentPart
      extended by org.apache.poi.xssf.usermodel.XSSFTable
All Implemented Interfaces:
Table

public class XSSFTable
extends POIXMLDocumentPart
implements Table

This class implements the Table Part (Open Office XML Part 4: chapter 3.5.1) This implementation works under the assumption that a table contains mappings to a subtree of an XML. The root element of this subtree an occur multiple times (one for each row of the table). The child nodes of the root element can be only attributes or element with maxOccurs=1 property set

Author:
Roberto Manicardi

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.poi.POIXMLDocumentPart
POIXMLDocumentPart.RelationPart
 
Field Summary
 
Fields inherited from interface org.apache.poi.ss.usermodel.Table
isStructuredReference
 
Constructor Summary
XSSFTable()
           
XSSFTable(PackagePart part)
           
XSSFTable(PackagePart part, PackageRelationship rel)
          Deprecated. in POI 3.14, scheduled for removal in POI 3.16
 
Method Summary
protected  void commit()
          Save the content in the underlying package part.
 int findColumnIndex(java.lang.String columnHeader)
          Gets the relative column index of a column in this table having the header name column.
 java.lang.String getCommonXpath()
          Calculates the xpath of the root element for the table.
 org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable getCTTable()
           
 java.lang.String getDisplayName()
           
 CellReference getEndCellReference()
           
 int getEndColIndex()
          Get the bottom-right column index on the sheet
 int getEndRowIndex()
          Get the bottom-right row index
 java.lang.String getName()
          Get the name of the table.
 long getNumberOfMappedColumns()
           
 long getNumerOfMappedColumns()
          Deprecated. 3.15 beta 2. Use getNumberOfMappedColumns().
 int getRowCount()
           
 java.lang.String getSheetName()
          Returns the sheet name that the table belongs to.
 CellReference getStartCellReference()
           
 int getStartColIndex()
          Get the top-left column index relative to the sheet
 int getStartRowIndex()
          Get the top-left row index on the sheet
 java.util.List<XSSFXmlColumnPr> getXmlColumnPrs()
          Note this list is static - once read, it does not notice later changes to the underlying column structures To clear the cache, call updateHeaders()
 XSSFSheet getXSSFSheet()
           
 boolean isHasTotalsRow()
          Returns true iff the table has a 'Totals' row
 boolean mapsTo(long id)
          Checks if this Table element contains even a single mapping to the map identified by id
 void readFrom(java.io.InputStream is)
           
 void setDisplayName(java.lang.String name)
          Changes the display name of the Table
 void setName(java.lang.String name)
          Changes the name of the Table
 void updateHeaders()
          Synchronize table headers with cell values in the parent sheet.
 void writeTo(java.io.OutputStream out)
           
 
Methods inherited from class org.apache.poi.POIXMLDocumentPart
_invokeOnDocumentRead, addRelation, addRelation, createRelationship, createRelationship, createRelationship, getPackagePart, getPackageRelationship, getParent, getRelationById, getRelationId, getRelationParts, getRelations, getTargetPart, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, prepareForCommit, read, rebase, removeRelation, removeRelation, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XSSFTable

public XSSFTable()

XSSFTable

public XSSFTable(PackagePart part)
          throws java.io.IOException
Throws:
java.io.IOException
Since:
POI 3.14-Beta1

XSSFTable

@Deprecated
public XSSFTable(PackagePart part,
                            PackageRelationship rel)
          throws java.io.IOException
Deprecated. in POI 3.14, scheduled for removal in POI 3.16

Throws:
java.io.IOException
Method Detail

readFrom

public void readFrom(java.io.InputStream is)
              throws java.io.IOException
Throws:
java.io.IOException

getXSSFSheet

public XSSFSheet getXSSFSheet()

writeTo

public void writeTo(java.io.OutputStream out)
             throws java.io.IOException
Throws:
java.io.IOException

commit

protected void commit()
               throws java.io.IOException
Description copied from class: POIXMLDocumentPart
Save the content in the underlying package part. Default implementation is empty meaning that the package part is left unmodified. Sub-classes should override and add logic to marshal the "model" into Ooxml4J. For example, the code saving a generic XML entry may look as follows:
 protected void commit() throws IOException {
   PackagePart part = getPackagePart();
   OutputStream out = part.getOutputStream();
   XmlObject bean = getXmlBean(); //the "model" which holds changes in memory
   bean.save(out, DEFAULT_XML_OPTIONS);
   out.close();
 }
 

Overrides:
commit in class POIXMLDocumentPart
Throws:
java.io.IOException - a subclass may throw an IOException if the changes can't be committed

getCTTable

public org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable getCTTable()

mapsTo

public boolean mapsTo(long id)
Checks if this Table element contains even a single mapping to the map identified by id

Parameters:
id - the XSSFMap ID
Returns:
true if the Table element contain mappings

getCommonXpath

public java.lang.String getCommonXpath()
Calculates the xpath of the root element for the table. This will be the common part of all the mapping's xpaths Note: this function caches the result for performance. To flush the cache updateHeaders() must be called.

Returns:
the xpath of the table's root element

getXmlColumnPrs

public java.util.List<XSSFXmlColumnPr> getXmlColumnPrs()
Note this list is static - once read, it does not notice later changes to the underlying column structures To clear the cache, call updateHeaders()

Returns:
List of XSSFXmlColumnPr

getName

public java.lang.String getName()
Description copied from interface: Table
Get the name of the table.

Specified by:
getName in interface Table
Returns:
the name of the Table, if set

setName

public void setName(java.lang.String name)
Changes the name of the Table


getDisplayName

public java.lang.String getDisplayName()
Returns:
the display name of the Table, if set

setDisplayName

public void setDisplayName(java.lang.String name)
Changes the display name of the Table


getNumberOfMappedColumns

public long getNumberOfMappedColumns()
Returns:
the number of mapped table columns (see Open Office XML Part 4: chapter 3.5.1.4)

getNumerOfMappedColumns

public long getNumerOfMappedColumns()
Deprecated. 3.15 beta 2. Use getNumberOfMappedColumns().

Returns:
the number of mapped table columns (see Open Office XML Part 4: chapter 3.5.1.4)

getStartCellReference

public CellReference getStartCellReference()
Returns:
The reference for the cell in the top-left part of the table (see Open Office XML Part 4: chapter 3.5.1.2, attribute ref) Does not track updates to underlying changes to CTTable

getEndCellReference

public CellReference getEndCellReference()
Returns:
The reference for the cell in the bottom-right part of the table (see Open Office XML Part 4: chapter 3.5.1.2, attribute ref) Does not track updates to underlying changes to CTTable

getRowCount

public int getRowCount()
Returns:
the total number of rows in the selection. (Note: in this version autofiltering is ignored) Does not track updates to underlying changes to CTTable

updateHeaders

public void updateHeaders()
Synchronize table headers with cell values in the parent sheet. Headers must be in sync, otherwise Excel will display a "Found unreadable content" message on startup.


findColumnIndex

public int findColumnIndex(java.lang.String columnHeader)
Gets the relative column index of a column in this table having the header name column. The column index is relative to the left-most column in the table, 0-indexed. Returns -1 if column is not a header name in table. Column Header names are case-insensitive Note: this function caches column names for performance. To flush the cache (because columns have been moved or column headers have been changed), updateHeaders() must be called.

Specified by:
findColumnIndex in interface Table
Parameters:
columnHeader - the column header name to get the table column index of
Returns:
column index corresponding to columnHeader
Since:
3.15 beta 2

getSheetName

public java.lang.String getSheetName()
Description copied from interface: Table
Returns the sheet name that the table belongs to.

Specified by:
getSheetName in interface Table
Since:
3.15 beta 2

isHasTotalsRow

public boolean isHasTotalsRow()
Description copied from interface: Table
Returns true iff the table has a 'Totals' row

Specified by:
isHasTotalsRow in interface Table
Since:
3.15 beta 2

getStartColIndex

public int getStartColIndex()
Description copied from interface: Table
Get the top-left column index relative to the sheet

Specified by:
getStartColIndex in interface Table
Returns:
table start column index on sheet
Since:
3.15 beta 2

getStartRowIndex

public int getStartRowIndex()
Description copied from interface: Table
Get the top-left row index on the sheet

Specified by:
getStartRowIndex in interface Table
Returns:
table start row index on sheet
Since:
3.15 beta 2

getEndColIndex

public int getEndColIndex()
Description copied from interface: Table
Get the bottom-right column index on the sheet

Specified by:
getEndColIndex in interface Table
Returns:
table end column index on sheet
Since:
3.15 beta 2

getEndRowIndex

public int getEndRowIndex()
Description copied from interface: Table
Get the bottom-right row index

Specified by:
getEndRowIndex in interface Table
Returns:
table end row index on sheet
Since:
3.15 beta 2


Copyright 2016 The Apache Software Foundation or its licensors, as applicable.