HotXLS-dokumentation

TXLSXRange class

Enhed: lxHandleX
Repræsenterer a rectangular XLSX worksheet range returned by TXLSXWorksheet.Range, RCRange, UsedRange, EntireRow, or 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 Returnerer the range reference as A1 text. Single-cell ranges return a single cell reference such as 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 når output indlejres i et eksisterende UTF-8-svar. Samme tilvalg er tilgængelige til HTML-eksport af markerede områder. Eksporteret output bevarer hyperlinks som <a> anchors and anchored images as inline data: billede-URI'er, når de ligger inden for det valgte rektangel. Cellekommentarer inden for det valgte rektangel skrives også som escaped <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 Skriver samme værdi eller formeltekst til alle celler i området via regnearkets cellesamling
SetArrayFormula Sætter en CSE-matrixformel over flere celler på området. Cellen øverst til venstre gemmer formelteksten og foranker udfyldningsområdet, mens de resterende celler peger tilbage på den rod, så hver celle beregner sit eget element af matrixresultatet. Angiv formelteksten uden de omgivende klammeparenteser
ClearValues / Clear / ClearAll ClearValues and Clear remove values and formulas while preserving style indexes. ClearAll also clears style indexes
SetFontIndex / SetFillIndex / SetBorderIndex / SetNumberFormatIndex / SetAlignmentIndex Anvender 1-baserede indeks fra projektmappens palet på hver celle i området. Angiv 0 for at rydde det tilsvarende indeks for den enkelte celle
SetNumberFormat Slår en talformatstreng op i projektmappens palet eller tilføjer den og anvender derefter det resulterende 1-baserede indeks på området. Et tomt format rydder indekset for den enkelte celle
SetBorders Composes border edges over the range. TXLSXBorderEdgeKind accepts xlsxEdgeAll, xlsxEdgeOutline, xlsxEdgeInside, xlsxEdgeInsideHorizontal, xlsxEdgeInsideVertical, xlsxEdgeTop, xlsxEdgeBottom, xlsxEdgeLeft, xlsxEdgeRight, xlsxEdgeDiagonalUp, and xlsxEdgeDiagonalDown. Brug kontur- og indre kantvælgere til at opbygge tabelkanter uden at erstatte uafhængige kantindstillinger
SetLocked / SetFormulaHidden Anvender celabeskyttelsesflag på alle celler i området ved at genbruge projektmappens beskyttelsestype-pulje
AutoFitColumns / AutoFitRows Videresender til regnearkets auto-fit-hjælpere over områdets kolonne- eller rækkegrænser. Valgfrie bredde- og højdegrænser videregives, så rapportlayout holder sig inden for designgrænserne
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 Returnerer another worksheet-owned range shifted from the current bounds or resized to the requested row and column count
Sort Sorterer rækkerne i dette område efter én nøglekolonne eller efter flere nøglekolonner i prioritetsrækkefølge ADescending vælger stigende eller faldende rækkefølge pr. nøgle; udeladte poster får som standard stigende rækkefølge. Tomme værdier sorteres sidst
ApplyBuiltinStyle Anvender det synlige udseende af en indbygget Excel-celletypografi på alle celler i området. Hjælperen skriver direkte formatering ved at tilføje den tilsvarende skrifttype og udfyldning til projektmappepuljerne og tildele de resulterende indeks til cellerne
CopyTo / MoveTo Kopierer eller flytter hele området til en destinationscelle øverst til venstre. Værdier, formler, rich-text-payloads, typografiindeks, kommentarer, hyperlinks og tegningsforankringer videregives gennem regnearkets områdekopierings- og områdeflytningshjælpere
InsertRows / DeleteRows / InsertCols / DeleteCols Udfører indsættelse og sletning af hele rækker eller hele kolonner over områdets grænser. Hjælperne videresender til regnearkets række-/kolonneforskydningsoperationer, så formler, referencer, filtre, sideopsætningsområder, diagramområder, navne, billeder og diagramforankringer forbliver tilpasset det redigerede gitter
ApplyFormatPatch Anvender udvalgt formatering fra et andet kildeområde på dette område via TXLSXFormatParts-flag
CopyToClipboard Copies the range values and styles to the Windows clipboard
SaveAsPDF Eksporterer celleområdet som PDF-fil eller -stream med PDF-gengivelsesmotoren i processen
SetDynamicArrayFormula Sætter en dynamisk matrixformel over området med understøttelse af Excels dynamiske spill-adfærd

Ownership and bounds

Områder ejes af det regneark, der oprettede dem, og frigøres med det regneark. Programkode bør ikke kalde Free on a TXLSXRange og bør ikke gemme en områdereference, efter at regnearket eller projektmappen er destrueret
Numeriske koordinater er 1-baserede. Oprettelse af områder normaliserer omvendte hjørner og begrænser grænserne til XLSX-regnearkets maksimum

Eksempel

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;

Se også