Documentazione HotXLS

Membri API aggiuntivi XLS classici

Questa pagina copre i membri API XLS classici pubblici che appartengono a lxHandle, lxDataToXLS e lxGridToXLS

Proprietà di calcolo di IXLSWorkbook

property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
      
CalculationMode Controlla la modalità di calcolo del workbook salvata insieme al file
FormulaArrayMemoryLimit Limita il payload allocato dagli array di formula generati come MUNIT, il valore predefinito è 64 MiB, e vincola i valori inferiori a un elemento Double
EnableIteration Abilita il calcolo iterativo per le formule circolari
MaxIterations Numero massimo di passate Gauss-Seidel per ogni componente fortemente connessa di riferimenti circolari
MaxIterationChange Delta numerico massimo accettato prima che una componente con riferimenti circolari smetta di iterare
RecalcOnSave Richiede il ricalcolo del workbook quando Excel salva il file
UseFullPrecision Mantiene la piena precisione delle formule; quando è disabilitata, le cache delle formule e delle tabelle dati What-If vengono arrotondate alla loro effettiva precisione numerica visualizzata prima che le celle dipendenti le leggano

Validazione dell'immissione delle formule

property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
  const Formula: WideString): TXLSFormulaEntryValidationResult;
      
Il contratto di validazione condiviso classifica input vuoto, funzioni sconosciute, nomi sconosciuti, errori di sintassi, coordinate non valide e formule che non possono essere rappresentate dal target XLS classico senza modificare lo stato del foglio di lavoro; vedi Criteri di validazione dell'immissione delle formule

Calibrazione di rendering di IXLSWorkbook

property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
  ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
      
L'assegnazione dell'intero record valida tutti e sei i campi prima di modificare il workbook, CaptureRenderCalibration restituisce uno snapshot di valore indipendente per una singola operazione di misura o esportazione, e ResetRenderCalibration ripristina i valori standard 1/1/1/1/100/96
Questa configurazione solo a runtime non viene serializzata nel file XLS e non modifica le altezze di riga o le larghezze di colonna del foglio di lavoro
CreateRenderGeometry copia la calibrazione corrente in un servizio di proprietà dell'operazione e lega la sua identità di cache alla generazione corrente del workbook e al backend selezionato; successive modifiche alla calibrazione del workbook non possono alterare un servizio esistente
L'AutoFit degli intervalli e ogni chiamata a TXLSPaginationModel.Build catturano la calibrazione del workbook una sola volta; l'AutoFit è l'unico consumatore che scrive intenzionalmente le dimensioni adattate, mentre l'impaginazione preserva ogni altezza di riga e larghezza di colonna memorizzata

Proprietà del documento di IXLSWorkbook

property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
      
Queste proprietà leggono e scrivono i campi delle informazioni di riepilogo del workbook salvati con il file XLS classico

Metodo Close di IXLSWorkbook

function Close: Integer;
      
Chiude l'oggetto workbook e rilascia il contenuto di proprietà del workbook trattenuto dal modello a oggetti XLS classico

Proprietà di caricamento solo metadati di IXLSWorkbook

property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
      
MetadataOnly Se impostata prima di Open, legge solo i metadati del workbook e i descrittori dei fogli, saltando i dati delle celle
SelectedSheets Elenco dei nomi dei fogli da caricare all'apertura del workbook; un elenco vuoto carica ogni foglio
IncompleteLoad True dopo Open quando i dati delle celle sono stati saltati perché era in uso MetadataOnly o SelectedSheets
Un workbook aperto con MetadataOnly o con un SelectedSheets non vuoto non può essere salvato; Save solleva un errore finché il workbook non viene riaperto senza queste opzioni

Stato compresso di TXLSColumnInfo

property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
      
