org.apache.poi.hssf.usermodel
Class HSSFCell

java.lang.Object
  extended by org.apache.poi.hssf.usermodel.HSSFCell

public class HSSFCell
extends java.lang.Object

High level representation of a cell in a row of a spreadsheet. Cells can be numeric, formula-based or string-based (text). The cell type specifies this. String cells cannot conatin numbers and numeric cells cannot contain strings (at least according to our model). Client apps should do the conversions themselves. Formula cells have the formula string, as well as the formula result, which can be numeric or string.

Cells should have their number (0 based) before being added to a row. Only cells that have values should be added.

Version:
1.0-pre
Author:
Andrew C. Oliver (acoliver at apache dot org), Dan Sherman (dsherman at isisph.com), Brian Sanders (kestrel at burdell dot org) Active Cell support, Yegor Kozlov cell comments support

Field Summary
static int CELL_TYPE_BLANK
          Blank Cell type (3)
static int CELL_TYPE_BOOLEAN
          Boolean Cell type (4)
static int CELL_TYPE_ERROR
          Error Cell type (5)
static int CELL_TYPE_FORMULA
          Formula Cell type (2)
static int CELL_TYPE_NUMERIC
          Numeric Cell type (0)
static int CELL_TYPE_STRING
          String Cell type (1)
static short ENCODING_COMPRESSED_UNICODE
           
static short ENCODING_UNCHANGED
           
static short ENCODING_UTF_16
           
 
Constructor Summary
protected HSSFCell(HSSFWorkbook book, Sheet sheet, int row, CellValueRecordInterface cval)
          Creates an HSSFCell from a CellValueRecordInterface.
protected HSSFCell(HSSFWorkbook book, Sheet sheet, int row, short col)
          Creates new Cell - Should only be called by HSSFRow.
protected HSSFCell(HSSFWorkbook book, Sheet sheet, int row, short col, int type)
          Creates new Cell - Should only be called by HSSFRow.
 
Method Summary
protected static HSSFComment findCellComment(Sheet sheet, int row, int column)
          Cell comment finder.
 boolean getBooleanCellValue()
          get the value of the cell as a boolean.
protected  Workbook getBoundWorkbook()
          Returns the Workbook that this Cell is bound to
 HSSFComment getCellComment()
          Returns comment associated with this cell
 java.lang.String getCellFormula()
           
 short getCellNum()
          get the cell's number within the row
 HSSFCellStyle getCellStyle()
          get the style for the cell.
 int getCellType()
          get the cells type (numeric, formula or string)
protected  CellValueRecordInterface getCellValueRecord()
          Should only be used by HSSFSheet and friends.
 java.util.Date getDateCellValue()
          get the value of the cell as a date.
 short getEncoding()
          Deprecated. As of 3-Jan-06 POI now automatically handles Unicode without forcing the encoding.
 byte getErrorCellValue()
          get the value of the cell as an error code.
 HSSFHyperlink getHyperlink()
          Returns hyperlink associated with this cell
 double getNumericCellValue()
          get the value of the cell as a number.
 HSSFRichTextString getRichStringCellValue()
          get the value of the cell as a string - for numeric cells we throw an exception.
 java.lang.String getStringCellValue()
          Deprecated. Use the HSSFRichTextString return
 void setAsActiveCell()
          Sets this cell as the active cell for the worksheet
 void setCellComment(HSSFComment comment)
          Assign a comment to this cell
 void setCellErrorValue(byte value)
          set a error value for the cell
 void setCellFormula(java.lang.String formula)
           
 void setCellNum(short num)
          Deprecated. Doesn't update the row's idea of what cell this is, use HSSFRow.moveCell(HSSFCell, short) instead
 void setCellStyle(HSSFCellStyle style)
          set the style for the cell.
 void setCellType(int cellType)
          set the cells type (numeric, formula or string)
 void setCellValue(boolean value)
          set a boolean value for the cell
 void setCellValue(java.util.Calendar value)
          set a date value for the cell.
 void setCellValue(java.util.Date value)
          set a date value for the cell.
 void setCellValue(double value)
          set a numeric value for the cell
 void setCellValue(HSSFRichTextString value)
          set a string value for the cell.
 void setCellValue(java.lang.String value)
          Deprecated. Use setCellValue(HSSFRichTextString) instead.
 void setEncoding(short encoding)
          Deprecated. As of 3-Jan-06 POI now automatically handles Unicode without forcing the encoding.
 void setHyperlink(HSSFHyperlink link)
          Assign a hypelrink to this cell
 java.lang.String toString()
          Returns a string representation of the cell This method returns a simple representation, anthing more complex should be in user code, with knowledge of the semantics of the sheet being processed.
