org.apache.poi.hssf.usermodel

## Class HSSFRow

- java.lang.Object
- - 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `INITIAL_CAPACITY`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `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
    `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

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### 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,
                                     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`

    - #### 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

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