org.apache.poi.hssf.usermodel
Class HSSFRow

java.lang.Object
  extended by org.apache.poi.hssf.usermodel.HSSFRow
All Implemented Interfaces:
java.lang.Comparable<HSSFRow>, java.lang.Iterable<Cell>, Row

public final class HSSFRow
extends java.lang.Object
implements Row, java.lang.Comparable<HSSFRow>

High level representation of a row of a spreadsheet. Only rows that have cells should be added to a Sheet.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.poi.ss.usermodel.Row
Row.MissingCellPolicy
 
Field Summary
static int INITIAL_CAPACITY
           
 
Method Summary
 java.util.Iterator<Cell> cellIterator()
           
 int compareTo(HSSFRow other)
          Compares two HSSFRow objects.
 HSSFCell createCell(int column)
          Use this to create new cells within the row and return it.
 HSSFCell createCell(int columnIndex, CellType type)
          Use this to create new cells within the row and return it.
 HSSFCell createCell(int columnIndex, int type)
          Deprecated. POI 3.15 beta 3
 boolean equals(java.lang.Object obj)
           
 HSSFCell getCell(int cellnum)
          Get the hssfcell representing a given column (logical cell) 0-based.
 HSSFCell getCell(int cellnum, Row.MissingCellPolicy policy)
          Get the hssfcell representing a given column (logical cell) 0-based.
 short getFirstCellNum()
          get the number of the first cell contained in this row.
 short getHeight()
          get the row's height or ff (-1) for undefined/default-height in twips (1/20th of a point)
 float getHeightInPoints()
          get the row's height or ff (-1) for undefined/default-height in points (20*getHeight())
 short getLastCellNum()
          Gets the index of the last cell contained in this row PLUS ONE.
 int getOutlineLevel()
          Returns the rows outline level.
 int getPhysicalNumberOfCells()
          gets the number of defined cells (NOT number of cells in the actual row!).
 int getRowNum()
          get row number this row represents
protected  RowRecord getRowRecord()
          get the lowlevel RowRecord represented by this object - should only be called by other parts of the high level API
 HSSFCellStyle getRowStyle()
          Returns the whole-row cell styles.
 HSSFSheet getSheet()
          Returns the HSSFSheet this row belongs to
 boolean getZeroHeight()
          get whether or not to display this row with 0 height
 int hashCode()
           
 boolean isFormatted()
          Is this row formatted? Most aren't, but some rows do have whole-row styles.
 java.util.Iterator<Cell> iterator()
          Alias for cellIterator() to allow foreach loops
 void moveCell(HSSFCell cell, short newColumn)
          Moves the supplied cell to a new column, which must not already have a cell there!
protected  void removeAllCells()
          Removes all the cells from the row, and their records too.
 void removeCell(Cell cell)
          remove the HSSFCell from this row.
 void setHeight(short height)
          set the row's height or set to ff (-1) for undefined/default-height.
 void setHeightInPoints(float height)
          set the row's height in points.
 void setRowNum(int rowIndex)
          set the row number of this row.
 void setRowStyle(CellStyle style)
          Applies a whole-row cell styling to the row.
 void setRowStyle(HSSFCellStyle style)
          Applies a whole-row cell styling to the row.
 void setZeroHeight(boolean zHeight)
          set whether or not to display this row with 0 height
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INITIAL_CAPACITY

public static final int INITIAL_CAPACITY
Method Detail

createCell

public HSSFCell createCell(int column)
Use this to create new cells within the row and return it.

The cell that is returned is a CellType.BLANK. The type can be changed either through calling setCellValue or setCellType.

Specified by:
createCell in interface Row
Parameters:
column - - the column number this cell represents
Returns:
HSSFCell a high level representation of the created cell.
Throws:
java.lang.IllegalArgumentException - if columnIndex < 0 or greater than 255, the maximum number of columns supported by the Excel binary format (.xls)

createCell

public HSSFCell createCell(int columnIndex,
                           int type)
Deprecated. POI 3.15 beta 3

Use this to create new cells within the row and return it.