protected  void updateCellNum(short num)
          Updates the cell record's idea of what column it belongs in (0 based)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CELL_TYPE_NUMERIC

public static final int CELL_TYPE_NUMERIC
Numeric Cell type (0)

See Also:
setCellType(int), getCellType(), Constant Field Values

CELL_TYPE_STRING

public static final int CELL_TYPE_STRING
String Cell type (1)

See Also:
setCellType(int), getCellType(), Constant Field Values

CELL_TYPE_FORMULA

public static final int CELL_TYPE_FORMULA
Formula Cell type (2)

See Also:
setCellType(int), getCellType(), Constant Field Values

CELL_TYPE_BLANK

public static final int CELL_TYPE_BLANK
Blank Cell type (3)

See Also:
setCellType(int), getCellType(), Constant Field Values

CELL_TYPE_BOOLEAN

public static final int CELL_TYPE_BOOLEAN
Boolean Cell type (4)

See Also:
setCellType(int), getCellType(), Constant Field Values

CELL_TYPE_ERROR

public static final int CELL_TYPE_ERROR
Error Cell type (5)

See Also:
setCellType(int), getCellType(), Constant Field Values

ENCODING_UNCHANGED

public static final short ENCODING_UNCHANGED
See Also:
Constant Field Values

ENCODING_COMPRESSED_UNICODE

public static final short ENCODING_COMPRESSED_UNICODE
See Also:
Constant Field Values

ENCODING_UTF_16

public static final short ENCODING_UTF_16
See Also:
Constant Field Values
Constructor Detail

HSSFCell

protected HSSFCell(HSSFWorkbook book,
                   Sheet sheet,
                   int row,
                   short col)
Creates new Cell - Should only be called by HSSFRow. This creates a cell from scratch.

When the cell is initially created it is set to CELL_TYPE_BLANK. Cell types can be changed/overwritten by calling setCellValue with the appropriate type as a parameter although conversions from one type to another may be prohibited.

Parameters:
book - - Workbook record of the workbook containing this cell
sheet - - Sheet record of the sheet containing this cell
row - - the row of this cell
col - - the column for this cell
See Also:
HSSFRow.createCell(short)

HSSFCell

protected HSSFCell(HSSFWorkbook book,
                   Sheet sheet,
                   int row,
                   short col,
                   int type)
Creates new Cell - Should only be called by HSSFRow. This creates a cell from scratch.

Parameters:
book - - Workbook record of the workbook containing this cell
sheet - - Sheet record of the sheet containing this cell
row - - the row of this cell
col - - the column for this cell
type - - CELL_TYPE_NUMERIC, CELL_TYPE_STRING, CELL_TYPE_FORMULA, CELL_TYPE_BLANK, CELL_TYPE_BOOLEAN, CELL_TYPE_ERROR Type of cell
See Also:
HSSFRow.createCell(short,int)

HSSFCell

protected HSSFCell(HSSFWorkbook book,
                   Sheet sheet,
                   int row,
                   CellValueRecordInterface cval)
Creates an HSSFCell from a CellValueRecordInterface. HSSFSheet uses this when reading in cells from an existing sheet.

Parameters:
book - - Workbook record of the workbook containing this cell
sheet - - Sheet record of the sheet containing this cell
cval - - the Cell Value Record we wish to represent
Method Detail