Collapsed espone il marcatore di struttura delle colonne BIFF indipendentemente da Hidden e OutlineLevel. L'indice dell'elenco è un indice di colonna XLS classico a base zero. Le colonne mancanti si leggono come False, e assegnare False a una colonna mancante non alloca metadati. Le copie del formato di colonna, le copie del foglio di lavoro e i cicli di salvataggio e riapertura preservano il marcatore
Le funzioni di accesso all'archiviazione sottostante sono pubbliche per l'ispezione del workbook a basso livello. TXLSRowInfo riporta MinCol e MaxCol (l'intervallo di colonne coperto, a base uno), CustomHeight e CustomFormat (se è memorizzata un'altezza esplicita o un indice XF) e XFIndexSet; TXLSColumnInfo.isEqual confronta due voci di metadati di colonna campo per campo
TXLSColumnInfoList espone ColCount, MinCol, MaxCol, StdWidth e MaxOutlineLevel per la diagnostica di limiti e larghezza predefinita, CalcMaxOutLineLevel ricalcola il livello massimo di struttura memorizzato nella cache dopo modifiche dirette ai metadati, CopyColFormat clona una voce di colonna su un altro indice, DeleteCol rimuove una voce, e FindNextColToStore scorre le voci memorizzate per i writer di record BIFF COLINFO, riportando l'intervallo successivo nei parametri out MinCol / MaxCol

Metodi dei nodi di struttura di TXLSWorksheet

function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
      
Questi metodi adattano i metadati classici di righe e colonne al modello di struttura sparsa condiviso, derivano il nodo di riepilogo richiesto dalla sua direzione di struttura e applicano modifiche compresse di visibilità e compressione senza esplorare coordinate inutilizzate del foglio di lavoro
ANodeIndex è la riga o colonna di riepilogo fisica a base uno, ADisplayLevel segue la convenzione a base uno dei pulsanti di struttura, e xocPreserve mantiene per impostazione predefinita indipendenti i marcatori di compressione dei nodi figlio annidati
Vedi Geometria di struttura sparsa per i campi dei nodi, le modalità figlio, gli esempi e le garanzie di complessità

Metodi dei riquadri e dei titoli di stampa di TXLSWorksheet

function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
      
ThawPanes, SplitPanes e UnsplitPanes controllano lo stato dei riquadri suddivisi, mentre RepeatRows e RepeatColumns impostano le righe o le colonne dei titoli di stampa per il foglio di lavoro
GetSelectedAreas e l'overload di SelectAreas con il riquadro come primo parametro forniscono il contratto condiviso di selezione dei riquadri logici descritto in API di selezione nei riquadri del foglio di lavoro
I record di selezione BIFF consecutivi per un solo riquadro formano un unico gruppo logico, i gruppi modificati vengono scritti in blocchi di al massimo 1369 aree, e le copie del foglio di lavoro conservano ogni gruppo di riquadri
Le modifiche strutturali a intere righe e colonne rimappano ogni gruppo di riquadri valido preservando l'ordine dei superstiti e l'identità dell'area attiva, con successore, predecessore e celle di confine di fallback deterministici
I record di selezione malformati o contraddittori restano opachi, vengono riprodotti byte per byte al salvataggio e riportano xlsDiagnosticSelectionRecordInvalid invece di esporre stato tipizzato parzialmente affidabile
TryGetWindowScroll e ScrollWindow espongono il contratto condiviso di scorrimento a base uno dei quattro riquadri, mappando gli assi superiore e sinistro su Window2 e quelli inferiore e destro su Pane

Metodi di convalida dei dati tipizzati di TXLSWorksheet

function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
      
Ogni helper crea una regola tipizzata di convalida dei dati per ARange e restituisce l'istanza TDataValidation creata, così è possibile regolare le opzioni di messaggio, errore e gestione dei valori vuoti

Membri delle tabelle pivot di TXLSWorksheet

property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
      
Usa AddPivotTable per creare una tabella pivot tipizzata da un intervallo di origine, poi usa PivotTables e PivotSetDataFieldFormat per ispezionare o formattare il modello generato. Vedi API delle tabelle pivot XLS classiche

Membri di formula matrice e limiti di IXLSRange

function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
      
SetArrayFormula assegna una formula matrice all'intervallo. FirstRow, LastRow, FirstCol e LastCol espongono i limiti memorizzati a base 1 dell'intervallo, mentre XFIndex restituisce l'indice di formato XLS classico effettivo per l'intervallo

Helper di trasferimento di IXLSRange

procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
      