The cell that is returned will be of the requested type. The type can be changed either through calling setCellValue or setCellType, but there is a small overhead to doing this, so it is best to create the required type up front.

Specified by:
createCell in interface Row
Parameters:
columnIndex - - the column number this cell represents
type - - the cell's data type
Returns:
HSSFCell a high level representation of the created cell.
Throws:
java.lang.IllegalArgumentException - if columnIndex < 0 or greater than 255, the maximum number of columns supported by the Excel binary format (.xls)
See Also:
CellType.BLANK, CellType.BOOLEAN, CellType.ERROR, CellType.FORMULA, CellType.NUMERIC, CellType.STRING

createCell

public HSSFCell createCell(int columnIndex,
                           CellType type)
Use this to create new cells within the row and return it.

The cell that is returned will be of the requested type. The type can be changed either through calling setCellValue or setCellType, but there is a small overhead to doing this, so it is best to create the required type up front.

Specified by:
createCell in interface Row
Parameters:
columnIndex - - the column number this cell represents
type - - the cell's data type
Returns:
HSSFCell a high level representation of the created cell.
Throws:
java.lang.IllegalArgumentException - if columnIndex < 0 or greater than 255, the maximum number of columns supported by the Excel binary format (.xls)

removeCell

public void removeCell(Cell cell)
remove the HSSFCell from this row.

Specified by:
removeCell in interface Row
Parameters:
cell - to remove

removeAllCells

protected void removeAllCells()
Removes all the cells from the row, and their records too.


setRowNum

public void setRowNum(int rowIndex)
set the row number of this row.

Specified by:
setRowNum in interface Row
Parameters:
rowIndex - the row number (0-based)
Throws:
java.lang.IndexOutOfBoundsException - if the row number is not within the range 0-65535.

getRowNum

public int getRowNum()
get row number this row represents

Specified by:
getRowNum in interface Row
Returns:
the row number (0 based)

getSheet

public HSSFSheet getSheet()
Returns the HSSFSheet this row belongs to

Specified by:
getSheet in interface Row
Returns:
the HSSFSheet that owns this row

getOutlineLevel

public int getOutlineLevel()
Returns the rows outline level. Increased as you put it into more groups (outlines), reduced as you take it out of them.

Specified by:
getOutlineLevel in interface Row

moveCell

public void moveCell(HSSFCell cell,
                     short newColumn)
Moves the supplied cell to a new column, which must not already have a cell there!

Parameters:
cell - The cell to move
newColumn - The new column number (0 based)

getCell

public HSSFCell getCell(int cellnum)
Get the hssfcell representing a given column (logical cell) 0-based. If you ask for a cell that is not defined then you get a null, unless you have set a different Row.MissingCellPolicy on the base workbook.

Specified by:
getCell in interface Row
Parameters:
cellnum - 0 based column number
Returns:
HSSFCell representing that column or null if undefined.
See Also:
Row.getCell(int, org.apache.poi.ss.usermodel.Row.MissingCellPolicy)

getCell

public HSSFCell getCell(int cellnum,
                        Row.MissingCellPolicy policy)
Get the hssfcell representing a given column (logical cell) 0-based. If you ask for a cell that is not defined, then your supplied policy says what to do

Specified by:
getCell in interface Row
Parameters:
cellnum - 0 based column number
policy - Policy on blank / missing cells
Returns:
representing that column or null if undefined + policy allows.

getFirstCellNum

public short getFirstCellNum()
get the number of the first cell contained in this row.

Specified by:
getFirstCellNum in interface Row
Returns:
short representing the first logical cell in the row, or -1 if the row does not contain any cells.

getLastCellNum

public short getLastCellNum()
Gets the index of the last cell contained in this row PLUS ONE. The result also happens to be the 1-based column number of the last cell. This value can be used as a standard upper bound when iterating over cells:
 short minColIx = row.getFirstCellNum();
 short maxColIx = row.getLastCellNum();
 for(short colIx=minColIx; colIx<maxColIx; colIx++) {
   HSSFCell cell = row.getCell(colIx);
   if(cell == null) {
     continue;
   }
   //... do something with cell
 }
 

