HotXLS-dokumentation

Klasserna TXLSXCell / TXLSXCells

Åtkomst till cellvärden i en TXLSXWorksheet TXLSXCell är en enskild cell (värde plus valfri formel och formatindex); TXLSXCells är samlingen per kalkylblad som nås via Worksheet.Cells Deklarerad i lxHandleX

Deklaration av 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;
      

Medlemmar i TXLSXCell

Destroy Frigör instanstillstånd och släpper ägda resurser
SetWorkbook Skriver referensen till den ägande arbetsboken så att operationer som sökning efter talformat kan återanvända de delade arbetsbokspoolerna på O(1)-tid
SetArrayRoot / SetArrayRange Ställer in ArrayRoot*- och ArrayLast*-markörer för spillförankringar av matrisformler så att en rotcell mappar alla beroende celler i samma rektangel
Workbook Bakåtreferens till den ägande TXLSXWorkbook som ställts in vid skapande av kalkylbladscell
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Skrivskyddad CSE-spillmetadata som används av spara/läsa-tur-och-retur för matrisformelrektanglar
Row 1-baserat radindex
Col 1-baserat kolumnindex (1 = A, 2 = B, ...)
Value Cellvärde som en Variant. Strängar, tal, booleska värden och TDateTime stöds. Inställning av en TDateTime väljer automatiskt det inbyggda datumformatet cellXf (XlsxXfIndexDate) när inget explicit FormatIndex har angetts
FormatIndex Index i xl/styles.xml cellXfs Lämna som 0 för standardstil. Index 1 är reserverat för det inbyggda datumformatet (numFmtId 14, m/d/yyyy). När det är inställt har FormatIndex företräde framför FontIndex i den genererade cellen
FontIndex 1-baserat index i TXLSXWorkbook.Fonts Lämna som 0 för att ärva standard Calibri 11
FillIndex 1-baserat index i TXLSXWorkbook.Fills Se TXLSXFill
BorderIndex 1-baserat index i TXLSXWorkbook.Borders Se TXLSXBorder
NumberFormatIndex 1-baserat index i TXLSXWorkbook.NumberFormats Använd detta för anpassade formatkoder som '$#,##0.00' eller 'yyyy-mm-dd hh:mm:ss'
NumberFormat Bekvämlighetsegenskap för anpassad talformatstext. Läsning returnerar formatkoden från arbetsbokens talformatspool när NumberFormatIndex pekar på en; tilldelning av en sträng hittar eller lägger till formatet och uppdaterar NumberFormatIndex
AlignmentIndex 1-baserat index i TXLSXWorkbook.Alignments Se TXLSXAlignment för egenskaper som horisontell / vertikal / radbrytning / indrag / rotation per post
RichText Valfri ägd TXLSXRichText-data. När den ställts in går cellen via tabellen för delade strängar som en <si>-post med flera körningar istället för en vanlig sträng; tilldelning av nil återgår till cellens Variant-värde
Precedence När flera *Index-egenskaper är inställda på samma cell väljer SaveAs-sidan matchande cellXf i denna ordning: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Valfri formeltext (inget inledande =). När den har angetts skapar SaveAs ett underordnat <f>-element tillsammans med cellvärdet, och Open läser tillbaka det
ProtectionIndex Index i arbetsbokens skyddspool. Bekvämlighetsegenskaperna Locked och FormulaHidden underhåller detta index automatiskt för vanlig användning
Locked När True (standard för varje ny cell) är cellen skyddad när kalkylbladet är skyddat. Ställ in på False för att tillåta redigering av en specifik cell i ett skyddat blad. Skriver ett <protection locked="0"/>-attribut i cellens cellXf när det skiljer sig från standardvärdet
FormulaHidden När True visas inte formelfältet cellens formel medan bladet är skyddat. Standard är False. Genererar <protection hidden="1"/> i matchande cellXf
FormattedText Skrivskyddad WideString. Returnerar cellens värde formaterat som en sträng enligt dess aktiva anpassade eller inbyggda talformatkod
TaggedText Skrivskyddad WideString. Returnerar den formaterade cellsträngen som innehåller HTML/XML-liknande formateringsstaggar för rich text-stilar när det är tillämpligt
NamedStyleXfId Skrivskyddad Integer. Returnerar cellXfs-indexet för den namngivna stil som cellen länkar till, eller -1 när cellen saknar stildata
LinkedStyle Läs-/skrivpost av typen TXLSXLinkedStyle. Länkar cellen till en namngiven stil: AutomaticChoose låter Excel välja stil automatiskt och LinkedParts styr vilka formatdelar (typsnitt, fyllning, ram, talformat, justering, skydd) som följer den länkade stilen

Deklaration av 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;
      

Medlemmar i TXLSXCells

Create Konstruerar en cellsamling kopplad till ett ägande kalkylblad
Destroy Frigör alla celler som ägs av samlingen
Item[Row, Col] Returnerar cellen vid de angivna 1-baserade koordinaterna, och skapar en tom TXLSXCell vid första åtkomsten. Deklarerad som standardegenskap så att Cells[Row, Col] fungerar som en genväg
Count Antal celler som för närvarande lagras
CellByIndex[i] Cell vid det angivna 0-baserade infogningsindexet. Användbart för sekventiell uppräkning utan förkunskap om ifyllda rader och kolumner
Remove Tar bort en befintlig cell vid koordinaten och returnerar om borttagningen faktiskt ägde rum
HasCell(Row, Col) Returnerar True om en cell redan finns vid de angivna koordinaterna. Använd detta för att undvika att skapa en tom cell som en sidoeffekt av Item[Row, Col]
Clear Tar bort och frigör varje cell i samlingen

Exempel

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;
    

Se även