Class 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.
    • Constructor Detail

    • Method Detail

      • allCellsIterator

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

        public java.util.Spliterator<Cell> allCellsSpliterator()
      • 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)
      • 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)
      • 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!
      • spliterator

        public java.util.Spliterator<Cell> spliterator()
        Create a spliterator over the cells from [0, getLastCellNum()). Includes blank cells, excludes empty cells Returns a spliterator over all filled cells (created via Row.createCell()) Throws ConcurrentModificationException if cells are added, moved, or removed after the spliterator is created.
        Specified by:
        spliterator in interface java.lang.Iterable<Cell>
        Specified by:
        spliterator in interface Row
        Returns:
        Cell spliterator of the physically defined cells. Note element 4 may actually be row cell depending on how many are defined!
        Since:
        POI 5.2.0
      • 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