Dokumentácia HotXLS

Triedy TXLSXCell / TXLSXCells

Prístup k hodnote bunky na TXLSXWorksheet TXLSXCell je jedna bunka (hodnota plus voliteľný vzorec a index formátu); TXLSXCells je kolekcia pre každý pracovný hárok, ku ktorej sa pristupuje cez Worksheet.Cells. Deklarované v lxHandleX

Deklarácia 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;
      

Členovia TXLSXCell

Destroy Uvoľňuje stav inštancie a uvoľňuje vlastnené prostriedky
SetWorkbook Zapisuje odkaz na vlastniaci zošit, takže operácie ako vyhľadávanie formátu čísla môžu znova použiť zdieľané fondy zošita v čase O(1)
SetArrayRoot / SetArrayRange Nastavuje značky ArrayRoot* a ArrayLast* pre kotvy pretečenia maticového vzorca, takže jedna koreňová bunka mapuje všetky závislé bunky v rovnakom obdĺžniku
Workbook Spätný odkaz na vlastniaci TXLSXWorkbook nastavený pri vytváraní bunky pracovného hárka
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Metaúdaje pretečenia CSE len na čítanie používané pri obojsmernom ukladaní/načítaní pre obdĺžniky maticových vzorcov
Row Index riadka od 1
Col Index stĺpca od 1 (1 = A, 2 = B, ...)
Value Hodnota bunky ako Variant. Podporované sú reťazce, čísla, boolovské hodnoty a TDateTime. Nastavenie TDateTime automaticky vyberie vstavaný dátumový cellXf (XlsxXfIndexDate), keď nie je nastavený žiadny explicitný FormatIndex
FormatIndex Index do cellXfs v xl/styles.xml Ponechajte na 0 pre predvolený štýl. Index 1 je vyhradený pre vstavaný formát dátumu (numFmtId 14, m/d/yyyy). Keď je nastavený, FormatIndex má prednosť pred FontIndex vo vygenerovanej bunke
FontIndex Index od 1 do TXLSXWorkbook.Fonts Ponechajte na 0, aby sa zdedil predvolený Calibri 11
FillIndex Index od 1 do TXLSXWorkbook.Fills Pozri TXLSXFill
BorderIndex Index od 1 do TXLSXWorkbook.Borders Pozri TXLSXBorder
NumberFormatIndex Index od 1 do TXLSXWorkbook.NumberFormats Použite toto pre vlastné formátovacie kódy ako '$#,##0.00' alebo 'yyyy-mm-dd hh:mm:ss'
NumberFormat Pohodlná vlastnosť pre vlastný text formátu čísla Čítanie vracia formátovací kód z fondu formátov čísiel zošita, keď naň odkazuje NumberFormatIndex; priradenie reťazca nájde alebo pridá formát a aktualizuje NumberFormatIndex
AlignmentIndex Index od 1 do TXLSXWorkbook.Alignments Pozri TXLSXAlignment pre nastavenia horizontálneho / vertikálneho zarovnania / zalomenia / odsadenia / rotácie pre každý záznam
RichText Voliteľný vlastnený objekt TXLSXRichText Keď je nastavený, bunka prechádza cez tabuľku zdieľaných reťazcov ako viacnásobný záznam <si> namiesto obyčajného reťazca; priradenie nil obnoví Variant hodnotu bunky
Precedence Keď je na tej istej bunke nastavených niekoľko vlastností *Index, strana SaveAs vyberie zodpovedajúci cellXf v tomto poradí: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Voliteľný text vzorca (bez úvodného =) Keď je nastavený, SaveAs vygeneruje podradený prvok <f> spolu s hodnotou bunky a Open ho prečíta späť
ProtectionIndex Index do fondu ochrany zošita. Pohodlné vlastnosti Locked a FormulaHidden udržiavajú tento index automaticky pre bežné použitie
Locked Keď je True (predvolené pre každú novú bunku), bunka je chránená, keď je chránený pracovný hárok. Nastavením na False povolíte úpravu konkrétnej bunky v chránenom hárku Zapisuje atribút <protection locked="0"/> do cellXf bunky, ak sa líši od predvoleného
FormulaHidden Keď je True, riadok vzorcov nezobrazuje vzorec bunky, kým je hárok chránený. Predvolená hodnota je False. Vygeneruje <protection hidden="1"/> v zodpovedajúcom cellXf
FormattedText WideString len na čítanie. Vracia hodnotu bunky formátovanú ako reťazec podľa jej aktívneho vlastného alebo vstavaného kódu formátu čísla
TaggedText WideString len na čítanie. Vracia formátovaný reťazec bunky obsahujúci formátovacie značky podobné HTML/XML pre štýly formátovaného textu, ak je to použiteľné

Deklarácia 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;
      

Členovia TXLSXCells

Create Konštruuje kolekciu buniek naviazanú na jeden vlastniaci pracovný hárok
Destroy Uvoľňuje všetky bunky vlastnené kolekciou
Item[Row, Col] Vracia bunku na daných súradniciach od 1, pričom pri prvom prístupe vytvorí prázdny TXLSXCell. Deklarované ako predvolená vlastnosť, takže Cells[Row, Col] funguje ako skratka
Count Počet aktuálne uložených buniek
CellByIndex[i] Bunka na danom indexe vloženia od 0. Užitočné pre sekvenčné prechádzanie bez predchádzajúcej znalosti vyplnených riadkov a stĺpcov
Remove Vymaže jednu existujúcu bunku na súradnici a vráti, či k odstráneniu skutočne došlo
HasCell(Row, Col) Vracia True, ak bunka na daných súradniciach už existuje Použite toto, aby ste predišli vytvoreniu prázdnej bunky ako vedľajšieho efektu Item[Row, Col]
Clear Odstráni a uvoľní každú bunku v kolekcii

Príklad

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;
    

Pozri tiež