PasteFrom applica il contenuto delle celle di un altro intervallo XLS classico usando la modalità di incolla selezionata. ShiftTo riposiziona un oggetto intervallo, mentre ExtendRange e ContractRange regolano il rettangolo memorizzato prima delle operazioni sugli intervalli che richiedono limiti ampliati o normalizzati

Interfacce degli intervalli di righe e colonne IXLS

interface IXLSRowsRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSRowRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSColsRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;

interface IXLSColRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;
      
IXLSRowsRange, IXLSRowRange, IXLSColsRange e IXLSColRange vengono restituiti da IXLSRange.Rows, IXLSRange.Columns, IXLSRange.EntireRow e IXLSRange.EntireColumn. Mantengono la normale superficie di modifica di IXLSRange aggiungendo l'accesso indicizzato alle righe o alle colonne, il controllo dello stato di visibilità, i conteggi, l'adattamento automatico e il raggruppamento con struttura dove la direzione dell'intervallo lo supporta
property DisplayText: WideString;
      
DisplayText legge o modifica il testo visibile che Excel mostra per un collegamento ipertestuale XLS classico, separatamente dall'indirizzo di destinazione e dal suggerimento a schermo

Proprietà di mappatura ID di TXLSWorksheets

property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
      
Queste proprietà di ricerca di sola lettura mettono in corrispondenza l'ID interno del foglio, l'indice corrente del foglio di lavoro e il nome visibile del foglio di lavoro. Sono utili quando si preservano formule, nomi definiti o record che si riferiscono ai fogli tramite identificatori memorizzati invece dell'ordine corrente delle schede

TXLSWorksheet SheetTypeRaw proprietà

property SheetTypeRaw: Byte;
      
SheetTypeRaw preserva il valore grezzo BoundSheet8.dt XLS classico durante il caricamento e il salvataggio dei workbook, così i record di tipo foglio macro, VBA, foglio di lavoro, finestra di dialogo e altro possono fare round-trip senza essere appiattiti in una scheda di foglio di lavoro standard

Proprietà di stampa avanzate di IXLSPageSetup

property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
      
Queste proprietà preservano le scelte avanzate di impostazione di pagina come i commenti stampati alla fine, un numero di prima pagina personalizzato, il rendering stampato degli errori delle celle, la risoluzione della stampante e il numero di copie
HasSetupRecord riporta se un foglio di lavoro XLS classico caricato contiene un record BIFF Setup, mentre PrinterSettingsInitialized riporta se le sue dimensioni carta, scala, orientamento, risoluzione e numero di copie sono definite da quel record
Il salvataggio di un foglio di lavoro non modificato preserva l'assenza di un record Setup e copia byte per byte un record esistente; la modifica di un campo di impostazione pagina crea il record quando serve, e la modifica di un campo dipendente dalla stampante inizializza le impostazioni della stampante
PrinterDriverData legge o sostituisce il payload opaco del driver di stampante BIFF PLS, HasPrinterDriverData distingue un payload assente, e ClearPrinterDriverData lo rimuove senza modificare i campi tipizzati di impostazione pagina
Gli array di byte di getter e setter vengono copiati, così i chiamanti e le copie del foglio di lavoro hanno una proprietà indipendente; i payload classici devono includere il prefisso riservato obbligatorio di due byte e non possono superare 1 MiB
SaveXLSWorkbookAsXLSX porta nel modello XLSX in modo indipendente i valori tipizzati di impostazione pagina e il payload opaco del driver di stampante; i campi standard tipizzati restano autorevoli quando i byte privati del driver contengono predefinite della stampante duplicate

Proprietà del set di caratteri di IXLSFont

property CharSet: Byte;
property Family: Byte;
      
CharSet e Family espongono i byte del set di caratteri e della famiglia dei caratteri XLS classici per i chiamanti che devono preservare metadati dei font specifici della lingua

Metodo Abort di TDataToXLS e TGridToXLS

procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
      
Chiama Abort dai gestori di evento di esportazione quando un'esportazione di dataset o di griglia in corso deve essere interrotta prima del completamento

Funzioni helper di riferimento XLS classiche

function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
      
Questi helper convertono i riferimenti A1 classici, gli intervalli, le etichette di colonna, le dimensioni di righe e colonne e le unità di archiviazione Excel usate dal modello a oggetti XLS classico