## org.apache.poi.hssf.record
Class MergeCellsRecord

    java.lang.Object
      org.apache.poi.hssf.record.Record
          org.apache.poi.hssf.record.MergeCellsRecord

public class MergeCellsRecord
extends Record

Title: Merged Cells Record
Description: Optional record defining a square area of cells to "merged" into one cell.
REFERENCE: NONE (UNDOCUMENTED PRESENTLY)

Version:
  2.0-pre
Author:
  Andrew C. Oliver (acoliver at apache dot org)

Nested Class Summary
`class` `MergeCellsRecord.MergedRegion` this is a low level representation of a MergedRegion of cells.

Field Summary
`static short` `sid`

Constructor Summary
`MergeCellsRecord()`
`MergeCellsRecord(short sid, short size, byte[] data)` Constructs a MergedCellsRecord and sets its fields appropriately
`MergeCellsRecord(short sid, short size, byte[] data, int offset)` Constructs a MergedCellsRecord and sets its fields appropriately

Method Summary
`int` `addArea(int rowfrom, short colfrom, int rowto, short colto)` Add an area to consider a merged cell.
`java.lang.Object` `clone()`
`protected void` `fillFields(byte[] data, short size, int offset)` called by the constructor, should set class level fields.
`MergeCellsRecord.MergedRegion` `getAreaAt(int index)` return the MergedRegion at the given index.
`short` `getNumAreas()` get the number of merged areas.
`int` `getRecordSize()` gives the current serialized size of the record.
`short` `getSid()` return the non static version of the id for this record.
`void` `removeAreaAt(int area)` essentially unmerge the cells in the "area" stored at the passed in index
`int` `serialize(int offset, byte[] data)` called by the class that is responsible for writing this sucker.
`void` `setNumAreas(short numareas)` Deprecated. We now link the size to the actual array of merged regions
`java.lang.String` `toString()` get a string representation of the record (for biffview/debugging)
`protected void` `validateSid(short id)` called by constructor, should throw runtime exception in the event of a record passed with a differing ID.

Methods inherited from class org.apache.poi.hssf.record.Record
`fillFields, isInValueSection, isValue, processContinueRecord, serialize`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### sid

    public static final short sid

See Also:
  Constant Field Values

Constructor Detail

### MergeCellsRecord

    public MergeCellsRecord()

### MergeCellsRecord

    public MergeCellsRecord(short sid,
                            short size,
                            byte[] data)

  Constructs a MergedCellsRecord and sets its fields appropriately

Parameters:
  `sid` - id must be 0xe5 or an exception will be throw upon validation
  `size` - the size of the data area of the record
  `data` - data of the record (should not contain sid/len)

### MergeCellsRecord

    public MergeCellsRecord(short sid,
                            short size,
                            byte[] data,
                            int offset)

  Constructs a MergedCellsRecord and sets its fields appropriately

Parameters:
  `sid` - id must be 0xe5 or an exception will be throw upon validation
  `size` - the size of the data area of the record
  `data` - data of the record (should not contain sid/len)
  `offset` - the offset of the record's data

Method Detail

### fillFields

    protected void fillFields(byte[] data,
                              short size,
                              int offset)

  Description copied from class: `Record`
  called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.

  Specified by:
    `fillFields` in class `Record`
  Parameters:
    `data` - raw data
    `size` - size of data
    `offset` - of the record's data (provided a big array of the file)

### getNumAreas

    public short getNumAreas()

  get the number of merged areas. If this drops down to 0 you should just go ahead and delete the record.

  Returns:
    number of areas

### setNumAreas

    public void setNumAreas(short numareas)

  Deprecated. We now link the size to the actual array of merged regions

  set the number of merged areas. You do not need to call this if you use addArea, it will be incremented automatically or decremented when an area is removed. If you are setting this to 0 then you are a terrible person. Just remove the record. (just kidding about you being a terrible person..hehe)

  Parameters:
    `numareas` - number of areas
  See Also:
    `getNumAreas()`

### addArea

    public int addArea(int rowfrom,
                       short colfrom,
                       int rowto,
                       short colto)

  Add an area to consider a merged cell. The index returned is only gauranteed to be correct provided you do not add ahead of or remove ahead of it (in which case you should increment or decrement appropriately....in other words its an arrayList)

  Parameters:
    `rowfrom` - - the upper left hand corner's row
    `colfrom` - - the upper left hand corner's col
    `rowto` - - the lower right hand corner's row
    `colto` - - the lower right hand corner's col
  Returns:
    new index of said area (don't depend on it if you add/remove)

### removeAreaAt

    public void removeAreaAt(int area)

  essentially unmerge the cells in the "area" stored at the passed in index

  Parameters:
    `area` - index

### getAreaAt

    public MergeCellsRecord.MergedRegion getAreaAt(int index)

  return the MergedRegion at the given index.

  Returns:
    MergedRegion representing the area that is Merged (r1,c1 - r2,c2)

### getRecordSize

    public int getRecordSize()

  Description copied from class: `Record`
  gives the current serialized size of the record. Should include the sid and reclength (4 bytes).

  Overrides:
    `getRecordSize` in class `Record`

### getSid

    public short getSid()

  Description copied from class: `Record`
  return the non static version of the id for this record.

  Specified by:
    `getSid` in class `Record`

### serialize

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

  Description copied from class: `Record`
  called by the class that is responsible for writing this sucker. Subclasses should implement this so that their data is passed back in a byte array.

  Specified by:
    `serialize` in class `Record`
  Parameters:
    `offset` - to begin writing at
    `data` - byte array containing instance data
  Returns:
    number of bytes written

### toString

    public java.lang.String toString()

  Description copied from class: `Record`
  get a string representation of the record (for biffview/debugging)

  Overrides:
    `toString` in class `Record`

### validateSid

    protected void validateSid(short id)

  Description copied from class: `Record`
  called by constructor, should throw runtime exception in the event of a record passed with a differing ID.

  Specified by:
    `validateSid` in class `Record`
  Parameters:
    `id` - alleged id for this record

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `Record`

Copyright © 2003 Apache Software Foundation.