org.apache.poi.ss.util
Class CellRangeAddressList

java.lang.Object
  extended by org.apache.poi.ss.util.CellRangeAddressList

public class CellRangeAddressList
extends java.lang.Object

Implementation of the cell range address lists,like is described in OpenOffice.org's Excel Documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address List' In BIFF8 there is a common way to store absolute cell range address lists in several records (not formulas). A cell range address list consists of a field with the number of ranges and the list of the range addresses. Each cell range address (called an ADDR structure) contains 4 16-bit-values.


Field Summary
protected  java.util.List<CellRangeAddress> _list
          List of CellRangeAddresses.
 
Constructor Summary
CellRangeAddressList()
           
CellRangeAddressList(int firstRow, int lastRow, int firstCol, int lastCol)
          Convenience constructor for creating a CellRangeAddressList with a single CellRangeAddress.
CellRangeAddressList(RecordInputStream in)
           
 
Method Summary
 void addCellRangeAddress(CellRangeAddress cra)
           
 void addCellRangeAddress(int firstRow, int firstCol, int lastRow, int lastCol)
          Add a cell range structure.
 CellRangeAddressList copy()
           
 int countRanges()
          Get the number of following ADDR structures.
 CellRangeAddress getCellRangeAddress(int index)
           
 CellRangeAddress[] getCellRangeAddresses()
           
static int getEncodedSize(int numberOfRanges)
           
 int getSize()
           
 CellRangeAddress remove(int rangeIndex)
           
 int serialize(int offset, byte[] data)
           
 void serialize(LittleEndianOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_list

protected final java.util.List<CellRangeAddress> _list
List of CellRangeAddresses. Each structure represents a cell range

Constructor Detail

CellRangeAddressList

public CellRangeAddressList()

CellRangeAddressList

public CellRangeAddressList(int firstRow,
                            int lastRow,
                            int firstCol,
                            int lastCol)
Convenience constructor for creating a CellRangeAddressList with a single CellRangeAddress. Other CellRangeAddresses may be added later.


CellRangeAddressList

public CellRangeAddressList(RecordInputStream in)
Parameters:
in - the RecordInputstream to read the record from
Method Detail

countRanges

public int countRanges()
Get the number of following ADDR structures. The number of this structures is automatically set when reading an Excel file and/or increased when you manually add a new ADDR structure . This is the reason there isn't a set method for this field .

Returns:
number of ADDR structures

addCellRangeAddress

public void addCellRangeAddress(int firstRow,
                                int firstCol,
                                int lastRow,
                                int lastCol)
Add a cell range structure.

Parameters:
firstRow - - the upper left hand corner's row
firstCol - - the upper left hand corner's col
lastRow - - the lower right hand corner's row
lastCol - - the lower right hand corner's col

addCellRangeAddress

public void addCellRangeAddress(CellRangeAddress cra)

remove

public CellRangeAddress remove(int rangeIndex)

getCellRangeAddress

public CellRangeAddress getCellRangeAddress(int index)
Returns:
CellRangeAddress at the given index

getSize

public int getSize()

getEncodedSize

public static int getEncodedSize(int numberOfRanges)
Returns:
the total size of for the specified number of ranges, including the initial 2 byte range count

serialize

public int serialize(int offset,
                     byte[] data)

serialize

public void serialize(LittleEndianOutput out)

copy

public CellRangeAddressList copy()

getCellRangeAddresses

public CellRangeAddress[] getCellRangeAddresses()