Documentazione HotXLS

Celle e intervalli

Un'attività comune quando si usa HotXLS consiste nello specificare una cella o un intervallo di celle e poi fare qualcosa con esso, come inserire un valore o cambiare il formato
Un oggetto Range in HotXLS può essere una singola cella o un intervallo di celle. Gli argomenti seguenti mostrano i modi più comuni per identificare e lavorare con gli oggetti Range
 
»Notazione A1 di Cell e Range
»Numeri di indice delle celle
»Numeri di indice degli intervalli
»Riferimento alle righe
»Riferimento alle colonne
»Intervallo Offset

Ispezione limitata di celle memorizzate per grafici Classic

TXLSWorksheet.ReadCachedChartCell(Row, Col, MaxBytes, MaxTextCharacters) legge coordinate Classic XLS a base zero senza creare celle, calcolare formule, clonare formule compilate, scaldare la cache delle stringhe condivise o cambiare la generazione del workbook

Il TXLSCachedChartCell restituito ha Kind: TXLSCachedChartCellKind, Number: Double, Text: WideString, ReadBytes: Int64, TextCharacters: Int64, Generation: UInt64 e CacheState: TXLSFormulaCacheState; ccckAbsent rappresenta contenuto mancante o vuoto e celle non-ancora unite, ccckNumber rappresenta un risultato numerico finito, e ccckText contiene una stringa UTF-16 con conteggio staccata

Le celle formula richiedono una cache memorizzata xlfcsLoaded o xlfcsCalculated; cache mancanti o invalidate generano EInvalidOperation invece di valutare le loro formule, mentre cache memorizzate vuote o null restituiscono ccckAbsent

La lunghezza delle stringhe condivise e la lunghezza in cache di varUString o varOleStr vengono verificate prima della copia, preservando i caratteri NUL incorporati e le unità di codice surrogate; array, variant by-reference, errori, valori Booleani, cache ANSI varString e tipi di cache sconosciuti sono esplicitamente non supportati

Un risultato testuale di n unità di codice UTF-16 addebita ReadBytes = 4*n e TextCharacters = 2*n per la sorgente con conteggio e l'output staccato; un numero addebita otto byte e nessun carattere di testo, e l'assenza non addebita nulla

Il metodo rifiuta limiti negativi con EArgumentOutOfRangeException, coordinate fuori dalle righe 0-65535 o colonne 0-255 con ERangeError, e limiti superati o valori non finiti con EInvalidOperation; i chiamanti devono inoltre mettere in budget qualunque formattazione numerica o testo di categoria copiato prodotto dal valore restituito

Le date di calendario memorizzate e le cache formula tipizzate varDate seguono l'impostazione Date1904 corrente del workbook, mentre i double numerici ordinari conservano il loro valore memorizzato esatto; una data di calendario memorizzata nell'intervallo fantasma 1900 [60, 61) viene rifiutata invece di essere trattata come data reale

TXLSWorksheet.IsCachedChartCellVisible(Row, Col) usa gli stessi limiti di coordinate a base zero e legge i flag di riga e colonna nascoste memorizzati senza materializzazione; una cattura di grafico che richiede il plot di soli dati visibili deve verificare questo risultato e applicare la sua politica documentata per i dati nascosti

Entrambi i metodi acquisiscono un lease di lettura annidato del workbook; una sorgente grafico multicellula deve trattenere un lease esterno, verificare la Generation restituita, risolvere i riferimenti delle formule contro il workbook esattamente prestato e il foglio di lavoro locale senza riferimenti esterni o tra fogli, e validare i limiti dei riferimenti e la provenienza delle formule prima di usare questi valori

Immagini in cella e checkbox XLSX

TXLSXCell.SetInCellImage(Data, ContentType, AltText, Decorative) memorizza un PNG o JPEG locale come contenuto della cella, con byte codificati copiati e un grafo di metadati rich-value nel package XLSX

Il setter valida i limiti dei chunk PNG, i checksum e il marker finale, oppure i marker di frame e container JPEG, prima di modificare la cella; la decodifica raster resta responsabilità del renderer

ContentType è image/png o image/jpeg, Decorative ha come predefinito False, e AltText viene preservato come metadato dell'immagine

SetInCellImage sostituisce formula, contenuto in cache e rich text, rifiuta le celle con formule array, e usa #VALUE! come valore ordinario di fallback della cella; la libreria non calcola la funzione IMAGE e non scarica immagini remote

InCellImage restituisce uno TXLSInCellImageSnapshot staccato con Availability: TXLSCellFeatureAvailability, Data, ContentType, AltText, Decorative e CalcOrigin; xlcfaAbsent significa nessun metadato immagine, xlcfaSupported significa un PNG o JPEG locale risolto, e xlcfaUnsupported significa che i metadati esistenti non possono essere interpretati in sicurezza

ClearInCellImage rimuove l'immagine e azzera il suo valore di fallback; assegnare un altro valore o formula rimuove l'immagine come parte della sostituzione del contenuto della cella

TXLSXCell.SetCheckbox(DefaultState: TXLSCheckboxDefaultState) crea un formato cell-control e inizializza il valore, con xlcdUnchecked, xlcdChecked o xlcdBlank; il predefinito è xlcdUnchecked

CellControl restituisce uno TXLSCellControlSnapshot con Kind: TXLSCellControlKind, DefaultState e la Value sottostante; i tipi sono xlcctNone, xlcctUnknown e xlcctCheckbox

Il formato Checkbox appartiene alla formattazione, quindi le assegnazioni di valore o formula lo conservano e Range.Clear cancella il contenuto mantenendo il formato; ClearCellControl rimuove quel formato preservando il valore, e Range.ClearAll rimuove entrambi

