HotXLS-documentatie

TXLSXCell / TXLSXCells classes

Celwaardetoegang op een TXLSXWorksheet. TXLSXCell is één cel (waarde plus optionele formula- en formatindex); TXLSXCells is de verzameling per werkblad, bereikbaar via Worksheet.Cells. Gedeclareerd in lxHandleX

TXLSXCell declaration

type
  TXLSXCell = class
    constructor Create(ARow, ACol: Integer; const AValue: Variant);
    destructor Destroy; override;
    procedure SetWorkbook(AWorkbook: TXLSXWorkbook);
    procedure SetArrayRoot(ARootRow, ARootCol: Integer);
    procedure SetArrayRange(ARootRow, ARootCol, ALastRow, ALastCol: Integer);
    property Workbook: TXLSXWorkbook;
    property ArrayRootRow: Integer;
    property ArrayRootCol: Integer;
    property ArrayLastRow: Integer;
    property ArrayLastCol: Integer;
    property Row: Integer;
    property Col: Integer;
    property Value: Variant;
    property FormatIndex: Integer;
    property FontIndex: Integer;
    property FillIndex: Integer;
    property BorderIndex: Integer;
    property NumberFormatIndex: Integer;
    property NumberFormat: WideString;
    property AlignmentIndex: Integer;
    property ProtectionIndex: Integer;
    property Formula: WideString;
    property RichText: TXLSXRichText;
    property Locked: Boolean;
    property FormulaHidden: Boolean;
    property FormattedText: WideString;
    property TaggedText: WideString;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  end;
      

TXLSXCell members

Destroy Geeft de instantiestatus vrij en geeft owned resources vrij
SetWorkbook Schrijft de verwijzing naar de eigenende werkmap zodat bewerkingen zoals opmaaklookups de gedeelde werkmappools in O(1)-tijd kunnen hergebruiken
SetArrayRoot / SetArrayRange Instellen ArrayRoot* en ArrayLast* markers voor matrixformule-spill-ankers zodat één hoofdcel alle afhankelijke cellen in dezelfde rechthoek afdekt
Workbook Verwijzing terug naar de bezittende TXLSXWorkbook, gezet bij het aanmaken van de werkbladcel
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Read-only CSE-spill-metadata voor de save/load-roundtrip van matrixformulierrechthoeken
Row Rij-index op 1-basis
Col Kolomindex op 1-basis (1 = A, 2 = B, ...)
Value Celwaarde als Variant. Strings, getallen, booleans en TDateTime worden allemaal ondersteund. Bij het instellen van een TDateTime wordt automatisch de ingebouwde datum- cellXf (XlsxXfIndexDate) gekozen zolang er geen expliciete FormatIndex is gezet
FormatIndex Index in xl/styles.xml cellXfs. Laat op 0 voor de standaardstijl. Index 1 is gereserveerd voor het ingebouwde datumformaat (numFmtId 14, m/d/yyyy). Indien gezet gaat FormatIndex in de weggeschreven cel vóór FontIndex
FontIndex 1-gebaseerde index in TXLSXWorkbook.Fonts — laat op 0 om de standaard Calibri 11 te erven
FillIndex 1-gebaseerde index in TXLSXWorkbook.Fills — zie TXLSXFill
BorderIndex 1-gebaseerde index in TXLSXWorkbook.Borders — zie TXLSXBorder
NumberFormatIndex 1-gebaseerde index in TXLSXWorkbook.NumberFormats — gebruik dit voor aangepaste notatiecodes zoals '$#,##0.00' of 'yyyy-mm-dd hh:mm:ss'
NumberFormat Convenience-eigenschap voor aangepaste getalnotatietekst Bij lezen wordt de notatiecode uit de getalnotatiepool van de werkmap geretourneerd wanneer NumberFormatIndex ernaartoe wijst; stel je een tekenreeks in, dan wordt de notatie opgezocht of toegevoegd en wordt NumberFormatIndex bijgewerkt
AlignmentIndex 1-based index into TXLSXWorkbook.Alignments Zie TXLSXAlignment voor de horizontale / verticale / wrap / inspring- en rotatie-instellingen per invoer
RichText Optionele owned TXLSXRichText-payload; indien ingesteld gaat de cel via de gedeelde-stringtabel als een multi-run <si> -invoer in plaats van een gewone tekenreeks; wijs nil toe om terug te keren naar de Variant-waarde van de cel
Precedence When several *Index eigenschappen op dezelfde cel zijn ingesteld, kiest de SaveAs-kant de passende cellXf in deze volgorde: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Optionele formuletekst (zonder voorafgaande =). Indien gezet emitteert SaveAs een <f>-child- element naast de celwaarde en leest Open het terug
ProtectionIndex Index in de beveiligingspool van de werkmap. De convenience-eigenschappen Locked en FormulaHidden onderhouden deze index automatisch voor gewoon gebruik
Locked Bij True (de standaard voor elke nieuwe cel) is de cel beveiligd zodra het werkblad beveiligd wordt. Zet op False om bewerking van één specifieke cel in een beveiligd blad toe te staan. Schrijft een attribuut <protection locked="0"/> in de cellXf van de cel wanneer dit afwijkt van de standaard
FormulaHidden Bij True toont de formulebalk de formule van de cel niet terwijl het blad is beveiligd. Standaard is False. Emitteert <protection hidden="1"/> in de bijbehorende cellXf
FormattedText Read-only WideString. Retourneert de waarde van de cel als opgemaakte tekenreeks volgens de actieve aangepaste of ingebouwde getalnotatiecode
TaggedText Read-only WideString. Retourneert de opgemaakte celtekenreeks met HTML/XML-achtige opmaaktags voor rich text-stijlen indien van toepassing
NamedStyleXfId Read-only Integer. Geeft de cellXfs-index terug van de named style waaraan deze cel is gekoppeld, of -1 wanneer de cel geen stijlpayload heeft
LinkedStyle Read/write TXLSXLinkedStyle-record. Koppelt de cel aan een named style: AutomaticChoose laat Excel de stijl automatisch kiezen en LinkedParts selecteert welke opmaakonderdelen (lettertype, vulling, rand, getalnotatie, uitlijning, beveiliging) de gekoppelde stijl volgen