getBoundWorkbook

protected Workbook getBoundWorkbook()
Returns the Workbook that this Cell is bound to

Returns:

setCellNum

public void setCellNum(short num)
Deprecated. Doesn't update the row's idea of what cell this is, use HSSFRow.moveCell(HSSFCell, short) instead

Set the cell's number within the row (0 based).

Parameters:
num - short the cell number

updateCellNum

protected void updateCellNum(short num)
Updates the cell record's idea of what column it belongs in (0 based)

Parameters:
num - the new cell number

getCellNum

public short getCellNum()
get the cell's number within the row

Returns:
short reperesenting the column number (logical!)

setCellType

public void setCellType(int cellType)
set the cells type (numeric, formula or string)

See Also:
CELL_TYPE_NUMERIC, CELL_TYPE_STRING, CELL_TYPE_FORMULA, CELL_TYPE_BLANK, CELL_TYPE_BOOLEAN, CELL_TYPE_ERROR

getCellType

public int getCellType()
get the cells type (numeric, formula or string)

See Also:
CELL_TYPE_STRING, CELL_TYPE_NUMERIC, CELL_TYPE_FORMULA, CELL_TYPE_BOOLEAN, CELL_TYPE_ERROR

setCellValue

public void setCellValue(double value)
set a numeric value for the cell

Parameters:
value - the numeric value to set this cell to. For formulas we'll set the precalculated value, for numerics we'll set its value. For other types we will change the cell to a numeric cell and set its value.

setCellValue

public void setCellValue(java.util.Date value)
set a date value for the cell. Excel treats dates as numeric so you will need to format the cell as a date.

Parameters:
value - the date value to set this cell to. For formulas we'll set the precalculated value, for numerics we'll set its value. For other types we will change the cell to a numeric cell and set its value.

setCellValue

public void setCellValue(java.util.Calendar value)
set a date value for the cell. Excel treats dates as numeric so you will need to format the cell as a date. This will set the cell value based on the Calendar's timezone. As Excel does not support timezones this means that both 20:00+03:00 and 20:00-03:00 will be reported as the same value (20:00) even that there are 6 hours difference between the two times. This difference can be preserved by using setCellValue(value.getTime()) which will automatically shift the times to the default timezone.

Parameters:
value - the date value to set this cell to. For formulas we'll set the precalculated value, for numerics we'll set its value. For othertypes we will change the cell to a numeric cell and set its value.

setCellValue

public void setCellValue(java.lang.String value)
Deprecated. Use setCellValue(HSSFRichTextString) instead.

set a string value for the cell. Please note that if you are using full 16 bit unicode you should call setEncoding() first.

Parameters:
value - value to set the cell to. For formulas we'll set the formula string, for String cells we'll set its value. For other types we will change the cell to a string cell and set its value. If value is null then we will change the cell to a Blank cell.

setCellValue

public void setCellValue(HSSFRichTextString value)
set a string value for the cell. Please note that if you are using full 16 bit unicode you should call setEncoding() first.

Parameters:
value - value to set the cell to. For formulas we'll set the formula string, for String cells we'll set its value. For other types we will change the cell to a string cell and set its value. If value is null then we will change the cell to a Blank cell.

setCellFormula

public void setCellFormula(java.lang.String formula)

getCellFormula

public java.lang.String getCellFormula()

getNumericCellValue

public double getNumericCellValue()
get the value of the cell as a number. For strings we throw an exception. For blank cells we return a 0.


getDateCellValue

public java.util.Date getDateCellValue()
get the value of the cell as a date. For strings we throw an exception. For blank cells we return a null.


getStringCellValue

public java.lang.String getStringCellValue()
Deprecated. Use the HSSFRichTextString return

get the value of the cell as a string - for numeric cells we throw an exception. For blank cells we return an empty string. For formulaCells that are not string Formulas, we return empty String


getRichStringCellValue

