Skip to main content

TdxSpreadSheetCell Class

Stores cell content and custom style settings in a worksheet.

Declaration

TdxSpreadSheetCell = class(
    TdxDynamicListItem,
    IdxSpreadSheetCellData,
    IdxSpreadSheetCellStyleOwner
)

Remarks

Spreadsheet and Report Designer controls create TdxSpreadSheetCell class instances on demand to store and manage cell content and custom style settings. A spreadsheet control creates a TdxSpreadSheetCell class instance every time a user:

  • Assigns a value to an empty cell directly or through the associated TdxSpreadSheetFormulaBar control
  • Customizes an empty cell’s style settings

You can create TdxSpreadSheetCell class instances to populate cells in code as demonstrated in the code example below.

Main API Members

The list below outlines key members of the TdxSpreadSheetCell class. These members allow you to manage cell content and configure the appearance of individual cells.

Value Management API Members

AsBoolean | AsCurrency | AsDateTime | AsFloat | AsInteger | AsString | AsVariant
Allow you to assign a value of different types to the cell or cast its value to the required type.
AsFormula

Provides access to the parsed formula expression in the cell.

This property returns nil (in Delphi) or nullptr (in C++Builder) if the cell has no parsed formula expression. You can use the DataType or IsFormula property to identify if the cell contains a parsed formula expression.

Clear
Clears the cell value.
DataType
Returns the current cell data type.
GetAsRTF
Returns cell content as an RTF string.
HasValue
Allows you to identify if the cell has a value.
IsEmpty
Identifies if the cell is empty.
IsFormula

Identifies if the cell contains a parsed formula expression.

If this property returns True, you can use the AsFormula property to access the parsed formula expression.

IsNumericValue
Identifies if the cell stores a numeric value of any type.
SetAsRTF
Allows you to assign a formatted RTF string to the cell.
SetText
Allows you to assign an unformatted text string or a formula expression to the cell.
Column | Row
Specify the cell’s parent column and row. You can use these properties to move the cell or identify its position in the parent worksheet.
ColumnIndex | RowIndex
Specify indexes of the cell’s parent column and row. You can use these properties to move the cell or identify its position in the parent worksheet.
GetReference
Returns a reference to the cell. You can use this reference to address the cell in a formula expression or defined name.
IsMerged
Allows you to identify if the cell belongs to a merged cell range.
View
Provides access to the parent worksheet.

Appearance and Behavior Settings

ShowFormula
Specifies if the cell shows the source formula expression string or a calculated result if the cell contains a parsed formula expression.
Style
Provides access to all cell style settings. Individual style settings accessible through this property have priority over corresponding global cell style settings.

General-Purpose API Members

Assign
Copies content and style settings between cell objects.
AsError

Returns the cell’s error code.

This property value differs from ecNone only if an error occurred during formula expression parsing or evaluation.

DisplayText
Returns the cell’s display text string.
GetAbsoluteBounds
Returns the cell’s bounding rectangle (in pixel coordinates).
SpreadSheet
Provides access to the parent Spreadsheet or Report Designer control.

Code Example

The following code example performs two batch operations at control and worksheet levels to change the default (document-wide) cell style, populate cells in the active worksheet, and apply a different style to the populated cells:

var
  ATableView: TdxSpreadSheetTableView;
  ACell: TdxSpreadSheetCell;
  I, J: Integer;
begin
  ATableView := dxSpreadSheet1.ActiveSheetAsTable;  // Accesses the active worksheet

  // Change the spreadsheet document-wide cell style (the first batch operation)
  dxSpreadSheet1.BeginUpdate;  // Initiates the following batch change at the control level
  try
    dxSpreadSheet1.DefaultCellStyle.Brush.BackgroundColor := clWebLightBlue;
    dxSpreadSheet1.DefaultCellStyle.Brush.ForegroundColor := clWebLightGreen;
    dxSpreadSheet1.DefaultCellStyle.Brush.Style := sscfsDiagonalStrip;
    dxSpreadSheet1.DefaultCellStyle.Borders[bRight].Color := clLtGray;
    dxSpreadSheet1.DefaultCellStyle.Borders[bRight].Style := sscbsThin;
    dxSpreadSheet1.DefaultCellStyle.Borders[bBottom].Color := clLtGray;
    dxSpreadSheet1.DefaultCellStyle.Borders[bBottom].Style := sscbsThin;
  finally
    dxSpreadSheet1.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
  end;

  // Create and populate 75 cells with random integer values (the second batch operation)
  Randomize;  // Initializes the random number generator
  ATableView.BeginUpdate;  // Initiates the following batch change at the worksheet level
  try
    for I := 0 to 14 do  // Iterates through 15 rows
      for J := 0 to 4 do  // Iterates through 5 columns
      begin
        ACell := ATableView.CreateCell(I, J);  // Creates a cell object
        ACell.AsInteger := Random(1000);  // Populates the created cell object with a random integer value
        // Customize cell style settings
        ACell.Style.Borders[bLeft].Color := clWhite;
        ACell.Style.Borders[bLeft].Style := sscbsDotted;
        ACell.Style.Borders[bBottom].Color := clWhite;
        ACell.Style.Borders[bBottom].Style := sscbsDotted;
        ACell.Style.Font.Style := [fsBold, fsItalic];
        ACell.Style.Font.Color := clWhite;
        ACell.Style.Brush.Style := sscfsRevDiagonalStrip;
        ACell.Style.Brush.BackgroundColor := clLime;
        ACell.Style.Brush.ForegroundColor := clGreen;
      end;
  finally
    ATableView.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
  end;
end;

VCL SpreadSheet: A Cell Population and Style Customization Example

Cell Object Deletion

You can call the following procedures to delete TdxSpreadSheetCell class instances:

TdxSpreadSheetTableView.DeleteAllCells
Removes all cell objects from the worksheet.
TdxSpreadSheetTableView.DeleteCells

Direct TdxSpreadSheetCell Class References

The following public API members reference a TdxSpreadSheetCell object:

TdxSpreadSheetTableView.Cells
Provides indexed access to cell objects in the worksheet.
TdxSpreadSheetTableItem.Cells
Provides zero-based indexed access to the cell objects hosted within the current table item object.

Inheritance

See Also