Specified by:
getLastCellNum in interface Row
Returns:
short representing the last logical cell in the row PLUS ONE, or -1 if the row does not contain any cells.

getPhysicalNumberOfCells

public int getPhysicalNumberOfCells()
gets the number of defined cells (NOT number of cells in the actual row!). That is to say if only columns 0,4,5 have values then there would be 3.

Specified by:
getPhysicalNumberOfCells in interface Row
Returns:
int representing the number of defined cells in the row.

setHeight

public void setHeight(short height)
set the row's height or set to ff (-1) for undefined/default-height. Set the height in "twips" or 1/20th of a point.

Specified by:
setHeight in interface Row
Parameters:
height - rowheight or -1 for undefined (use sheet default)

setZeroHeight

public void setZeroHeight(boolean zHeight)
set whether or not to display this row with 0 height

Specified by:
setZeroHeight in interface Row
Parameters:
zHeight - height is zero or not.

getZeroHeight

public boolean getZeroHeight()
get whether or not to display this row with 0 height

Specified by:
getZeroHeight in interface Row
Returns:
- zHeight height is zero or not.

setHeightInPoints

public void setHeightInPoints(float height)
set the row's height in points.

Specified by:
setHeightInPoints in interface Row
Parameters:
height - row height in points, -1 means to use the default height

getHeight

public short getHeight()
get the row's height or ff (-1) for undefined/default-height in twips (1/20th of a point)

Specified by:
getHeight in interface Row
Returns:
rowheight or 0xff for undefined (use sheet default)

getHeightInPoints

public float getHeightInPoints()
get the row's height or ff (-1) for undefined/default-height in points (20*getHeight())

Specified by:
getHeightInPoints in interface Row
Returns:
rowheight or 0xff for undefined (use sheet default)
See Also:
Sheet.getDefaultRowHeightInPoints()

getRowRecord

protected RowRecord getRowRecord()
get the lowlevel RowRecord represented by this object - should only be called by other parts of the high level API

Returns:
RowRecord this row represents

isFormatted

public boolean isFormatted()
Is this row formatted? Most aren't, but some rows do have whole-row styles. For those that do, you can get the formatting from getRowStyle()

Specified by:
isFormatted in interface Row

getRowStyle

public HSSFCellStyle getRowStyle()
Returns the whole-row cell styles. Most rows won't have one of these, so will return null. Call isFormatted() to check first.

Specified by:
getRowStyle in interface Row

setRowStyle

public void setRowStyle(HSSFCellStyle style)
Applies a whole-row cell styling to the row.


setRowStyle

public void setRowStyle(CellStyle style)
Applies a whole-row cell styling to the row.

Specified by:
setRowStyle in interface Row

cellIterator

public java.util.Iterator<Cell> cellIterator()
Specified by:
cellIterator in interface Row
Returns:
cell iterator of the physically defined cells. Note that the 4th element might well not be cell 4, as the iterator will not return un-defined (null) cells. Call getCellNum() on the returned cells to know which cell they are. As this only ever works on physically defined cells, the Row.MissingCellPolicy has no effect.

iterator

public java.util.Iterator<Cell> iterator()
Alias for cellIterator() to allow foreach loops

Specified by:
iterator in interface java.lang.Iterable<Cell>

compareTo

public int compareTo(HSSFRow other)
Compares two HSSFRow objects. Two rows are equal if they belong to the same worksheet and their row indexes are equal.

Specified by:
compareTo in interface java.lang.Comparable<HSSFRow>
Parameters:
other - the HSSFRow to be compared.
Returns:
  • the value 0 if the row number of this HSSFRow is equal to the row number of the argument HSSFRow
  • a value less than 0 if the row number of this this HSSFRow is numerically less than the row number of the argument HSSFRow
  • a value greater than 0 if the row number of this this HSSFRow is numerically greater than the row number of the argument HSSFRow
Throws:
java.lang.IllegalArgumentException - if the argument row belongs to a different worksheet

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object