HotXLS-documentatie

TXLSXRange class

Eenheid: lxHandleX
Vertegenwoordigt een rechthoekig XLSX-werkbladbereik dat wordt geretourneerd door TXLSXWorksheet.Range, RCRange, UsedRange, EntireRow of EntireColumn. A range is a lightweight view over its worksheet; it does not own cell data

Declaration

TXLSXBuiltinCellStyle = (
  xbsNormal, xbsGood, xbsBad, xbsNeutral,
  xbsCalculation, xbsCheckCell, xbsExplanatoryText, xbsInput,
  xbsLinkedCell, xbsNote, xbsOutput, xbsWarningText,
  xbsHeading1, xbsHeading2, xbsHeading3, xbsHeading4, xbsTitle, xbsTotal,
  xbsAccent1, xbsAccent2, xbsAccent3, xbsAccent4, xbsAccent5, xbsAccent6);

TXLSXRange = class
  constructor Create(ASheet: TXLSXWorksheet; ARow1, ACol1, ARow2, ACol2: Integer);
  function RefA1: WideString;
  function SaveAsHTML(const FileName: WideString): Integer; overload;
  function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
  function SaveAsHTML(Stream: TStream): Integer; overload;
  function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;

  property Sheet: TXLSXWorksheet;
  property Row1, Col1, Row2, Col2: Integer;
  property RowCount, ColCount: Integer;

  procedure SetValue(const V: Variant);
  procedure SetFormula(const F: WideString);
  function SetArrayFormula(const F: WideString): Integer;
  procedure ClearValues;
  procedure Clear;
  procedure ClearAll;

  procedure SetFontIndex(AIdx: Integer);
  procedure SetFillIndex(AIdx: Integer);
  procedure SetBorderIndex(AIdx: Integer);
  procedure SetNumberFormatIndex(AIdx: Integer);
  procedure SetAlignmentIndex(AIdx: Integer);
  procedure SetNumberFormat(const Fmt: WideString);
  procedure SetBorders(Kind: TXLSXBorderEdgeKind; Style: TXLSXBorderStyle); overload;
  procedure SetBorders(Kind: TXLSXBorderEdgeKind; Style: TXLSXBorderStyle; Color: LongWord); overload;
  procedure SetLocked(ALocked: Boolean);
  procedure SetFormulaHidden(AHidden: Boolean);

  procedure AutoFitColumns(AMinWidth: Double = 0; AMaxWidth: Double = 0);
  procedure AutoFitRows(AMinHeight: Double = 0; AMaxHeight: Double = 0);
  procedure Merge; overload;
  procedure Merge(Across: OleVariant); overload;
  procedure Unmerge;
  function Offset(DRow, DCol: Integer): TXLSXRange;
  function Resize(NewRowCount, NewColCount: Integer): TXLSXRange;
  procedure Sort(AKeyColumn: Integer; ADescending: Boolean = False); overload;
  procedure Sort(const AKeyColumns: array of Integer; const ADescending: array of Boolean); overload;
  procedure ApplyBuiltinStyle(AStyle: TXLSXBuiltinCellStyle);
  procedure CopyTo(ADestRow, ADestCol: Integer);
  procedure MoveTo(ADestRow, ADestCol: Integer);
  procedure InsertRows;
  procedure DeleteRows;
  procedure InsertCols;
  procedure DeleteCols;
  procedure ApplyFormatPatch(ASource: TXLSXRange; AParts: TXLSXFormatParts);
  function CopyToClipboard: Boolean;
  function SaveAsPDF(const FileName: WideString): Integer; overload;
  function SaveAsPDF(Stream: TStream): Integer; overload;
  function SetDynamicArrayFormula(const F: WideString): Integer;
end;

Members

