Documentazione HotXLS

TXLSXRange class

Unità: lxHandleX
Rappresenta 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 Restituisce 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 quando si incorpora l'output in una risposta UTF-8 esistente. Le stesse opzioni sono disponibili per l'esportazione HTML dell'intervallo selezionato. L'output esportato preserva i collegamenti ipertestuali delle celle come <a> anchors and anchored images as inline data: URI delle immagini quando cadono nel rettangolo selezionato. Anche i commenti di cella all'interno del rettangolo selezionato vengono emessi come <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 Scrive lo stesso valore o testo di formula in ogni cella dell'intervallo tramite la raccolta di celle del foglio di lavoro
SetArrayFormula Imposta una formula di matrice CSE su più celle sull'intervallo. La cella in alto a sinistra memorizza il testo della formula e ancora l'intervallo di spill, mentre le celle rimanenti puntano a quella radice, così ogni cella valuta il proprio elemento del risultato della matrice. Passare il testo della formula senza le parentesi graffe esterne
ClearValues / Clear / ClearAll ClearValues and Clear remove values and formulas while preserving style indexes. ClearAll also clears style indexes
SetFontIndex / SetFillIndex / SetBorderIndex / SetNumberFormatIndex / SetAlignmentIndex Applica gli indici in base 1 della palette della cartella di lavoro a ogni cella dell'intervallo. Passare 0 per cancellare l'indice per singola cella corrispondente
SetNumberFormat Cerca o aggiunge una stringa di formato numerico nella palette della cartella di lavoro, quindi applica all'intervallo l'indice in base 1 risultante. Un formato vuoto cancella l'indice per singola cella
SetBorders Composes border edges over the range. TXLSXBorderEdgeKind accepts xlsxEdgeAll, xlsxEdgeOutline, xlsxEdgeInside, xlsxEdgeInsideHorizontal, xlsxEdgeInsideVertical, xlsxEdgeTop, xlsxEdgeBottom, xlsxEdgeLeft, xlsxEdgeRight, xlsxEdgeDiagonalUp, and xlsxEdgeDiagonalDown. Usare i selettori di lato esterni e interni per costruire i bordi delle tabelle senza sostituire le impostazioni dei lati non correlate
SetLocked / SetFormulaHidden Applica i flag di protezione delle celle a ogni cella dell'intervallo riutilizzando il pool di stili di protezione della cartella di lavoro
AutoFitColumns / AutoFitRows Inoltra agli helper di auto-fit del foglio di lavoro sui limiti di colonna o riga dell'intervallo. I limiti facoltativi di larghezza e altezza vengono passati oltre per mantenere i layout dei report entro i limiti di impaginazione
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 Restituisce another worksheet-owned range shifted from the current bounds or resized to the requested row and column count
Sort Ordina le righe all'interno di questo intervallo per una colonna chiave o per più colonne chiave in ordine di priorità. ADescending seleziona l'ordine crescente o decrescente per ogni chiave; le voci omesse vengono per impostazione predefinita in ordine crescente. I valori vuoti vengono ordinati per ultimi
ApplyBuiltinStyle Applica l'aspetto visivo di uno stile di cella predefinito di Excel a ogni cella dell'intervallo. L'helper scrive la formattazione diretta aggiungendo il font e il riempimento corrispondenti ai pool della cartella di lavoro e assegnando alle celle gli indici risultanti
CopyTo / MoveTo Copia o sposta l'intero intervallo verso una cella di destinazione in alto a sinistra. Valori, formule, payload di rich text, indici di stile, commenti, collegamenti ipertestuali e ancore dei disegni vengono inoltrati tramite gli helper di copia e spostamento di intervalli del foglio di lavoro
InsertRows / DeleteRows / InsertCols / DeleteCols Esegue inserimento ed eliminazione di intere righe o colonne entro i limiti dell'intervallo. Questi helper inoltrano alle operazioni di spostamento righe/colonne del foglio di lavoro, così formule, riferimenti, filtri, intervalli dell'impostazione di pagina, intervalli dei grafici, nomi, immagini e ancore dei grafici restano allineati con la griglia modificata
ApplyFormatPatch Applica stili di formattazione selettivi da un altro intervallo di origine a questo intervallo usando i flag TXLSXFormatParts
CopyToClipboard Copies the range values and styles to the Windows clipboard
SaveAsPDF Esporta l'intervallo di celle come file o stream PDF usando il motore di rendering PDF in-process
SetDynamicArrayFormula Imposta una formula di matrice dinamica sull'intervallo, con supporto del comportamento di spill dinamico di Excel

Ownership and bounds

Gli intervalli appartengono al foglio di lavoro che li ha creati e vengono liberati con quel foglio di lavoro Il codice dell'applicazione non deve chiamare Free on a TXLSXRange e non deve conservare un riferimento all'intervallo dopo che il foglio di lavoro o la cartella di lavoro è stata distrutta
Le coordinate numeriche sono in base 1. La creazione dell'intervallo normalizza gli angoli invertiti e limita i confini ai limiti del foglio di lavoro XLSX

Esempio

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;

Vedi anche