TXLSXCells declaration

type
  TXLSXCells = class
    constructor Create(AOwnerSheet: TXLSXWorksheet);
    destructor Destroy; override;
    procedure Clear;
    function HasCell(ARow, ACol: Integer): Boolean;
    function Remove(ARow, ACol: Integer): Boolean;
    property Item[ARow, ACol: Integer]: TXLSXCell; default;
    property Count: Integer;
    property CellByIndex[Index: Integer]: TXLSXCell;
  end;
      

TXLSXCells members

Create Maakt een celcollectie aan die aan één bezittend werkblad is gekoppeld
Destroy Geeft alle cellen vrij waarvan de verzameling eigenaar is
Item[Row, Col] Retourneert de cel op de opgegeven 1-based coördinaten, waarbij bij de eerste toegang een lege TXLSXCell wordt aangemaakt. Gedeclareerd als de default-eigenschap, zodat Cells[Row, Col] als afkorting werkt
Count Aantal cellen dat momenteel is opgeslagen
CellByIndex[i] Cel op de opgegeven 0-gebaseerde invoegindex. Handig voor sequentiële iteratie zonder voorkennis over gevulde rijen en kolommen
Remove Verwijdert één bestaande cel op de coördinaat en geeft terug of verwijdering daadwerkelijk heeft plaatsgevonden
HasCell(Row, Col) Retourneert True als er al een cel op de opgegeven coördinaten bestaat. Gebruik dit om te voorkomen dat Item[Row, Col] als neveneffect een lege cel aanmaakt
Clear Verwijdert en geeft elke cel in de verzameling vrij

Voorbeeld

var
  ws: TXLSXWorksheet;
  i: Integer;
begin
  ws := Workbook.Sheets.Add('Demo');

  ws.Cells.Item[1, 1].Value := 'Hello';
  ws.Cells.Item[1, 2].Value := 123.45;
  ws.Cells.Item[2, 1].Value := Now;             // renders as a date
  ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';

  for i := 0 to ws.Cells.Count - 1 do
    WriteLn(ws.Cells.CellByIndex[i].Row, ',',
            ws.Cells.CellByIndex[i].Col);
end;
    

Zie ook