org.apache.poi.xssf.usermodel

## Class XSSFRow

- java.lang.Object
- - org.apache.poi.xssf.usermodel.XSSFRow

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

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

  High level representation of a row of a spreadsheet.

- - ### Nested Class Summary

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

      `Row.MissingCellPolicy`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `XSSFRow(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow row, XSSFSheet sheet)` Construct a XSSFRow.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Iterator<Cell>` | `cellIterator()` Cell iterator over the physically defined cells:
    `int` | `compareTo(XSSFRow other)` Compares two `XSSFRow` 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
    `XSSFCell` | `createCell(int columnIndex)` Use this to create new cells within the row and return it.
    `XSSFCell` | `createCell(int columnIndex, CellType type)` Use this to create new cells within the row and return it.
    `boolean` | `equals(java.lang.Object obj)`
    `XSSFCell` | `getCell(int cellnum)` Returns the cell at the given (0 based) index, with the `Row.MissingCellPolicy` from the parent Workbook.
    `XSSFCell` | `getCell(int cellnum, Row.MissingCellPolicy policy)` Returns the cell at the given (0 based) index, with the specified `Row.MissingCellPolicy`
    `org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow` | `getCTRow()` Returns the underlying CTRow xml bean containing all cell definitions in this row
    `short` | `getFirstCellNum()` Get the 0-based 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.
    `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
    `XSSFCellStyle` | `getRowStyle()` Returns the whole-row cell style.
    `XSSFSheet` | `getSheet()` Returns the XSSFSheet 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:
    `protected void` | `onDocumentWrite()` Fired when the document is written to an output stream.
    `void` | `removeCell(Cell cell)` Remove the Cell from this row.
    `void` | `setHeight(short height)` Set the height in "twips" or 1/20th of a point.
    `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` | `setZeroHeight(boolean height)` Set whether or not to display this row with 0 height
    `protected void` | `shift(int n)` update cell references when shifting rows
    `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.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

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

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

      `forEach, spliterator`

- - ### Constructor Detail

    - #### XSSFRow

          protected XSSFRow(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow row,
                            XSSFSheet sheet)

      Construct a XSSFRow.
      Parameters:
        `row` - the xml bean containing all cell definitions for this row.
        `sheet` - the parent sheet.

  - ### Method Detail

    - #### getSheet

          public XSSFSheet getSheet()

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

    - #### cellIterator

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

      Cell iterator over the physically defined cells:

      >      for (Iterator it = row.cellIterator(); it.hasNext(); ) {
      >          Cell cell = it.next();
      >          ...
      >      }

      Specified by:
        `cellIterator` in interface `Row`
      Returns:
        an iterator over cells in this row.

    - #### iterator

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

      Alias for `cellIterator()` to allow foreach loops:

      >      for(Cell cell : row){
      >          ...
      >      }

      Specified by:
        `iterator` in interface `java.lang.Iterable<Cell>`
      Returns:
        an iterator over cells in this row.

    - #### compareTo

          public int compareTo(XSSFRow other)

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

    - #### createCell

          public XSSFCell createCell(int columnIndex)

      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:
        `columnIndex` - - 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 16384, the maximum number of columns supported by the SpreadsheetML format (.xlsx)

    - #### createCell

          public XSSFCell createCell(int columnIndex,
                                     CellType type)

      Use this to create new cells within the row and return it.
      Specified by:
        `createCell` in interface `Row`
      Parameters:
        `columnIndex` - - the column number this cell represents
        `type` - - the cell's data type
      Returns:
        XSSFCell a high level representation of the created cell.
      Throws:
        `java.lang.IllegalArgumentException` - if the specified cell type is invalid, columnIndex < 0 or greater than 16384, the maximum number of columns supported by the SpreadsheetML format (.xlsx)

    - #### getCell

          public XSSFCell getCell(int cellnum)

      Returns the cell at the given (0 based) index, with the `Row.MissingCellPolicy` from the parent Workbook.
      Specified by:
        `getCell` in interface `Row`
      Parameters:
        `cellnum` - 0 based column number
      Returns:
        the cell at the given (0 based) index
      See Also:
        `Row.getCell(int, org.apache.poi.ss.usermodel.Row.MissingCellPolicy)`

    - #### getCell

          public XSSFCell 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 0-based 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++) {
             XSSFCell 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.

    - #### 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 `XSSFSheet.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 `XSSFSheet.getDefaultRowHeightInPoints()`
      Specified by:
        `getHeightInPoints` in interface `Row`
      Returns:
        row height measured in point size
      See Also:
        `XSSFSheet.getDefaultRowHeightInPoints()`

    - #### setHeight

          public void setHeight(short height)

      Set the height in "twips" or 1/20th of a point.
      Specified by:
        `setHeight` in interface `Row`
      Parameters:
        `height` - the height in "twips" or 1/20th of a point. `-1` resets to the default height

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

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

    - #### getRowNum

          public int getRowNum()

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

    - #### 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.IllegalArgumentException` - if rowNum < 0 or greater than 1048575

    - #### getZeroHeight

          public boolean getZeroHeight()

      Get whether or not to display this row with 0 height
      Specified by:
        `getZeroHeight` in interface `Row`
      Returns:
        - height is zero or not.

    - #### setZeroHeight

          public void setZeroHeight(boolean height)

      Set whether or not to display this row with 0 height
      Specified by:
        `setZeroHeight` in interface `Row`
      Parameters:
        `height` - height is zero or not.

    - #### 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 XSSFCellStyle 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. If the value is null then the style information is removed, causing the cell to used the default workbook style.
      Specified by:
        `setRowStyle` in interface `Row`

    - #### removeCell

          public void removeCell(Cell cell)

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

    - #### getCTRow

          @Internal
          public org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow getCTRow()

      Returns the underlying CTRow xml bean containing all cell definitions in this row
      Returns:
        the underlying CTRow xml bean

    - #### onDocumentWrite

          protected void onDocumentWrite()

      Fired when the document is written to an output stream.
      See Also:
        `()`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        formatted xml representation of this row

    - #### shift

          protected void shift(int n)

      update cell references when shifting rows
      Parameters:
        `n` - the number of rows to move

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

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

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