Member Description
Create(ASheet, ARow1, ACol1, ARow2, ACol2) Builds a new worksheet-owned range and normalizes reversed corners so Row1/Col1 are always the upper-left coordinate
RefA1 Retourneert de bereikverwijzing als A1-tekst. Bereiken van één cel geven één celverwijzing terug zoals B2
SaveAsHTML Options overloads accept TXLSXHtmlExportOptions for Title, WriteDocument, IncludeStyles, IncludeBOM, and TableClass. Set WriteDocument to False for a table fragment; set IncludeBOM to False wanneer de uitvoer in een bestaande UTF-8-response wordt ingebed. Dezelfde opties zijn beschikbaar voor HTML-export van het geselecteerde bereik. De geëxporteerde uitvoer behoudt celhyperlinks als <a> anchors and anchored images as inline data: afbeeldings-URI's wanneer die binnen de geselecteerde rechthoek vallen. Celopmerkingen binnen de geselecteerde rechthoek worden bovendien geëmitteerd als geëscapte <td> title attributes. When IncludeStyles is enabled, explicit ColWidth values are emitted as <col> widths and explicit RowHeight values as <tr> height styles. Rich-text cell runs are emitted as escaped <span> elements with inline font, color, emphasis, and underline styles when IncludeStyles is enabled. Cell borders are emitted as CSS border-left, border-right, border-top, and border-bottom rules when IncludeStyles is enabled. Hidden rows and columns marked by RowHidden / ColHidden, plus explicit zero-width columns, are skipped in the generated table and <colgroup>. Vertical alignment settings are emitted as CSS vertical-align rules when IncludeStyles is enabled
SetValue / SetFormula Schrijft dezelfde waarde of formuletekst naar elke cel in het bereik via de celverzameling van het werkblad
SetArrayFormula Zet een CSE-arrayformule over meerdere cellen over het bereik. De cel linksboven bewaart de formuletekst en verankert het spill-bereik, terwijl de overige cellen naar die wortel verwijzen, zodat elke cel zijn eigen element van het matrixresultaat evalueert. Geef de formuletekst door zonder de omringende accolades
ClearValues / Clear / ClearAll ClearValues and Clear remove values and formulas while preserving style indexes. ClearAll also clears style indexes
SetFontIndex / SetFillIndex / SetBorderIndex / SetNumberFormatIndex / SetAlignmentIndex Past werkmap-paletindexen vanaf 1 toe op elke cel in het bereik. Geef 0 door om de bijbehorende index per cel te wissen
SetNumberFormat Zoekt een getalnotatiestring op in het palet van de werkmap of voegt die toe, en past de resulterende index (vanaf 1) toe op het bereik. Een lege notatie wist de index per cel
SetBorders Composes border edges over the range. TXLSXBorderEdgeKind accepts xlsxEdgeAll, xlsxEdgeOutline, xlsxEdgeInside, xlsxEdgeInsideHorizontal, xlsxEdgeInsideVertical, xlsxEdgeTop, xlsxEdgeBottom, xlsxEdgeLeft, xlsxEdgeRight, xlsxEdgeDiagonalUp, and xlsxEdgeDiagonalDown. Gebruik de selectors voor buiten- en binnenranden om tabelranden op te bouwen zonder niet-gerelateerde randinstellingen te vervangen
SetLocked / SetFormulaHidden Past celbeveiligingsvlaggen toe op elke cel in het bereik door de beveiligingsstijlpool van de werkmap te hergebruiken
AutoFitColumns / AutoFitRows Stuurt door naar de auto-fit-hulpfuncties van het werkblad over de kolom- of rijgrenzen van het bereik. Optionele breedte- en hoogtelimieten worden doorgegeven zodat rapportindelingen binnen de ontwerpgrenzen blijven
Merge / Unmerge Merge and Merge(False) create one merged rectangle. Merge(True) creates one merged range per row, matching Excel's merge-across behavior. Unmerge removes an exact merged-range match
Offset / Resize Retourneert een ander door het werkblad beheerd bereik, verschoven ten opzichte van de huidige grenzen of geschaald naar het gevraagde aantal rijen en kolommen
Sort Sorteert de rijen binnen dit bereik op één sleutelkolom of op meerdere sleutelkolommen in prioriteitsvolgorde. ADescending kiest per sleutel oplopende of aflopende volgorde; weggelaten items vallen terug op oplopend. Lege waarden komen achteraan te staan
ApplyBuiltinStyle Past het zichtbare uiterlijk van een ingebouwde Excel-celstijl toe op elke cel in het bereik. De hulpfunctie schrijft directe opmaak weg door het bijpassende lettertype en de vulling aan de pools van de werkmap toe te voegen en de resulterende indexen aan de cellen toe te wijzen
CopyTo / MoveTo Kopieert of verplaatst het hele bereik naar een doelcel linksboven. Waarden, formules, rich-text-payloads, stijlindexen, opmerkingen, hyperlinks en tekenankers worden doorgestuurd via de hulpfuncties van het werkblad voor het kopiëren en verplaatsen van bereiken
InsertRows / DeleteRows / InsertCols / DeleteCols Voert invoeg- en verwijderoperaties over hele rijen of kolommen uit binnen de grenzen van het bereik. Deze hulpfuncties sturen door naar de rij-/kolomverschuivingsoperaties van het werkblad, zodat formules, verwijzingen, filters, pagina-instellingsbereiken, grafiekbereiken, namen, afbeeldingen en grafiekankers uitgelijnd blijven met het bewerkte raster
ApplyFormatPatch Past selectief opmaakstijlen vanuit een ander bronbereik toe op dit bereik met behulp van TXLSXFormatParts-vlaggen
CopyToClipboard Kopieert de waarden en stijlen van het bereik naar het Windows-klembord
SaveAsPDF Exporteert het celbereik als PDF-bestand of stream met de in-process PDF-renderingengine
SetDynamicArrayFormula Zet een dynamische arrayformule over het bereik, met ondersteuning voor het dynamische spill-gedrag van Excel

Ownership and bounds

Bereiken zijn in eigendom van het werkblad dat ze aanmaakte en worden met dat werkblad vrijgegeven Applicatiecode hoort deze methode niet zelf aan te roepen Free on a TXLSXRange en mag geen bereikverwijzing vasthouden nadat het werkblad of de werkmap is vernietigd
Numerieke coördinaten zijn gebaseerd op 1. Het aanmaken van bereiken normaliseert omgekeerde hoekpunten en klemmt de grenzen af op de XLSX-werkbladlimieten

Voorbeeld

var
  Wb: TXLSXWorkbook;
  Ws: TXLSXWorksheet;
  Body: TXLSXRange;
begin
  Wb := TXLSXWorkbook.Create;
  try
    Ws := Wb.Sheets.Add('Report');
    Body := Ws.Range['B2:D20'];
    Body.SetNumberFormat('#,##0.00');
    Body.SetBorders(xlsxEdgeOutline, xlsxBorderThin, $FF808080);
    Body.Sort(2);
    Body.ApplyBuiltinStyle(xbsAccent1);
    Ws.Range['F2:G3'].SetArrayFormula('MMULT(A2:B3,D2:E3)');
    Body.AutoFitColumns;
    Body.SaveAsHTML('report-fragment.html');
  finally
    Wb.Free;
  end;
end;

Zie ook