Dokumentacja HotXLS

Klasy TXLSXCell / TXLSXCells

Dostęp do wartości komórek w TXLSXWorksheet; TXLSXCell to pojedyncza komórka (wartość plus opcjonalna formuła i indeks formatu); TXLSXCells to kolekcja przypisana do arkusza, dostępna poprzez Worksheet.Cells; zadeklarowana w lxHandleX

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

Składowe TXLSXCell

Zniszczenie Zwalnia stan instancji i zwalnia posiadane zasoby
SetWorkbook Zapisuje odwołanie do skoroszytu nadrzędnego, dzięki czemu operacje takie jak wyszukiwanie formatu liczb mogą ponownie wykorzystywać wspólne pule skoroszytu w czasie O(1)
SetArrayRoot / SetArrayRange Set ArrayRoot* and ArrayLast* markers for array-formula spill anchors so one root cell maps all dependent cells in the same rectangle
Workbook Odwołanie wsteczne do posiadającego TXLSXWorkbook ustawiane przy tworzeniu komórki arkusza
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Metadane rozlania CSE tylko do odczytu, używane przez operacje zapisu/odczytu dla prostokątów formuł tablicowych
Row Indeks wiersza oparty na 1
Col Indeks kolumny oparty na 1 (1 = A, 2 = B, ...)
Value Wartość komórki jako Variant; obsługiwane są łańcuchy znaków, liczby, wartości logiczne oraz TDateTime; ustawienie wartości typu TDateTime automatycznie wybiera wbudowany format daty cellXf (XlsxXfIndexDate), gdy nie ustawiono jawnego FormatIndex
FormatIndex Indeks w cellXfs pliku xl/styles.xml; pozostaw 0 dla domyślnego stylu; indeks 1 jest zarezerwowany dla wbudowanego formatu daty (numFmtId 14, m/d/yyyy); po ustawieniu FormatIndex ma pierwszeństwo przed FontIndex w wygenerowanej komórce
FontIndex Indeks oparty na 1 w TXLSXWorkbook.Fonts Pozostaw 0, aby dziedziczyć domyślną czcionkę Calibri 11
FillIndex Indeks oparty na 1 w TXLSXWorkbook.Fills Patrz TXLSXFill
BorderIndex Indeks oparty na 1 w TXLSXWorkbook.Borders Patrz TXLSXBorder
NumberFormatIndex Indeks oparty na 1 w TXLSXWorkbook.NumberFormats Użyj tego dla niestandardowych kodów formatu, takich jak '$#,##0.00' lub 'yyyy-mm-dd hh:mm:ss'
NumberFormat Wygodna właściwość dla niestandardowego tekstu formatu liczb; odczyt zwraca kod formatu z puli formatów liczb skoroszytu, gdy NumberFormatIndex wskazuje na jeden z nich; przypisanie ciągu znaków wyszukuje lub dołącza format i aktualizuje NumberFormatIndex
AlignmentIndex Indeks oparty na 1 w TXLSXWorkbook.Alignments Patrz TXLSXAlignment dla parametrów poziomych / pionowych / zawijania / wcięcia / rotacji dla każdego wpisu
RichText Opcjonalny powiązany obiekt TXLSXRichText; po ustawieniu komórka przechodzi przez tabelę ciągów współdzielonych jako wieloelementowy wpis <si> zamiast zwykłego tekstu; przypisanie wartości nil przywraca wartość Variant komórki
Kolejność Gdy dla tej samej komórki ustawionych jest kilka właściwości *Index, operacja SaveAs wybiera pasujący styl cellXf w następującej kolejności: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Opcjonalny tekst formuły (bez wiodącego znaku =); po ustawieniu SaveAs emituje element podrzędny <f> obok wartości komórki, a Open odczytuje go z powrotem
ProtectionIndex Indeks w puli ochrony skoroszytu; właściwości Locked i FormulaHidden automatycznie utrzymują ten indeks dla powszechnego użytku
Locked Gdy wartość to True (domyślnie dla każdej nowej komórki), komórka jest chroniona, gdy arkusz jest chroniony; ustaw na False, aby umożliwić edycję określonej komórki w chronionym arkuszu; zapisuje atrybut <protection locked="0"/> wewnątrz cellXf komórki, gdy różni się od domyślnego
FormulaHidden Gdy wartość to True, pasek formuły nie wyświetla formuły komórki, gdy arkusz jest chroniony; domyślnie jest to False; emituje <protection hidden="1"/> w dopasowanym cellXf
FormattedText WideString tylko do odczytu; zwraca wartość komórki sformatowaną jako ciąg znaków zgodnie z jej aktywnym niestandardowym lub wbudowanym kodem formatu liczbowego
TaggedText WideString tylko do odczytu; zwraca sformatowany ciąg komórki zawierający tagi formatowania podobne do HTML/XML dla stylów tekstu sformatowanego, gdy ma to zastosowanie

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

Składowe TXLSXCells

Create Tworzy kolekcję komórek powiązaną z jednym arkuszem nadrzędnym
Zniszczenie Zwalnia wszystkie komórki posiadane przez kolekcję
Item[Row, Col] Zwraca komórkę o podanych współrzędnych opartych na 1, tworząc pusty obiekt TXLSXCell przy pierwszym dostępie; zadeklarowana jako właściwość domyślna, dzięki czemu Cells[Row, Col] działa jako skrót
Count Liczba aktualnie przechowywanych komórek
CellByIndex[i] Komórka pod podanym indeksem wstawiania opartym na 0; przydatne do sekwencyjnego wyliczania bez uprzedniej wiedzy o zapełnionych wierszach i kolumnach
Remove Usuwa jedną istniejącą komórkę na podanych współrzędnych i zwraca informację, czy usunięcie faktycznie miało miejsce
HasCell(Row, Col) Zwraca True, jeśli komórka już istnieje na podanych współrzędnych; używaj tego, aby uniknąć tworzenia pustej komórki jako efektu ubocznego użycia Item[Row, Col]
Clear Usuwa i zwalnia każdą komórkę w kolekcji

Przykład

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;
    

Zobacz również