public HSSFRichTextString getRichStringCellValue()
get the value of the cell as a string - for numeric cells we throw an exception. For blank cells we return an empty string. For formulaCells that are not string Formulas, we return empty String


setCellValue

public void setCellValue(boolean value)
set a boolean value for the cell

Parameters:
value - the boolean value to set this cell to. For formulas we'll set the precalculated value, for booleans we'll set its value. For other types we will change the cell to a boolean cell and set its value.

setCellErrorValue

public void setCellErrorValue(byte value)
set a error value for the cell

Parameters:
value - the error value to set this cell to. For formulas we'll set the precalculated value ??? IS THIS RIGHT??? , for errors we'll set its value. For other types we will change the cell to an error cell and set its value.

getBooleanCellValue

public boolean getBooleanCellValue()
get the value of the cell as a boolean. For strings, numbers, and errors, we throw an exception. For blank cells we return a false.


getErrorCellValue

public byte getErrorCellValue()
get the value of the cell as an error code. For strings, numbers, and booleans, we throw an exception. For blank cells we return a 0.


setCellStyle

public void setCellStyle(HSSFCellStyle style)
set the style for the cell. The style should be an HSSFCellStyle created/retreived from the HSSFWorkbook.

Parameters:
style - reference contained in the workbook
See Also:
HSSFWorkbook.createCellStyle(), HSSFWorkbook.getCellStyleAt(short)

getCellStyle

public HSSFCellStyle getCellStyle()
get the style for the cell. This is a reference to a cell style contained in the workbook object.

See Also:
HSSFWorkbook.getCellStyleAt(short)

getEncoding

public short getEncoding()
Deprecated. As of 3-Jan-06 POI now automatically handles Unicode without forcing the encoding.

used for internationalization, currently -1 for unchanged, 0 for compressed unicode or 1 for 16-bit

Returns:
-1, 1 or 0 for unchanged, compressed or uncompressed (used only with String type)
See Also:
ENCODING_UNCHANGED, ENCODING_COMPRESSED_UNICODE, ENCODING_UTF_16

setEncoding

public void setEncoding(short encoding)
Deprecated. As of 3-Jan-06 POI now automatically handles Unicode without forcing the encoding.

set the encoding to either 8 or 16 bit. (US/UK use 8-bit, rest of the western world use 16bit)

Parameters:
encoding - either ENCODING_COMPRESSED_UNICODE (0) or ENCODING_UTF_16 (1)
See Also:
ENCODING_UNCHANGED, ENCODING_COMPRESSED_UNICODE, ENCODING_UTF_16

getCellValueRecord

protected CellValueRecordInterface getCellValueRecord()
Should only be used by HSSFSheet and friends. Returns the low level CellValueRecordInterface record

Returns:
CellValueRecordInterface representing the cell via the low level api.

setAsActiveCell

public void setAsActiveCell()
Sets this cell as the active cell for the worksheet


toString

public java.lang.String toString()
Returns a string representation of the cell This method returns a simple representation, anthing more complex should be in user code, with knowledge of the semantics of the sheet being processed. Formula cells return the formula string, rather than the formula result. Dates are displayed in dd-MMM-yyyy format Errors are displayed as #ERR<errIdx>

Overrides:
toString in class java.lang.Object

setCellComment

public void setCellComment(HSSFComment comment)
Assign a comment to this cell

Parameters:
comment - comment associated with this cell

getCellComment

public HSSFComment getCellComment()
Returns comment associated with this cell

Returns:
comment associated with this cell

findCellComment

protected static HSSFComment findCellComment(Sheet sheet,
                                             int row,
                                             int column)
Cell comment finder. Returns cell comment for the specified sheet, row and column.

Returns:
cell comment or null if not found

getHyperlink

public HSSFHyperlink getHyperlink()
Returns hyperlink associated with this cell

Returns:
hyperlink associated with this cell or null if not found

setHyperlink

public void setHyperlink(HSSFHyperlink link)
Assign a hypelrink to this cell

Parameters:
link - hypelrink associated with this cell


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