Class StreamCell
A single cell value read while forward-only streaming through an XLSX worksheet. Immutable snapshot: unlike Cell, a StreamCell is not backed by the workbook and cannot be used to write values back.
Inheritance
Namespace: IronXL
Assembly: IronXL.dll
Syntax
public sealed class StreamCell : Object
Each position visited during a forward-only XLSX stream is represented as a StreamCell, an immutable snapshot that carries the column address, data type, raw value, and formatted text of one cell without loading the entire workbook into memory. When large files must be processed quickly and write-back is not required, StreamCell is the record a developer inspects inside a streaming read loop.
StreamCell surfaces seven members. ColumnIndex gives the zero-based integer column position, and ColumnLetter gives the familiar letter label such as "C" or "AA". Type is a StreamCellType discriminator that tells you whether the cell holds a number, a string, a boolean, a date, or an error, so a switch on Type replaces defensive casting. Value is the raw object for programmatic use, while Text is the pre-formatted string representation suitable for display or CSV output. IsFormula flags cells whose value was computed by a formula rather than entered directly, which matters when downstream logic needs to distinguish authored constants from derived results.
The constructor StreamCell(int columnIndex, StreamCellType type, object value, string text, bool isFormula) is public, so unit tests can build fixture cells without touching a real file. In production, instances arrive from the IronXL streaming API rather than being constructed by hand.
Because StreamCell is not backed by the workbook, it cannot write values back. It is a read-only record: once the streaming cursor advances, the previous StreamCell remains valid in memory but the worksheet position it described has been passed. This design keeps the memory footprint flat even for worksheets with hundreds of thousands of rows.
using IronXL;
WorkBook.StreamRead("large-report.xlsx", (StreamCell cell) =>
{
if (cell.Type == StreamCellType.Number)
Console.WriteLine($"{cell.ColumnLetter}: {cell.Value} ({cell.Text})");
if (cell.IsFormula)
Console.WriteLine($" ^ formula cell at column {cell.ColumnIndex}");
});The stream read how-to explains the full streaming workflow, the read Excel file guide covers standard in-memory reading for comparison, and the IronXL get-started page covers installation and licensing.
Constructors
StreamCell(Int32, StreamCellType, Object, String, Boolean)
Creates a new forward-only stream cell value.
Declaration
public StreamCell(int columnIndex, StreamCellType type, object value, string text, bool isFormula = false)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | columnIndex | Zero-based column index of the cell. |
| StreamCellType | type | The kind of value held by the cell. For a formula cell this is the
type of the cached result (see |
| System.Object | value | The cell's value, typed according to |
| System.String | text | The cell's displayed/raw text representation. |
| System.Boolean | isFormula |
|
Properties
ColumnIndex
Zero-based column index of the cell.
Declaration
public int ColumnIndex { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
ColumnLetter
The spreadsheet column letter (e.g. "A", "C", "AA") for ColumnIndex.
Declaration
public string ColumnLetter { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
IsFormula
Declaration
public bool IsFormula { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Text
The cell's displayed/raw text representation.
Declaration
public string Text { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Type
The kind of value held by the cell. When IsFormula is true, this is
the type of the formula's cached result rather than a distinct "formula" kind.
Declaration
public StreamCellType Type { get; }
Property Value
| Type | Description |
|---|---|
| StreamCellType |
Value
The cell's value, typed according to Type. null when
Type is Blank. When IsFormula is
true, this is the formula's cached result value.
Declaration
public object Value { get; }
Property Value
| Type | Description |
|---|---|
| System.Object |