HotXLS-Dokumentation

Klassen TXLSXCell / TXLSXCells

Zellwertzugriff auf ein TXLSXWorksheet TXLSXCell ist eine einzelne Zelle (Wert plus optionale Formel und Formatindex); TXLSXCells is die Sammlung pro Arbeitsblatt, die über Worksheet.Cells erreicht wird; Deklariert in lxHandleX

Deklaration von TXLSXCell

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;
  end;
      

Elemente von TXLSXCell

Destroy Gibt den Instanzzustand frei und gibt eigene Ressourcen frei
SetWorkbook Schreibt die Referenz auf das besitzende Arbeitsbuch, sodass Operationen wie Nummernformat-Suchen die gemeinsam genutzten Arbeitsbuch-Pools in O(1)-Zeit wiederverwenden können
SetArrayRoot / SetArrayRange Setzt die Marker ArrayRoot* und ArrayLast* für Array-Formel-Spill-Anker, sodass eine Wurzelzelle alle abhängigen Zellen im selben Rechteck zuordnet
Workbook Rückverweis auf das besitzende TXLSXWorkbook, das durch die Erstellung von Arbeitsblattzellen festgelegt wird
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Schreibgeschützte CSE-Spill-Metadaten, die beim Speichern/Laden für Array-Formel-Rechtecke verwendet werden
Row 1-basierter Zeilenindex
Col 1-basierter Spaltenindex (1 = A, 2 = B, ...)
Value Zellwert als Variant; Zeichenfolgen, Zahlen, Booleans und TDateTime werden alle unterstützt; Das Festlegen eines TDateTime wählt automatisch das integrierte Datumsformat cellXf (XlsxXfIndexDate) aus, wenn kein expliziter FormatIndex festgelegt ist
FormatIndex Index in xl/styles.xml cellXfs Belassen Sie diesen für den Standardstil bei 0; Index 1 ist für das integrierte Datumsformat (numFmtId 14, m/d/yyyy) reserviert; Wenn festgelegt, hat FormatIndex Vorrang vor FontIndex in der ausgegebenen Zelle
FontIndex 1-basierter Index in TXLSXWorkbook.Fonts Belassen Sie diesen bei 0, um das Standardformat Calibri 11 zu erben
FillIndex 1-basierter Index in TXLSXWorkbook.Fills Siehe TXLSXFill
BorderIndex 1-basierter Index in TXLSXWorkbook.Borders Siehe TXLSXBorder
NumberFormatIndex 1-basierter Index in TXLSXWorkbook.NumberFormats Verwenden Sie diesen für benutzerdefinierte Formatcodes wie '$#,##0.00' oder 'yyyy-mm-dd hh:mm:ss'
NumberFormat Praktische Eigenschaft für benutzerdefinierten Zahlenformattext Das Lesen gibt den Formatcode aus dem Arbeitsbuch-Zahlenformatpool zurück, wenn NumberFormatIndex auf einen zeigt; Das Zuweisen einer Zeichenfolge sucht das Format oder fügt es hinzu und aktualisiert NumberFormatIndex
AlignmentIndex 1-basierter Index in TXLSXWorkbook.Alignments Siehe TXLSXAlignment für die spezifischen Einstellungen für horizontale / vertikale Ausrichtung / Zeilenumbruch / Einzug / Drehung
RichText Optionale eigene TXLSXRichText-Nutzlast Wenn festgelegt, durchläuft die Zelle die Tabelle der gemeinsam genutzten Zeichenfolgen als mehrteiliger <si>-Eintrag anstelle einer einfachen Zeichenfolge; das Zuweisen von nil setzt die Zelle auf ihren Variant-Wert zurück
Precedence Wenn mehrere *Index-Eigenschaften für dieselbe Zelle festgelegt sind, wählt die SaveAs-Seite das passende cellXf in dieser Reihenfolge aus: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Optionaler Formeltext (kein führendes =) Wenn festgelegt, gibt SaveAs ein <f>-Kindelement neben dem Zellwert aus, und Open liest es wieder ein
ProtectionIndex Index in den Arbeitsbuch-Schutzpool; Die praktischen Eigenschaften Locked und FormulaHidden verwalten diesen Index automatisch für die allgemeine Verwendung
Locked Wenn True (Standard für jede neue Zelle), ist die Zelle geschützt, wenn das Arbeitsblatt geschützt ist; Setzen Sie dies auf False, um die Bearbeitung einer bestimmten Zelle in einem geschützten Blatt zu ermöglichen; Schreibt ein Attribut <protection locked="0"/> in das cellXf der Zelle, wenn es vom Standard abweicht
FormulaHidden Wenn True, zeigt die Formelleiste die Formel der Zelle nicht an, während das Blatt geschützt ist; Standard ist False; Gibt <protection hidden="1"/> im passenden cellXf aus
FormattedText Schreibgeschütztes WideString; Gibt den Wert der Zelle als Zeichenfolge formatiert gemäß ihrem aktiven benutzerdefinierten oder integrierten Zahlenformatcode zurück
TaggedText Schreibgeschütztes WideString; Gibt die formatierte Zellzeichenfolge zurück, die HTML/XML-ähnliche Formatierungstags für Rich-Text-Stile enthält, falls zutreffend

Deklaration von TXLSXCells

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;
      

Elemente von TXLSXCells

Create Erstellt eine Zellsammlung, die an ein besitzendes Arbeitsblatt gebunden ist
Destroy Gibt alle im Besitz der Sammlung befindlichen Zellen frei
Item[Row, Col] Gibt die Zelle an den angegebenen 1-basierten Koordinaten zurück, wobei beim ersten Zugriff eine leere TXLSXCell erstellt wird; Deklariert als Standardeigenschaft, sodass Cells[Row, Col] als Kurzform funktioniert
Count Anzahl der derzeit gespeicherten Zellen
CellByIndex[i] Zelle am angegebenen 0-basierten Einfügeindex; Nützlich für die sequentielle Aufzählung ohne vorherige Kenntnis der gefüllten Zeilen und Spalten
Remove Löscht eine vorhandene Zelle an der Koordinate und gibt zurück, ob das Entfernen tatsächlich stattgefunden hat
HasCell(Row, Col) Gibt True zurück, wenn eine Zelle an den angegebenen Koordinaten bereits existiert; Verwenden Sie dies, um die Erstellung einer leeren Zelle als Nebeneffekt von Item[Row, Col] zu vermeiden
Clear Entfernt und gibt jede Zelle in der Sammlung frei

Beispiel

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;
    

Siehe auch