TXLSXWorksheet.ReadInCellImage(Row, Col, MaxBytes) e TXLSXWorksheet.ReadCellControl(Row, Col) leggono coordinate a base 1 sotto un lease di lettura senza creare celle mancanti o ricalcolare formule; MaxBytes ha come predefinito High(Int64) e rifiuta un'immagine oversized prima di copiarne i byte

Stili espliciti a livello di cella, metadati di immagini locali, stato predefinito del Checkbox e valori Booleani sopravvivono a salvataggio e ricaricamento XLSX, a copie e spostamenti di intervalli, a modifiche strutturali di righe o colonne e al ripristino di snapshot di contenuto nello stesso workbook; le copie supportate tra workbook ricostruiscono i riferimenti di destinazione

Bag di controllo sconosciuti, tipi rich-value e riferimenti malformati restano esplicitamente non supportati; i salvataggi Open XML ordinari conservano i loro metadati sorgente quando PreserveUnsupportedParts è abilitato, mentre copiare metadati di feature di cella sconosciuti in un altro workbook viene rifiutato prima di modificare la destinazione

Aggiungere una feature supportata a un property bag importato o a un grafo di immagini con namespace non supportato o relazioni di owner in conflitto viene rifiutato al salvataggio invece di ricostruire quel grafo da metadati indovinati

Formati Checkbox ereditati sparsi

TXLSXWorksheet.SetRowCheckboxFormat(FirstRow, LastRow, DefaultState) e SetColumnCheckboxFormat(FirstCol, LastCol, DefaultState) applicano un intervallo inclusivo a base 1 sull'asse senza creare celle o inizializzare valori; DefaultState ha come predefinito xlcdUnchecked

ClearRowCellControlFormat(FirstRow, LastRow) e ClearColumnCellControlFormat(FirstCol, LastCol) cancellano esplicitamente il formato ereditato corrispondente preservando i valori; intervalli non validi generano EArgumentOutOfRangeException prima della mutazione

I controlli diretti delle celle e le cancellazioni dirette hanno precedenza sui formati ereditati, le regioni di formato copiate finite hanno precedenza sulle righe, e le righe hanno precedenza sulle colonne indipendentemente dall'ordine di assegnazione; l'ultima assegnazione allo stesso livello vince

Un elemento cella importato ha un XF predefinito diretto quando il suo attributo s è omesso, preservando le maschere di cancellazione vuote che Excel scrive senza un indice zero esplicito; gli elementi cella mancanti ereditano comunque il formato dell'asse

Una cella assente conserva Value = Unassigned anche quando il suo predefinito Checkbox ereditato è checked; il predefinito è un metadato di inserimento e non fabbrica un valore Booleano durante lettura o rendering

L'assegnazione di FormatIndex sostituisce il formato di controllo diretto, incluso un assegnazione esplicita di zero che maschera i controlli ereditati; cambi parziali di font, riempimento, bordo, numero, allineamento o protezione conservano il formato di controllo

I formati ereditati sopravvivono alle modifiche strutturali, alle copie di intervalli e fogli supportate e ai roundtrip XLSX; una copia tra workbook rimappa i property bag noti e rifiuta i metadati di controllo ereditati sconosciuti prima di modificare la destinazione

Il salvataggio e la normalizzazione semantica verificano la complessità dei confini sparsi prima di attraversarla, con limiti di 1.000.000 di partizioni e 16.000.000 di stime di verifiche di risoluzione overlay; un grafo di controllo eccessivamente frammentato genera EXLSXSemanticBudget invece di avviare un'attraversamento cartesiano senza limiti

TXLSXRange.ApplyFormatPatch accetta xfpCellControl per copiare il formato Checkbox effettivo o cancellarlo senza cambiare i valori, sostituendo i formati di controllo diretti esistenti e rifiutando controlli sconosciuti prima della mutazione della destinazione

TXLSXCellStyleState.CellControlSlot è la rappresentazione overlay: zero è una cancellazione esplicita, da 1 a 3 identificano i predefiniti Checkbox unchecked, checked e blank, e gli slot negativi referenziano feature XF importate; i numeri di slot importati appartengono al loro workbook e devono essere rimappati durante la copia tra workbook

Gli snapshot di controllo di sola lettura e il confronto semantico usano il formato sparso effettivo senza materializzare celle mancanti; gli snapshot di contenuto preservano le maschere di controllo dirette, e CellImageCount conta i carrier di immagini in cella memorizzati supportati o non supportati senza copiare i byte delle immagini

La cattura portabile disegna valori Booleani dei Checkbox e rifiuta esplicitamente l'aspetto Checkbox blank o non-Booleano; la quota di griglia richiesta viene verificata prima di attraversare un intervallo ereditato ampio

Queste API sono disponibili sulle celle di TXLSXWorkbook; il motore Classic XLS non espone la creazione moderna di cell-control o immagini rich-value

GetConversionReport riporta le perdite di immagini in cella e di cell-control per l'output OpenDocument e XLSB, che conservano i valori di fallback mentre omettono i metadati delle feature moderne; usa il salvataggio verificato per rivedere o rifiutare quelle perdite

Il grafo del package segue la specificazione rich-value delle immagini locali di Microsoft e la specificazione del property bag della feature Checkbox; la disponibilità in una particolare build di Excel non stabilisce il supporto in questa libreria, e i roundtrip della libreria non stabiliscono l'equivalenza di rendering nativo in una build di Excel priva di queste feature

Il probe di compatibilità su Excel 16.0 build 20430 ha aperto e salvato il package Checkbox generato, ma non ha esposto alcuna API utilizzabile di authoring di Checkbox o immagini locali in cella; ha aperto il package immagine con i flag rich-value richiesti e ha sostituito la sua immagine locale non supportata con #FIELD! al re-salvataggio