Dokumentacja HotXLS

Klasy TXLSXCell / TXLSXCells

Dostęp do wartości komórek w TXLSXWorksheetTXLSXCell 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;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  end;
      

Składowe TXLSXCell

DestroyZwalnia stan instancji i zwalnia posiadane zasoby
SetWorkbookZapisuje 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 / SetArrayRangeSet ArrayRoot* and ArrayLast* znaczniki kotwic rozlewania formuł tablicowych, dzięki czemu jedna komórka główna odwzorowuje wszystkie zależne komórki w tym samym prostokącie
WorkbookOdwołanie wsteczne do posiadającego TXLSXWorkbook ustawiane przy tworzeniu komórki arkusza
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastColMetadane rozlania CSE tylko do odczytu, używane przez operacje zapisu/odczytu dla prostokątów formuł tablicowych
RowIndeks wiersza oparty na 1
ColIndeks kolumny oparty na 1 (1 = A, 2 = B, ...)
ValueWartość 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 is set
FormatIndexIndeks w xl/styles.xmlcellXfs ; 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
FontIndexIndeks oparty na 1 w TXLSXWorkbook.Fonts Pozostaw 0 , aby dziedziczyć domyślną czcionkę Calibri 11
FillIndexIndeks oparty na 1 w TXLSXWorkbook.Fills Patrz TXLSXFill
BorderIndexIndeks oparty na 1 w TXLSXWorkbook.Borders Patrz TXLSXBorder
NumberFormatIndexIndeks 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'
NumberFormatWygodna 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
AlignmentIndexIndeks oparty na 1 w TXLSXWorkbook.Alignments Patrz TXLSXAlignment dla parametrów poziomych / pionowych / zawijania / wcięcia / rotacji dla każdego wpisu
RichTextOpcjonalny 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
PrecedenceGdy 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
FormulaOpcjonalny 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
ProtectionIndexIndeks w puli ochrony skoroszytu; właściwości Locked i FormulaHidden automatycznie utrzymują ten indeks dla powszechnego użytku
LockedGdy 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
FormulaHiddenGdy 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
FormattedTextWideString tylko do odczytu; zwraca wartość komórki sformatowaną jako ciąg znaków zgodnie z jej aktywnym niestandardowym lub wbudowanym kodem formatu liczbowego
TaggedTextWideString 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
NamedStyleXfIdRead-only Integer. Returns the cellXfs indeks stylu nazwanego, z którym ta komórka jest powiązana, albo -1 when the cell has no style payload
LinkedStyleRead/write TXLSXLinkedStyle rekord. Łączy komórkę ze stylem nazwanym: AutomaticChoose pozwala Excelowi automatycznie wybrać styl, a LinkedParts wybiera, które części formatu (czcionka, wypełnienie, obramowanie, format liczb, wyrównanie, ochrona) podążają za stylem powiązanym

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

CreateTworzy kolekcję komórek powiązaną z jednym arkuszem nadrzędnym
DestroyZwalnia 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
CountLiczba 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
RemoveUsuwa 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]
ClearUsuwa 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ż