org.apache.poi.xssf.streaming

## Class SXSSFRow

- java.lang.Object
- - org.apache.poi.xssf.streaming.SXSSFRow

- All Implemented Interfaces:
    java.lang.Comparable<SXSSFRow>, java.lang.Iterable<Cell>, Row

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

  Streaming version of XSSFRow implementing the "BigGridDemo" strategy.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SXSSFRow.CellIterator` returns all cells including empty cells (`null` values are returned for empty cells).
    `class` | `SXSSFRow.FilledCellIterator` Create an iterator over the cells from [0, getLastCellNum()).

    - ### Nested classes/interfaces inherited from interface org.apache.poi.ss.usermodel.Row

      `Row.MissingCellPolicy`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SXSSFRow(SXSSFSheet sheet)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Iterator<Cell>` | `allCellsIterator()`
    `java.util.Iterator<Cell>` | `cellIterator()`
    `int` | `compareTo(SXSSFRow other)` Compares two `SXSSFRow` objects.
    `SXSSFCell` | `createCell(int column)` Use this to create new cells within the row and return it.
    `SXSSFCell` | `createCell(int column, CellType type)` Use this to create new cells within the row and return it.
    `boolean` | `equals(java.lang.Object obj)`
    `SXSSFCell` | `getCell(int cellnum)` Get the cell representing a given column (logical cell) 0-based.
    `SXSSFCell` | `getCell(int cellnum, Row.MissingCellPolicy policy)` Returns the cell at the given (0 based) index, with the specified `Row.MissingCellPolicy`
    `java.lang.Boolean` | `getCollapsed()`
    `short` | `getFirstCellNum()` Get the number of the first cell contained in this row.
    `short` | `getHeight()` Get the row's height measured in twips (1/20th of a point).
    `float` | `getHeightInPoints()` Returns row height measured in point size.
    `java.lang.Boolean` | `getHidden()` get row hidden state: Hidden (true), Unhidden (false), Undefined (null)
    `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
    `CellStyle` | `getRowStyle()` Returns the whole-row cell style.
    `SXSSFSheet` | `getSheet()` Returns the Sheet this row belongs to
    `boolean` | `getZeroHeight()` Get whether or not to display this row with 0 height
    `boolean` | `hasCustomHeight()`
    `int` | `hashCode()`
    `boolean` | `isFormatted()` Is this row formatted? Most aren't, but some rows do have whole-row styles.
    `java.util.Iterator<Cell>` | `iterator()`
    `void` | `removeCell(Cell cell)` Remove the Cell from this row.
    `void` | `setCollapsed(java.lang.Boolean collapsed)`
    `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` | `setHidden(java.lang.Boolean hidden)` set row hidden state: Hidden (true), Unhidden (false), Undefined (null)
    `void` | `setRowNum(int rowNum)` Set the row number of this row.
    `void` | `setRowStyle(CellStyle 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)`
    `void` | `shiftCellsRight(int firstShiftColumnIndex, int lastShiftColumnIndex, int step)`

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

- - ### Constructor Detail

    - #### SXSSFRow

          public SXSSFRow(SXSSFSheet sheet)

  - ### Method Detail

    - #### allCellsIterator

          public java.util.Iterator<Cell> allCellsIterator()

    - #### hasCustomHeight

          public boolean hasCustomHeight()

    - #### getOutlineLevel

          public int getOutlineLevel()

      Description copied from interface: `Row`
      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`

    - #### getHidden

          public java.lang.Boolean getHidden()

      get row hidden state: Hidden (true), Unhidden (false), Undefined (null)
      Returns:
        row hidden state

    - #### setHidden

          public void setHidden(java.lang.Boolean hidden)

      set row hidden state: Hidden (true), Unhidden (false), Undefined (null)
      Parameters:
        `hidden` - row hidden state

    - #### getCollapsed

          public java.lang.Boolean getCollapsed()

    - #### setCollapsed

          public void setCollapsed(java.lang.Boolean collapsed)

    - #### iterator

          public java.util.Iterator<Cell> iterator()

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

    - #### createCell

          public SXSSFCell 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:
        Cell a high level representation of the created cell.
      Throws:
        `java.lang.IllegalArgumentException` - if columnIndex < 0 or greater than the maximum number of supported columns (255 for *.xls, 1048576 for *.xlsx)

    - #### createCell

          public SXSSFCell createCell(int column,
                                      CellType type)

      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
        `type` - - the cell's data type
      Returns:
        Cell a high level representation of the created cell.
      Throws:
        `java.lang.IllegalArgumentException` - if columnIndex < 0 or greater than a maximum number of supported columns (255 for *.xls, 1048576 for *.xlsx)

    - #### removeCell

          public void removeCell(Cell cell)

      Remove the Cell from this row.
      Specified by:
        `removeCell` in interface `Row`
      Parameters:
        `cell` - the cell to remove

    - #### setRowNum

          public void setRowNum(int rowNum)

      Set the row number of this row.
      Specified by:
        `setRowNum` in interface `Row`
      Parameters:
        `rowNum` - the row number (0-based)
      Throws:
        `java.lang.IllegalArgumentException` - if rowNum < 0

    - #### getRowNum

          public int getRowNum()

      Get row number this row represents
      Specified by:
        `getRowNum` in interface `Row`
      Returns:
        the row number (0 based)

    - #### getCell

          public SXSSFCell getCell(int cellnum)

      Get the cell representing a given column (logical cell) 0-based. If cell is missing or blank, uses the workbook's MissingCellPolicy to determine the return value.
      Specified by:
        `getCell` in interface `Row`
      Parameters:
        `cellnum` - 0 based column number
      Returns:
        Cell representing that column or null if undefined.
      Throws:
        `java.lang.RuntimeException` - if cellnum is out of bounds
      See Also:
        `getCell(int, org.apache.poi.ss.usermodel.Row.MissingCellPolicy)`

    - #### getCell

          public SXSSFCell getCell(int cellnum,
                                   Row.MissingCellPolicy policy)

      Returns the cell at the given (0 based) index, with the specified `Row.MissingCellPolicy`
      Specified by:
        `getCell` in interface `Row`
      Returns:
        the cell at the given (0 based) index
      Throws:
        `java.lang.IllegalArgumentException` - if cellnum < 0 or the specified MissingCellPolicy is invalid

    - #### 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++) {
             Cell 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 0xff 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` - the height in points. `-1` resets to the default height

    - #### getHeight

          public short getHeight()

      Get the row's height measured in twips (1/20th of a point). If the height is not set, the default worksheet value is returned, See `Sheet.getDefaultRowHeightInPoints()`
      Specified by:
        `getHeight` in interface `Row`
      Returns:
        row height measured in twips (1/20th of a point)

    - #### getHeightInPoints

          public float getHeightInPoints()

      Returns row height measured in point size. If the height is not set, the default worksheet value is returned, See `Sheet.getDefaultRowHeightInPoints()`
      Specified by:
        `getHeightInPoints` in interface `Row`
      Returns:
        row height measured in point size
      See Also:
        `Sheet.getDefaultRowHeightInPoints()`

    - #### 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 CellStyle getRowStyle()

      Returns the whole-row cell style. 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(CellStyle style)

      Applies a whole-row cell styling to the row. The row style can be cleared by passing in `null`.
      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 element 4 may actually be row cell depending on how many are defined!

    - #### getSheet

          public SXSSFSheet getSheet()

      Returns the Sheet this row belongs to
      Specified by:
        `getSheet` in interface `Row`
      Returns:
        the Sheet that owns this row

    - #### compareTo

          public int compareTo(SXSSFRow other)

      Compares two `SXSSFRow` 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<SXSSFRow>`
      Parameters:
        `other` - the `SXSSFRow` to be compared.
      Returns:
        - the value `0` if the row number of this `SXSSFRow` is equal to the row number of the argument `SXSSFRow`
        - a value less than `0` if the row number of this this `SXSSFRow` is numerically less than the row number of the argument `SXSSFRow`
        - a value greater than `0` if the row number of this this `SXSSFRow` is numerically greater than the row number of the argument `SXSSFRow`
      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

          @NotImplemented
          public void shiftCellsRight(int firstShiftColumnIndex,
                                                      int lastShiftColumnIndex,
                                                      int step)

      Specified by:
        `shiftCellsRight` in interface `Row`

    - #### shiftCellsLeft

          @NotImplemented
          public void shiftCellsLeft(int firstShiftColumnIndex,
                                                     int lastShiftColumnIndex,
                                                     int step)

      Specified by:
        `shiftCellsLeft` in interface `Row`

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