Class HSSFRow

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

public final class HSSFRow extends Object implements Row, 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

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
    int
    Compares two HSSFRow objects.
    void
    copyRowFrom(Row srcRow, CellCopyPolicy policy)
    Copy the cells from srcRow to this row If this row is not a blank row, this will merge the two rows, overwriting the cells in this row with the cells in srcRow If srcRow is null, overwrite cells in destination row with blank values, styles, etc per cell copy policy srcRow may be from a different sheet in the same workbook
    void
    copyRowFrom(Row srcRow, CellCopyPolicy policy, CellCopyContext context)
    Copy the cells from srcRow to this row.
    createCell(int column)
    Use this to create new cells within the row and return it.
    createCell(int columnIndex, CellType type)
    Use this to create new cells within the row and return it.
    boolean
     
    getCell(int cellnum)
    Get the hssfcell representing a given column (logical cell) 0-based.
    getCell(int cellnum, Row.MissingCellPolicy policy)
    Get the hssfcell representing a given column (logical cell) 0-based.
    short
    get the number of the first cell contained in this row.
    short
    get the row's height or ff (-1) for undefined/default-height in twips (1/20th of a point)
    float
    get the row's height or ff (-1) for undefined/default-height in points (20*getHeight())
    short
    Gets the index of the last cell contained in this row PLUS ONE.
    int
    Returns the rows outline level.
    int
    gets the number of defined cells (NOT number of cells in the actual row!).
    int
    get row number this row represents
    Returns the whole-row cell styles.
    Returns the HSSFSheet this row belongs to
    boolean
    get whether or not to display this row with 0 height
    int
     
    boolean
    Is this row formatted? Most aren't, but some rows do have whole-row styles.
    void
    moveCell(HSSFCell cell, short newColumn)
    Moves the supplied cell to a new column, which must not already have a cell there!
    void
    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
    Applies a whole-row cell styling to the row.
    void
    Applies a whole-row cell styling to the row.
    void
    setZeroHeight(boolean zHeight)
    set whether or not to display this row with 0 height
    void
    shiftCellsLeft(int firstShiftColumnIndex, int lastShiftColumnIndex, int step)
    Shifts column range [firstShiftColumnIndex-lastShiftColumnIndex] step places to the left.
    void
    shiftCellsRight(int firstShiftColumnIndex, int lastShiftColumnIndex, int step)
    Shifts column range [firstShiftColumnIndex-lastShiftColumnIndex] step places to the right.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach

    Methods inherited from interface org.apache.poi.ss.usermodel.Row

    iterator, spliterator
  • Field Details

    • INITIAL_CAPACITY

      public static final int INITIAL_CAPACITY
  • Method Details

    • 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:
      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, 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:
      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
    • 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:
      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:
    • 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:
    • 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 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.
    • 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 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:
      IllegalArgumentException - if the argument row belongs to a different worksheet
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • shiftCellsRight

      public void shiftCellsRight(int firstShiftColumnIndex, int lastShiftColumnIndex, int step)
      Shifts column range [firstShiftColumnIndex-lastShiftColumnIndex] step places to the right.
      Specified by:
      shiftCellsRight in interface Row
      Parameters:
      firstShiftColumnIndex - the column to start shifting
      lastShiftColumnIndex - the column to end shifting
      step - length of the shifting step
    • shiftCellsLeft

      public void shiftCellsLeft(int firstShiftColumnIndex, int lastShiftColumnIndex, int step)
      Shifts column range [firstShiftColumnIndex-lastShiftColumnIndex] step places to the left.
      Specified by:
      shiftCellsLeft in interface Row
      Parameters:
      firstShiftColumnIndex - the column to start shifting
      lastShiftColumnIndex - the column to end shifting
      step - length of the shifting step
    • copyRowFrom

      @Beta public void copyRowFrom(Row srcRow, CellCopyPolicy policy)
      Copy the cells from srcRow to this row If this row is not a blank row, this will merge the two rows, overwriting the cells in this row with the cells in srcRow If srcRow is null, overwrite cells in destination row with blank values, styles, etc per cell copy policy srcRow may be from a different sheet in the same workbook
      Parameters:
      srcRow - the rows to copy from
      policy - the policy to determine what gets copied
    • copyRowFrom

      @Beta public void copyRowFrom(Row srcRow, CellCopyPolicy policy, CellCopyContext context)
      Copy the cells from srcRow to this row. If this row is not a blank row, this will merge the two rows, overwriting the cells in this row with the cells in srcRow. If srcRow is null, overwrite cells in destination row with blank values, styles, etc per cell copy policy. Note that if you are copying from a non-HSSF row then you will need to disable style copying in the CellCopyPolicy (HSSF styles are not compatible with XSSF styles, for instance).
      Parameters:
      srcRow - the rows to copy from
      policy - the policy to determine what gets copied
      context - the context - see CellCopyContext
      Since:
      v5.1.0