HotXLS Release Note
Version history for HotXLS user-visible features, fixes, XLS/XLSX enhancements, export updates, compatibility changes, e documentation changes
Last release
- Ultima versione: 2.384.120; Data di rilascio: 2026-10-09
Versione 2.384.120
Aggiunto
- L'acquisizione portabile dei file Classic XLS supporta i normali grafici a colonne, a barre, a linee, a dispersione, a torta, ad anello e ad area a serie singola, con valori memorizzati locali convalidati, aspetto essenziale e limiti di tracciato, titolo e legenda dichiarati da chi chiama
- Le dichiarazioni di aspetto dei grafici in sola lettura conservano le identità di foglio e grafico, le dimensioni esplicite della cornice, le dimensioni effettive in punti della legenda e la geometria nativa dei caratteri per l'output PDF, SVG e PNG scollegato
- Dei helper delimitati esaminano i riferimenti delle formule memorizzate semplici e le celle dei grafici in cache, senza valutare formule né espandere le celle sparse
Corretto
- L'acquisizione dei grafici Classic preserva le dimensioni frazionarie memorizzate di caratteri e marcatori, la proprietà della sorgente e i lease di lettura, e rifiuta prima dell'output record malformati, aspetto non risolto e budget di risorse esauriti
- Gli aggiornamenti delle proprietà double dei grafici rifiutano i valori non finiti prima del confronto o della modifica
- Le inizializzazioni ripetute delle celle native portabili rilasciano le stringhe gestite precedenti durante l'acquisizione
Versione 2.384.119
Corretto
- L'ispezione dei grafici Classic convalida il testo memorizzato di serie, nomi delle linee di tendenza e separatori delle etichette dati prima di applicare lo stato tipizzato, e rilascia i modelli parziali quando un testo malformato genera un errore
- I separatori compressi Unicode delle etichette dati conservano tutti i loro caratteri memorizzati
Versione 2.384.118
Aggiunto
- L'ispezione dei grafici Classic espone i diametri dei marcatori in punti, comprese le dimensioni frazionarie, preservando le unità memorizzate originali
Corretto
- Le tabelle di riempimento supportate dei grafici Classic nativi decodificano le proprietà dopo le voci complesse, e le tabelle malformate preservano il riempimento tipizzato precedente
Versione 2.384.117
Aggiunto
- Gli helper espliciti di codifica a byte preservano i null incorporati e rifiutano il testo che la tabella codici selezionata non può rappresentare
Modificato
- Testo, formule e metadati della cartella di lavoro in BIFF5 Classic usano la loro codifica dichiarata su Windows, Linux e macOS, con lunghezze in byte codificate e confini a carattere completo
- Il testo dei grafici legacy supportato conserva la sua decodifica originale dopo modifiche e copie della tabella codici, e viene transcodificato in modo esplicito prima del salvataggio con una codifica diversa
Corretto
- L'Unicode compresso di BIFF8 preserva le esatte code unit, e gli stili personalizzati legacy, il testo dei grafici e le continuazioni a doppio byte della cache delle formule usano i loro layout di record effettivi
- Il calcolo del testo Unicode nativo, i criteri, le chiavi di ricerca, le associazioni locali delle formule e la ricerca e sostituzione Classic preservano la corrispondenza di maiuscole e minuscole supportata
- La ricerca degli stili con nome risolve la prima voce memorizzata senza trattarla come un nome assente
- Le letture ripetute delle voci ZIP rilasciano i metadati di intestazione precedenti, conservando il comportamento concorrente degli stream stored e deflate
Versione 2.384.116
Aggiunto
- I campi pivot calcolati SUM locali valutano le formule a partire dalle somme di contesto di foglia, subtotale e totale complessivo, comprese le dipendenze assenti dalle misure visualizzate
- Gli elementi calcolati di proprietà della cache conservano le identità native dei membri, le dipendenze nascoste e l'ordine globale di risoluzione nei campi non raggruppati con membri stringa supportati
- I calcoli di visualizzazione e i filtri di aggregazione supportati degli elementi calcolati conservano l'ordine dei membri visibili, l'ordine originale dei filtri e identità non ambigue delle misure visualizzate
Corretto
- La proiezione delle date nelle formule pivot native preserva il sistema di date della cartella di lavoro attraverso importazione, clonazione e calcolo della cache
- La pulizia della cache degli elementi mancanti preserva la proprietà convalidata dei report materializzati in entrambi i sistemi di date della cartella di lavoro e nei report legacy salvati
- I metadati pivot calcolati non supportati e l'output nativo modificato vengono rifiutati prima di alterare i risultati del foglio di lavoro
Versione 2.384.115
Aggiunto
- L'output nativo portabile in PDF, SVG e PNG supporta rich text, forme modellate, immagini normali, immagini nella cella, caselle di controllo Boolean e sette famiglie di grafici XLSX in cache supportate
- I piani di stampa immutabili della cartella di lavoro applicano aree di stampa complete, titoli di riga e colonna ripetuti, interruzioni di pagina, impostazioni della carta, margini, orientamento, centratura, scalatura e ordine delle pagine su Linux e macOS
- La geometria nativa esplicita dei caratteri supporta l'acquisizione con verifica di generazione senza cambiare il provider di geometria della cartella di lavoro
Corretto
- La modalità Adatta alla pagina sopravvive ai round trip della cartella di lavoro e ignora la scalatura percentuale non aggiornata, comprese le dimensioni di adattamento illimitate
- I caratteri dei titoli dei grafici supportati, l'aspetto delle linee e i riempimenti e bordi dei marcatori conservano i valori espliciti importati e impostati dall'autore, compreso il nero
- Il rich text preserva le sostituzioni esplicite a false e distingue l'aspetto effettivo dei run durante il riuso delle stringhe e il confronto semantico
Versione 2.384.114
Aggiunto
- Le applicazioni native Linux x64 e macOS ARM64 caricano, modificano, calcolano e salvano cartelle di lavoro Classic BIFF8, comprese le proprietà del documento supportate e la crittografia RC4
- L'archiviazione composta portabile supporta ambiti annidati, contenitori DIFAT concatenati di grandi dimensioni, metadati e proprietà esplicita dell'interfaccia di archiviazione nativa
Corretto
- Le cartelle di lavoro CryptoAPI a 128 bit dichiarano un provider crittografico compatibile e conservano leggibili le proprietà del documento in chiaro
- I timestamp nativi dei documenti usano l'epoca FILETIME corretta e preservano i valori UTC tra le piattaforme
- I nomi definiti Classic condividono un'identità Unicode canonica tra ricerca per ambito, formule e riapertura della cartella di lavoro
- I separatori di formato data con escape e i literal tra virgolette incorporati conservano il formato data completo selezionato
Versione 2.384.113
Aggiunto
- La cancellazione degli intervalli e l'incolla di testo Unicode supportano undo e redo atomici e delimitati, con preflight su protezione e struttura
- Le immagini locali tipizzate nella cella e i formati Checkbox supportano round trip XLSX, metadati di accessibilità e modifiche ai contenuti rispettose della proprietà
- I formati Checkbox sparsi di riga e colonna preservano precedenza, cancellazioni esplicite e celle assenti attraverso le modifiche e i round trip XLSX
- Il supporto esteso a XLSB include formule e cache, nomi, celle unite, collegamenti ipertestuali, riquadri, tabelle e filtri
- Le API native delle cartelle di lavoro su Linux x64 e macOS ARM64 caricano, modificano, calcolano e salvano file XLSX, XLSB e ODS supportati
- L'output pivot nativo supporta il raggruppamento numerico, per data e manuale, e tutte e undici le funzioni personalizzate di subtotale
Corretto
- I nomi con ambito usano normalizzazione Unicode e corrispondenza di maiuscole coerenti su Windows, Linux e macOS, senza scartare accenti o simboli
- Le formule di aggregazione moderne compilano in modo coerente con Free Pascal su Windows
- L'apertura di un'altra cartella di lavoro sostituisce gli stili con nome invece di conservare le definizioni di stile del file precedente
- Il contenuto moderno di immagini e controlli sopravvive all'undo degli intervalli e al salvataggio, senza materializzare celle assenti
- Le cache delle formule importate conservano i metadati originali dei valori, e i metadati ordinari vengono distinti dal contenuto delle immagini nella cella
- Il confronto semantico distingue contenuto locale di immagini, metadati di accessibilità e formati effettivi ereditati dei controlli, con un attraversamento sparso delimitato
Versione 2.384.112
Aggiunto
- Il test, l'estrazione e la sostituzione con espressioni regolari supportano testo UTF-16, capture, broadcasting delle matrici e valutazione delimitata su Windows, Linux x64 e macOS ARM64
- GROUPBY e PIVOTBY supportano callback di aggregazione con ambito, più misure, intestazioni, filtri, totali gerarchici, ordinamento e percentuali relative
Corretto
- Gli argomenti scalari di SUM conservano la coercizione di Boolean e testo numerico, mentre l'aggregazione su intervalli e matrici mantiene le sue regole di ignoramento esistenti
- I literal Boolean con ambito e le formule con callback di aggregazione sopravvivono all'archiviazione come future function e alla riapertura della cartella di lavoro
Versione 2.384.111
Aggiunto
- L'output pivot locale nativo supporta differenze e percentuali rispetto agli elementi di base, totali progressivi, percentuali di riga e di colonna, indice, percentuali rispetto al padre, percentuali cumulate e classifica densa
Corretto
- I calcoli di visualizzazione conservano la semantica nativa di totale, valori mancanti, divisore zero e membri ordinati, comprese le medie non additiche
- Le modalità di visualizzazione estese e le identità dei campi di base sopravvivono a salvataggio, riapertura e aggiornamento esplicito da Excel
Versione 2.384.110
Aggiunto
- L'output pivot locale nativo supporta layout compatto, tabellare e a struttura, etichette dei predecessori ripetute, posizione predefinita dei subtotali e più misure su ciascun asse dei dati
Corretto
- Le impostazioni di etichette ripetute sopravvivono agli alias di namespace importati e a salvataggio e riapertura, mentre l'output nativo distingue le intersezioni assenti dallo zero numerico
- I metadati di layout in staging mantengono coerenti le didascalie dei campi e dei dati quando Excel aggiorna esplicitamente i report generati
Versione 2.384.109
Aggiunto
- Il confronto tra cartelle di lavoro distingue valori tipizzati e interi grandi esatti, supporta tolleranze numeriche finite e il confronto opzionale di cache delle formule memorizzate, stili e geometria
- Il confronto semantico delimitato copre nomi, regole, tabelle, ordine di disegno, regioni con stile vuoto, run effettivi di rich text, modelli pivot locali, selezioni Slicer e stato Timeline supportati
Modificato
- Il confronto preserva celle impacchettate e assenti, risolve le identità delle risorse in valori effettivi e conserva il precedente risultato andato a buon fine su modelli non supportati o esaurimento delle risorse
Corretto
- La convalida di precisione dei parametri REAL tipizzati per i database compila con Delphi XE5, conservando i controlli su valore esatto, overflow e null
Versione 2.384.108
Aggiunto
- I round trip ODS conservano testo e autori delle note normali, filtri per valore rappresentabili e filtri personalizzati, protezione esplicita delle celle e protezione equivalente del foglio senza password
- I report di conversione conservano con precisione le perdite di metadati attraverso copie di fogli e salvataggi successivi, comprese espressioni di filtro non supportate e protezioni non equivalenti
Corretto
- I salvataggi su stream ODS annullati o falliti preservano byte, dimensione e posizione della destinazione attraverso uno staging delimitato su file temporanei
- I salvataggi ODS andati a buon fine che partono da una posizione di stream non nulla preservano il prefisso e gli offset corretti delle voci ZIP
Versione 2.384.107
Aggiunto
- L'ispezione delle formule memorizzate e le formule di aggregazione pivot consapevoli dei riferimenti funzionano nei contesti di valutazione Classic XLS, XLSX, in sola lettura e isolati, compresi i risultati di matrice disponibili e gli errori tipizzati
- Le query di aggregazione pivot rispettano i membri visibili modellati, i filtri di report e i subtotali supportati attraverso una valutazione delimitata della cache scollegata, senza aggiornare i dati di origine
Corretto
- Le cache pivot native dei file XLS di Excel conservano i valori numerici inline successivi e i metadati correnti di validità della cache, invece di restituire totali errati su valori ripetuti
- I riferimenti pivot includono l'area dei filtri di report modellata sopra la posizione della tabella principale
Versione 2.384.106
Aggiunto
- Le query automatiche ai database associano in ordine di posizione parametri literal tipizzati e parametri da celle memorizzate, preservando Unicode, testo vuoto, zero, Boolean, date e null senza sostituire valori nel testo SQL
- I parametri di cella leggono le cache delle formule disponibili e i valori memorizzati compatti, senza ricalcolo né materializzazione, con convalida delimitata dei metadati e applicazione transazionale dei risultati
Corretto
- I parametri data di Jet e ACE preservano i valori DATE, TIME e TIMESTAMP attraverso associazioni OLE DATE tipizzate, indipendentemente dalle proiezioni di timestamp dipendenti dalle impostazioni locali
Versione 2.384.105
Aggiunto
- I metadati delle formule leggono l'identità reale del file referenziato, i formati numerici di base supportati, i colori negativi, le parentesi per i positivi, l'allineamento del testo, lo stato di blocco, la larghezza di colonna e la modalità di calcolo nei contesti di valutazione XLS e XLSX
- L'ispezione scollegata degli stili di base e dell'impronta sparsa degli assi preserva celle memorizzate e impacchettate, valori predefiniti del foglio, colori del tema e la proprietà della cartella di lavoro presa in prestito
Modificato
- I metadati della larghezza di colonna restituiscono la larghezza in caratteri arrotondata e il flag di larghezza predefinita come matrice a due colonne; le informazioni non disponibili sull'ambiente dell'applicazione Excel e i formati non classificabili segnalano errori espliciti
Versione 2.384.104
Aggiunto
- La convalida all'importazione supporta tipi scalari rigorosi, limiti numerici e di data, sistemi di date Excel espliciti, unicità composita e relazioni tra colonne
- Le violazioni strutturate identificano foglio, cella, regola, colonna correlata e prima riga duplicata, mentre la convalida dei valori memorizzati preserva le celle impacchettate e segnala le cache delle formule non disponibili senza ricalcolo implicito
Versione 2.384.103
Aggiunto
- Le query automatiche su testo aggiornano i file a larghezza fissa usando gli inizi di campo dichiarati, le codifiche di caratteri supportate, la conversione tipizzata dei campi, i campi da saltare e la scelta tra intestazione o prima riga
- L'aggiornamento a larghezza fissa preserva le virgolette literal, taglia il riempimento dei campi e rifiuta confini non validi, input di dimensioni eccessive e annullamenti prima di applicare le modifiche al foglio di lavoro
Versione 2.384.102
Modificato
- Gli audit dei simboli delle formule Classic scandiscono più rapidamente, preservando le segnalazioni su funzioni e nomi, la deduplica senza distinzione tra maiuscole e minuscole, l'ambito e l'ordine delle segnalazioni
Corretto
- I salvataggi delle cartelle di lavoro su Windows, la patch diretta dei pacchetti, l'output PDF e l'output delle immagini di pagina possono sostituire atomicamente un file esistente trattenuto da metadati delete-sharing o handle di lettura sui filesystem supportati, conservando i controlli di blocco, la protezione readonly e il percorso legacy sui filesystem non supportati
Versione 2.384.101
Aggiunto
- Le matrici di selettori di area di INDEX fanno broadcasting con i selettori di riga e colonna sulle matrici calcolate e sulle unioni di riferimenti nello stesso foglio supportate, conservando orientamento, tipi dei valori selezionati ed errori individuali
- I nomi definiti e le associazioni LET conservano l'identità dei riferimenti multi-area supportati, e CHOOSE scalare conserva il riferimento selezionato per il calcolo a valle
Corretto
- INDEX accetta un argomento area esplicito pari a 1 per le sorgenti calcolate e distingue selettori di area non validi, mancanti, frazionari e fuori intervallo
- Le unioni tra fogli e le unioni di matrici calcolate vengono rifiutate secondo il loro contratto di errori supportato, invece di acquisire un'identità di riferimento errata
- I riferimenti non validi qualificati da fogli locali esistenti conservano i loro errori di riferimento attraverso formule dirette e nomi definiti, compresi i nomi di foglio tra virgolette, senza cambiare le stringhe di formula né interpretare qualificatori sconosciuti come fogli locali
Versione 2.384.100
Aggiunto
- Output portabile headless in PDF, SVG e PNG su Linux, con file di caratteri espliciti, shaping nativo del testo, risorse delimitate e pubblicazione esclusiva del file in staging
- Acquisizione in sola lettura su Windows di rettangoli Classic XLS e XLSX supportati in snapshot immutabili e trasferibili, compresi risultati delle formule memorizzate, Table con ambito e aspetto condizionale, dimensioni fisiche e celle unite complete
Corretto
- La convalida portabile dell'aspetto rifiuta in modo coerente le rappresentazioni enum non valide, su tutte le build compilate ottimizzate
Versione 2.384.99
Aggiunto
- Aggiornamento esplicito delle query automatiche per le connessioni Windows Text, ADO, ODBC e Web supportate, con registrazione di provider personalizzati e risultati delimitati
Corretto
- Le relazioni dei risultati delle query native e le identità delle colonne persistono attraverso i salvataggi e le riaperture supportati, basati su tabella o autonomi
- I tipi di connessione provider non validi vengono rifiutati prima dell'invio, senza alterare i risultati del foglio di lavoro
Versione 2.384.98
Aggiunto
- Creazione di Timeline pivot locali, connessioni a visualizzazioni condivise, filtraggio inclusivo per l'intera giornata e rimozione protetta che cancella la selezione o la preserva
- Aggiornamento esplicito nativo degli elementi senza dati dei Slicer nelle visualizzazioni connesse, con limiti di risorse cumulativi, annullamento e preservazione di selezione e identità degli elementi
Corretto
- La gestione nativa delle relazioni Timeline e della proprietà dei filtri preserva le selezioni importate supportate attraverso materializzazione, salvataggio e riapertura
- Le impostazioni di cross-filter dei Slicer pivot persistono attraverso la loro rappresentazione nativa tabellare
- Il rilevamento delle Timeline conserva la decodifica UTF-16 della cartella di lavoro e delle parti collegate durante il caricamento Open XML
Versione 2.384.97
Aggiunto
- Nomi definiti scalari e a matrice calcolata nei calcoli di aggregazione numerici e di conteggio supportati, con coercizione nativa, tracciamento delle dipendenze e limiti sulle risorse
Corretto
- L'aggregazione numerica propaga gli errori tipizzati dai riferimenti locali del foglio di lavoro, le medie vuote restituiscono errori di divisione per zero, e i riferimenti con nome falliti conservano i loro errori senza riprendere da capo l'attraversamento parziale
Versione 2.384.96
Aggiunto
- Argomenti a matrice calcolata per la concatenazione di testo e per i calcoli supportati di mediana, statistiche d'ordine, percentile, quartile, rango percentuale, moda multipla e covarianza della popolazione
Modificato
- La raccolta di matrici e riferimenti preserva la coercizione scalare nativa, gli errori tipizzati, l'abbinamento originale della covarianza e i limiti di risorse del calcolo
Corretto
- Il calcolo del punto mediano della mediana finita evita l'overflow tra segni concordi, e i percentili esclusivi accettano ranghi validi su estremi e insiemi singoli
Versione 2.384.95
Aggiunto
- Output nativo transazionale di report pivot compatti, con valori del foglio di lavoro sincronizzati, metadati di layout e proprietà delle celle persistente
- Disponibilità in sola lettura dei membri dei Slicer nelle visualizzazioni connesse, in presenza di altri filtri attivi
- Pulizia esplicita dei membri storici della cache pivot, con conservazione configurabile e rimappatura coordinata delle selezioni collegate
Modificato
- L'output pivot nativo supportato conserva i filtri manuali e le didascalie correnti, rifiutando prima della modifica layout non supportati o celle proprie già modificate
Versione 2.384.94
Aggiunto
- Visualizzazioni PivotTable con cache condivisa e creazione locale di Slicer pivot con limiti espliciti del foglio di lavoro
- Rimozione transazionale dei Slicer che oppure cancella la loro restrizione oppure preserva la selezione come normali filtri pivot, inclusa la politica per i membri futuri
- Ricostruzione della cache raggruppata per gruppi numerici fissi, date e discreti, con identità stabili dei membri
- Anteprime scollegate dei metadati di layout pivot compatti nativi, usando identità esatte di membri e aggregati
Corretto
- La riapertura di una cartella di lavoro popolata ora sostituisce le cache pivot tipizzate precedenti, e i collegamenti Slicer nativi impostati dall'autore restano riconosciuti da Excel
- La serializzazione della cache raggruppata preserva i domini nativi dichiarati dei membri e gli attributi ufficiali di totale complessivo e asse dei dati
Versione 2.384.93
Aggiunto
- Un reader e writer XLSB convalidati per valori tipizzati delle celle, stili di base, viste normali del foglio di lavoro e dimensioni
- Output binario esplicito dal salvataggio della cartella di lavoro su file e stream, con rilevamento automatico dell'input binario e report di fedeltà della conversione
Modificato
- La conversione XLSB prepara in staging pacchetti completi e rifiuta funzionalità o impostazioni di calcolo non supportate prima dell'output, compresi i salvataggi non controllati o con perdite consentite
Corretto
- I livelli di compressione ZIP configurati vengono applicati prima dell'inizializzazione del deflater
Versione 2.384.92
Aggiunto
- Aggiornamento transazionale della cache pivot e materializzazione sicura del foglio di lavoro per le sorgenti locali supportate basate su nomi definiti e tabelle
- Ricerca dei nomi definiti con ambito di foglio di lavoro e limiti della sorgente risolti da chi chiama per l'aggiornamento della cache
Corretto
- L'identità della sorgente locale e l'ambito dei nomi definiti sopravvivono a spostamenti e rinomine dei fogli di lavoro, compresi nomi tra virgolette e Unicode
- L'XML delle formule dei nomi definiti omette il segno uguale iniziale opzionale, richiesto solo dalla sintassi delle formule in memoria
- L'appartenenza ai totali della tabella segue il conteggio reale della riga dei totali, preservando tutte le righe di dati quando è presente solo l'hint UI della riga dei totali
Versione 2.384.91
Aggiunto
- Input a matrice calcolata e risultati tipizzati per trasposizione, prodotto tra matrici, determinanti e inversione di matrici
- Vettori di selettori ordinati, duplicati e indici negativi per la selezione di righe e colonne
- Vettori di ricerca calcolati e richieste di ricerca con valori di matrice, comprese slice complete di ricerca scalare e valori di fallback tipizzati
Modificato
- Lavoro su matrici, scansione delle ricerche, attraversamento dei selettori, copia e padding rispettano i limiti di passi di valutazione e di memoria per le matrici attraverso la composizione
Corretto
- Le cache testuali di formule e risultati di matrice si visualizzano correttamente in Excel prima del ricalcolo
- Le cache moderne di rich error includono la versione della cartella di lavoro e le dichiarazioni di funzionalità di calcolo richieste per la visualizzazione nativa dalla cache
- Le opzioni di ricerca e di appiattimento rifiutano i valori fuori intervallo prima della riduzione numerica, mentre le opzioni frazionarie seguono il troncamento nativo
- I risultati vuoti di take, drop e flatten conservano i loro errori di calcolo tipizzati
Versione 2.384.90
Aggiunto
- Le anteprime isolate dei risultati pivot conservano le selezioni Slicer condivise e i filtri di chi chiama, senza alterare la cache calcolata attiva
- La materializzazione sicura del foglio di lavoro per le sorgenti pivot locali supportate prepara i risultati in staging, rifiuta contenuti e strutture in conflitto e preserva oggetti cella, formattazione e commenti esistenti
- La proprietà esatta dei valori tipizzati sopravvive al salvataggio e alla riapertura XLSX, consentendo ridimensionamento e spostamento sicuri dei risultati e l'adozione esplicita dei valori pivot scalari esistenti
Corretto
- L'eliminazione dell'ultima visualizzazione Slicer pivot collegata viene rifiutata prima di rimuovere il suo disegno, la cache, il nome riservato o la selezione
- La cancellazione delle visualizzazioni Slicer convalida ogni cache interessata prima della modifica e ripulisce insieme le visualizzazioni consentite, i disegni e le cache non collegate
Versione 2.384.89
Aggiunto
- INDEX accetta selettori di riga e colonna con valori di matrice su matrici calcolate e intervalli del foglio di lavoro, comprese selezioni abbinate e prodotti incrociati riga-colonna
Corretto
- I risultati dei selettori preservano valori ed errori tipizzati, riempiono con #N/A le posizioni dei selettori mancanti e rispettano i limiti di memoria di calcolo e di passi di valutazione
- I selettori scalari frazionari che troncano a zero producono spill completi di riga o colonna, mentre i selettori negativi restituiscono #VALUE! prima del troncamento
- La selezione scalare di intervalli conserva il comportamento da riferimento, e gli spill dei selettori si riprendono dalle ostruzioni, si ridimensionano e ricalcolano dopo salvataggio e riapertura
Versione 2.384.88
Aggiunto
- Ispezione tipizzata dei membri, selezione dei membri condivisi e cancellazione per le cache Slicer pivot non OLAP importate supportate
- I calcoli PivotTable connessi intersecano le selezioni Slicer con restrizioni indipendenti su altri campi e con i filtri sui record forniti da chi chiama
Modificato
- Le modifiche di selezione convalidano ogni connessione e membro prima del commit, rifiutano maschere importate ambigue sullo stesso campo e preservano le rappresentazioni di cache non supportate
- Le modifiche alla raccolta di cache Slicer rispettano la protezione da scrittura della cartella di lavoro quando interessano calcoli PivotTable connessi
- L'eliminazione delle cache Slicer pivot non OLAP collegate viene rifiutata in modo atomico, per preservare uno stato coerente dei filtri a runtime e dopo il salvataggio
Corretto
- Le selezioni Slicer pivot modificate e le maschere dei membri delle visualizzazioni connesse si salvano insieme, conservando namespace importati ed estensioni sconosciute
- Le connessioni Slicer supportate seguono le identità dei fogli salvate e risolvono gli identificatori estesi di cache indipendentemente dagli identificatori ordinari delle cache della cartella di lavoro
- Le definizioni PivotTable importate restano associate alle loro visualizzazioni originali quando i fogli di lavoro vengono riordinati
Versione 2.384.87
Modificato
- L'aggiornamento locale della cache pivot rettangolare preserva le identità esistenti di campi e membri, aggiunge nuovi membri tipizzati e mantiene filtri e selezioni delle visualizzazioni condivise collegati ai loro membri originali dopo riordino, rimozione o reintroduzione della sorgente
- Le intestazioni della sorgente corrispondono ai campi del database per nome, consentendo il riordino delle colonne mentre i campi calcolati conservano le loro formule e ricevono nuovi segnaposto vuoti di record per le valutazioni successive
- L'aggiornamento convalida e prepara in staging la sorgente completa prima di aggiornare la cache, rifiutando senza modifiche parziali schemi, tipi di sorgente e raggruppamenti derivati non supportati e nuovi membri di gruppi discreti non mappati
Corretto
- I valori di errore pivot conservano tipi e codici negli elementi condivisi e nei record, attraverso salvataggio e riapertura XLSX
- I domini degli elementi condivisi aggiornati ricalcolano flag di tipo e limiti rappresentabili, e i metadati della cache XLSX descrivono con precisione valori misti, date, errori, valori Boolean e celle vuote
- L'aggiornamento della sorgente legge le celle assenti senza creare celle nel foglio di lavoro e confronta le intestazioni Unicode dei campi senza restringerne il testo
- Le visualizzazioni PivotTable aggiornate e salvate includono i nuovi membri della cache prima degli elementi di subtotale, conservando l'ordine esistente dei membri, i flag nascosti e le estensioni di layout importate
- Le selezioni di pagina restano collegate al membro corretto quando l'ordine delle visualizzazioni differisce dall'ordine della cache, i campi calcolati non spostano più i record salvati della sorgente, e i timestamp di aggiornamento usano la rappresentazione numerica XLSX
Versione 2.384.86
Aggiunto
- INDEX accetta matrici calcolate e costanti con selezione scalare, selezione dell'intera matrice ed estrazione di riga o colonna, conservando il comportamento da riferimento per le sorgenti a intervallo
- SORT e UNIQUE accettano matrici calcolate e costanti, consentendo la composizione diretta con FILTER, SEQUENCE, LET e altre espressioni che producono matrici
Modificato
- Le espressioni di matrici composte conservano il ridimensionamento automatico degli spill XLSX, il calcolo di matrici a intervallo fisso, gli errori tipizzati e il ricalcolo dopo salvataggio e riapertura
Corretto
- La selezione e l'ordinamento di matrici troncano le opzioni numeriche frazionarie, il testo non valido delle opzioni Boolean restituisce #VALUE!, e le operazioni su matrici calcolate rispettano i limiti di memoria e di passi di valutazione
Versione 2.384.85
Aggiunto
- Le matrici dinamiche XLSX ora calcolano in intervalli spill ridimensionati automaticamente, preservano le ostruzioni dell'utente con #SPILL!, supportano riferimenti spill e intersezione implicita esplicita, e recuperano dopo la riapertura la proprietà degli spill in cache
- Il preflight di conversione segnala le perdite note verso il formato di destinazione, e il salvataggio controllato può rifiutare quelle perdite prima di scrivere su un file o stream esistente
- L'output esplicito di modelli con macro preserva i progetti VBA esistenti nei pacchetti XLTM
- L'aggiornamento delle tabelle query fornito da chi chiama supporta risultati a schema fisso delimitati, intervalli di tabella e filtro sincronizzati, avanzamento, annullamento e rollback transazionale
Modificato
- Le bande di report ripetute clonano conversazioni complete in thread con identità rimappate e preservano il rollback quando una destinazione fallisce
- La convalida Boolean personalizzata di ODS, i limiti supportati con valore di formula, le sorgenti a elenco e i riferimenti qualificati vengono tradotti riposizionando la cella base; le definizioni non supportate e i riferimenti alle celle vengono omessi insieme
Corretto
- Le formule di matrice a intervallo fisso valutano elemento per elemento l'aritmetica sugli intervalli grezzi, MAP su più matrici accetta parametri lambda corrispondenti, e FILTER valuta matrici calcolate e maschere
- Gli errori moderni #SPILL! e #CALC! conservano i metadati tipizzati XLSX di rich value, preservando metadati importati non correlati e bucket di rich value
- Le formule XLSX appena scritte si salvano con separatori di argomenti canonici e prefissi di future function per l'interoperabilità con Excel; il salvataggio preserva l'espressione in memoria e la riapertura restituisce la sintassi canonica della formula
- Le serie dei grafici locali supportate aggiornano le cache numeriche, di testo, di data, di errore, bubble e di categorie gerarchiche dopo modifiche e ricalcolo
- La paginazione nativa renderizza le estensioni unite attraverso il loro ancoraggio originale, ritaglia i frammenti di pagina e sopprime bordi interni e linee della griglia
Versione 2.384.84
Modificato
- Gli esempi introduttivi per Delphi e C++Builder includono ora un pratico ordine di vendita con date, prezzi, sconti e totali calcolati tipizzati, e verificano le cartelle di lavoro XLS e XLSX salvate dopo la riapertura
- L'esempio della fattura collega ora una fattura stampabile a condizioni di pagamento modificabili e a un registro delle ricevute, calcolando sconti, imposte, pagamenti e saldo residuo
- L'esempio del layout del foglio di lavoro mostra ora creazione, enumerazione, rimozione e conservazione dopo la riapertura di intestazioni unite
- Nove altre famiglie di esempi API mirate sono state spostate in Miscellaneous, mantenendo il catalogo principale centrato su flussi di lavoro aziendali completi e strumenti interattivi
Rimosso
- Gli esempi minimi autonomi di celle unite e rich text sono stati consolidati negli esempi di layout del foglio di lavoro e di dashboard
Versione 2.384.83
Modificato
- Il catalogo delle demo ora separa le esperienze complete e i flussi di lavoro sostanziosi dalle ricette API mirate, nella cartella Miscellaneous di ciascuna piattaforma, con navigazione diretta e progetti pronti da compilare in entrambi i livelli
Rimosso
- Tre demo ridondanti su intervalli e layout dei fogli di lavoro sono state rimosse; i loro scenari completi restano disponibili in RangeOps e SheetLayout
Versione 2.384.82
Modificato
- Le gallerie di dashboard per Delphi e C++Builder si aprono direttamente su una cartella di lavoro popolata, con totali in tempo reale, grafici renderizzati, dettagli modificabili, scenari di prezzo ed esportazioni del risultato corrente
- Il tour delle API fornisce navigazione diretta tra dashboard, dati di vendita, anteprime dei grafici e ricette API, con un dataset ripetibile che copre tutti i dodici mesi
- Gli esempi portano con sé localmente le unità di scenario e le risorse manifest richieste, così ogni progetto può essere copiato senza una directory comune separata
Corretto
- Il tour delle API crea i dati di vendita prima di inserire le formule della dashboard, così la sua dimostrazione dal vivo si inizializza con successo
- I grafici della dimostrazione dal vivo aggiornano dopo il ricalcolo i loro valori in cache e le etichette, e le esportazioni ripetute della galleria C++Builder preservano le modifiche correnti senza accumulare fogli di report generati
Versione 2.384.81
Modificato
- Gli esempi di copia dei fogli di lavoro verificano contenuto indipendente, formati rimappati, formule e oggetti incorporati dopo la riapertura del loro output
- Gli esempi su sistema di date, ricerca, raggruppamento, formule di matrice e immagini verificano il loro comportamento specifico e segnalano l'output fallito con un codice di uscita diverso da zero
Corretto
- Gli intervalli AutoFilter dei file Classic XLS conservano i loro limiti completi di righe e colonne dopo salvataggio e riapertura, compresi i filtri copiati con criteri attivi
- Le gallerie di dashboard creano i fogli di lavoro referenziati prima di inserire le formule, calcolano i totali prima dell'esportazione e generano tutti i formati accessori richiesti anche quando un altro output fallisce
- La galleria di dashboard C++Builder produce i file accessori documentati in CSV, HTML e RTF
- I report compilati preservano la normale segnalazione dei fallimenti nelle build statiche Win64 classiche di C++Builder quando una destinazione non può essere sostituita
- Gli esempi API interattivi segnalano i fallimenti di esportazione in PDF, HTML e CSV invece di dichiarare che i file sono stati scritti
- La vetrina delle funzionalità completa la sua dimostrazione supportata di hash semantico e convalida le cartelle di lavoro salvate senza invocare snapshot di disegno moderni non supportati
Versione 2.384.80
Modificato
- Il catalogo degli esempi raggruppa i progetti per obiettivo di apprendimento e identifica punti di ingresso consigliati, lezioni specifiche per formato e nomi di progetto compatibili
- Gli esempi di layout dei fogli e di riposizionamento degli intervalli condividono scenari completi, preservando i nomi esistenti dei progetti e degli output
- Gli esempi su memoria, CSV avanzato, stampa, proprietà del documento, caselle di testo e protezione dei fogli mostrano flussi di lavoro completi, con verifica dei dati salvati e segnalazione esplicita dei fallimenti
Corretto
- Le caselle di testo XLSX riaperte conservano le loro relazioni di disegno quando vengono salvate di nuovo, così le annotazioni restano disponibili attraverso cicli ripetuti di salvataggio e riapertura, senza dichiarazioni duplicate di namespace XML
- Gli esempi di conversione in batch rispettano Skip existing prima di aprire le sorgenti o invocare i writer, e verificano i codici di successo della cartella di lavoro prima di dichiarare il completamento
- L'esempio della fattura include le condizioni di pagamento e il suo titolo completo nell'area stampabile
- L'esempio console di impostazione pagina parte con normali privilegi utente, invece di far scattare il rilevamento del programma di installazione di Windows
Versione 2.384.79
Corretto
- Il salvataggio dei file ODS con opzioni di esportazione conserva la destinazione esistente quando la serializzazione fallisce o il salvataggio viene annullato, e segnala in modo coerente gli errori di sostituzione della destinazione
- Le opzioni di esportazione ODS usano il normale ciclo di vita del salvataggio, inclusi politica di ricalcolo, annullamento dell'avanzamento, diagnostica e protezione da scrittura della cartella di lavoro, sia per l'output su file sia su stream
- I salvataggi di XLSX su stream rispettano la politica di ricalcolo configurata: in modalità manuale conservano i valori in cache e aggiornano le formule da ricalcolare quando richiesto
- Le notifiche di salvataggio completate di XLSX e ODS non trasformano più un output già confermato in un fallimento per annullamento
- Quando l'inizializzazione o la finalizzazione di una patch di fogli in streaming fallisce, vengono rilasciati gli handle del file sorgente, così chi chiama può ripulire le proprie sorgenti temporanee e riutilizzare il writer dopo un fallimento di inizializzazione
Versione 2.384.78
Corretto
- Le copie e i cloni di intervalli preservano la formattazione virtuale che li interseca e sostituiscono la formattazione overlay precedente solo all'interno della destinazione, incluse le copie sovrapposte e la formattazione tra cartelle di lavoro
- I reset espliciti della formattazione restano efficaci dopo il salvataggio e la riapertura di cartelle di lavoro con formattazione predefinita di righe o colonne
- Le celle XLSX che usano esplicitamente la formattazione predefinita della cartella di lavoro ne conservano caratteri, riempimenti e formati numerici personalizzati
Versione 2.384.77
Corretto
- Le destinazioni di formattazione condizionale e di convalida dei dati di righe e colonne intere seguono le modifiche di righe e colonne e la clonazione di intervalli quando sono interamente contenute nella sorgente, con una geometria della destinazione delimitata e gli ancoraggi relativi delle formule preservati
- Gli stili finiti di celle vuote ripetute importati da ODS mantengono l'intera estensione dell'intervallo usato, e le cartelle di lavoro appena create o azzerate riportano la versione corrente della libreria nelle proprietà del documento
- Le copie di celle di righe, colonne e fogli interi mantengono l'archiviazione sparsa, cancellano i contenuti sostituiti della destinazione senza espandere le coordinate vuote e preservano i dati sovrapposti della sorgente e la formattazione tra cartelle di lavoro
Versione 2.384.76
Corretto
- Le regole di formattazione condizionale e di convalida dei dati ora si applicano in modo coerente a destinazioni assolute, invertite, a righe intere, a colonne intere e separate da spazi, durante ricerca, eliminazione, calcolo condizionale e controlli di convalida
- Le aree di destinazione malformate o fuori griglia non corrispondono più a celle, mentre le aree valide della stessa regola restano attive; le statistiche condizionali sull'intera griglia mantengono l'archiviazione sparsa delle celle
- Le destinazioni di convalida ODS usano ancoraggi di cella validi per righe e colonne intere, e destinazioni condizionali sovrapposte equivalenti non creano più regole duplicate alla riapertura
Versione 2.384.75
Corretto
- Le regole di confronto di celle e le regole a espressione di ODS mantengono intatti i loro intervalli di destinazione a righe intere, colonne intere e ampi nell'output compatibile con Excel; i portatori di celle vuote ripetute tengono gli intervalli sparsi compatti e preservano le regole sovrapposte e i metadati del foglio
- La riapertura delle regioni vuote con stile ripetute di ODS mantiene compatta la loro formattazione di base, e le regole condizionali standard conservano precedenza e copertura sovrapposte all'interno delle regioni unite
Versione 2.384.74
Corretto
- La formattazione condizionale di ODS conserva le sostituzioni supportate di carattere, sfondo e formato numerico al salvataggio e alla riapertura, inclusi i reset espliciti; le regole con evidenziazioni o intervalli di destinazione diversi restano separate
- La formattazione condizionale di XLSX conserva i formati numerici incorporati e personalizzati, inclusi i formati usati solo da una regola condizionale; il salvataggio non rimuove più questi formati personalizzati né fa puntare le regole a un formato diverso
- Gli stili percentuali di ODS includono il simbolo di percentuale richiesto dalle altre applicazioni per fogli di calcolo e si riaprono senza duplicare quel simbolo
Versione 2.384.73
Corretto
- Copiare testo negli Appunti, leggere testo dagli Appunti e incollare testo o dati XML Spreadsheet non fallisce più in modo casuale su Windows 10 e 11. Dopo ogni modifica degli Appunti, Esplora risorse e il Clipboard User Service (cronologia degli Appunti) aprono gli Appunti per alcuni millisecondi per leggerli; le operazioni su testo provavano ad aprirli una sola volta e potevano fallire con "accesso negato" in quell'attimo
- Tutte le operazioni sugli Appunti ora usano la stessa politica del copia e incolla in formato BIFF8 (formato Excel): continuano a provare ad aprire gli Appunti per circa 500 ms. Quando un'altra applicazione li trattiene più a lungo, l'operazione fallisce comunque e il contenuto esistente degli Appunti resta invariato
Versione 2.384.72
Corretto
- All'apertura di un file ODS il formato numerico General viene letto correttamente. Excel e LibreOffice scrivono General come stile numerico senza il numero di cifre decimali, che veniva letto come due decimali fissi, così un valore come 1.5 veniva mostrato come 1.50; queste celle ora non hanno formato numerico, come nell'applicazione sorgente
- Il testo attorno a un numero General viene mantenuto, per esempio
General" kg"
Versione 2.384.71
Corretto
- I file ODS salvati da Excel o LibreOffice non riportano più un intervallo usato che copre l'intero foglio. Entrambi assegnano a ogni riga e colonna una dimensione fino alla riga 1048576 e alla colonna 16384; le righe vuote con altezza automatica ora mantengono l'altezza predefinita, e le dimensioni delle colonne che arrivano fino all'ultima colonna diventano la larghezza di colonna standard del foglio. Un file Excel di 10 righe, riaperto e salvato di nuovo, si riduce da circa 2,8 MB a pochi KB
- Le altezze di riga impostate a mano, e le altezze automatiche delle righe con contenuto (per esempio righe cresciute per contenere testo con a capo automatico), vengono comunque conservate
- Il salvataggio in ODS scrive la larghezza di colonna standard del foglio (
StandardWidth) nelle colonne che non hanno una larghezza propria; prima veniva perso, dato che ODS non ha una larghezza di colonna predefinita a livello di foglio
Versione 2.384.70
Corretto
- I file ODS salvati da Excel o LibreOffice si riaprono di nuovo in millisecondi. Entrambi estendono ogni riga fino alla colonna 16384 e aggiungono un blocco di riempimento fino alla riga 1048576; un file di 10 righe da Excel arrivava a impiegare più di 5 minuti per aprirsi, e uno da LibreOffice non finiva nemmeno lui
- Le celle di riempimento vuote identiche allo stile di cella Default del documento non vengono più trasformate in celle vuote formattate; un foglio Excel di 10 righe ne accumulava circa 180.000. Le celle vuote con riempimento, bordo, carattere, allineamento, formato numerico o protezione propri vengono comunque conservate
Versione 2.384.69
Corretto
- I formati condizionali salvati in ODS ora compaiono in Excel. Le regole su valore (uguale, compreso tra, maggiore di e così via) e le regole a formula vengono scritte anche come condizioni
style:mapstandard ODF sulle celle che coprono, l'unica forma che Excel legge; prima Excel apriva i file ODS di HotXLS senza nessuna di queste regole - LibreOffice ora importa le regole su valore ODS scritte da HotXLS con il loro vero operatore ed i loro limiti; prima trasformava ognuna di esse in "uguale a 0"
- All'apertura di un file ODS vengono letti i formati condizionali memorizzati come condizioni
style:map, come li scrivono Excel e altri produttori ODF. Quando un file contiene le stesse regole anche nella forma propria di LibreOffice, ogni regola viene letta una sola volta - All'apertura di un file ODS si legge la grafia di LibreOffice per le regole su valore (
=5,between(1,10),!="x"); i file di versioni precedenti di HotXLS continuano ad aprirsi come prima
Versione 2.384.68
Corretto
- Le formule che applicano un operatore a un intervallo di più celle o a una matrice inline, come
=SUM(A1:B1*{10,100}),=SUM((A1:B2>2)*1)o=MAX(A1:B2-1), vengono memorizzate nello stesso modo in cui le memorizza Excel 365, così Excel mostra lo stesso risultato di HotXLS: in XLSX come formule a matrice dinamica a cella singola, in XLS come formule di matrice a cella singola. Prima Excel le apriva con intersezione implicita (=SUM(@A1:B1*@{10,100})) e mostrava #VALUE! o un valore errato - Le formule di matrice XLS scrivono i loro riferimenti e le costanti di matrice in forma di matrice, come fa Excel; prima Excel valutava le formule di matrice scritte da HotXLS con intersezione implicita
- I file XLSX con formule a matrice dinamica (incluse quelle create con
SetDynamicArrayFormula) si aprono in Excel; prima Excel rifiutava l'intero file perché i metadati della matrice dinamica usavano un identificatore di estensione con maiuscole e minuscole diverse
Versione 2.384.67
Corretto
- Le comparazioni del testo seguono l'ordine di Excel in entrambi i motori: ignorano maiuscole e minuscole e usano l'ordinamento per parole delle impostazioni locali di sistema, quindi trattini e apostrofi servono solo da spareggio (
"a-b">"ab"è TRUE) e il resto della punteggiatura viene ordinato prima di numeri e lettere ("a~b">"ab"e"a_b">"ab"sono FALSE). Vale per gli operatori di confronto, i criteri>text/<textdi COUNTIF, SUMIF, della famiglia *IFS e delle funzioni di database, i confronti di matrici, le ricerche, le funzioni in stile SORT e l'ordinamento degli intervalli - VLOOKUP e HLOOKUP confrontano il testo senza distinguere maiuscole da minuscole, così
VLOOKUP("ABC",...)trova "abc", come in Excel
Versione 2.384.66
Corretto
- La formattazione condizionale basata su formule scritta in ODS ora viene riconosciuta da LibreOffice: la regola viene memorizzata come
formula-is(...)con la sua cella base, il modulo che LibreOffice stesso scrive. Prima, LibreOffice leggeva ogni regola di questo tipo come una semplice regola "valore della cella uguale a 0" - Le formule della formattazione condizionale scritte in ODS traducono matrici inline, unioni, riferimenti a colonne intere e a righe intere e mantengono i marcatori
$allo stesso modo delle formule di cella (COUNTIF($A:$A,A1)>1diventaCOUNTIF([.$A:.$A];[.A1])>1) - All'apertura di un file ODS viene letta la formattazione condizionale basata su formule scritta da LibreOffice (
formula-is), oltre a quella presente nei file di versioni precedenti di HotXLS
Versione 2.384.65
Corretto
- I riferimenti a colonne intere e a righe intere (
A:A,$A:$B,1:1,$1:$2) nelle formule scritte in ODS usano la forma di riferimento di OpenFormula ([.A:.A]). Prima Excel apriva queste celle come=SUM(A:(A))con #NAME?, o scartava la formula; i file ODS di HotXLS ora mostrano le stesse formule e gli stessi valori in Excel e LibreOffice
Versione 2.384.64
Corretto
- Le funzioni di database (DSUM, DCOUNT, DCOUNTA, DAVERAGE, DGET e le altre) trattano un criterio di testo senza operatore come "inizia con", come fa Excel:
abnell'intervallo dei criteri corrisponde a abc, ab e AB, e le wildcard continuano a funzionare (a?corrisponde a ogni voce di due o più caratteri che inizia con a).=abe<>abcontinuano a confrontare la voce per intero
Versione 2.384.63
Aggiunto
- Le formule possono contenere costanti di matrice inline come
{1,2;3,4}(colonne separate da virgole, righe da punti e virgola, con numeri, testo, TRUE / FALSE e valori di errore) e unioni di riferimenti come(A1:B2,D4), in entrambi i motori, XLS e XLSX; inserirle prima falliva con "invalid formula syntax" - Le costanti di matrice vengono valutate come matrici (
=SUM({1,2}*{3,4}),=ROWS({1,2,3;4,5,6}),=SUMPRODUCT(A1:A2,{1;10})), e le unioni funzionano in SUM, COUNT, AVERAGE, MIN, MAX e COUNTA, in AREAS, in ISREF e nell'argomento area_num di INDEX
Corretto
- I file XLS memorizzano le costanti di matrice in modo che Excel le legga: la costante veniva scritta come un riferimento, e Excel la mostrava come
=#N/A; le formule XLS che contengono costanti di matrice o unioni vengono anche rilette con il loro testo di formula
Versione 2.384.62
Corretto
- L'operatore di intersezione (uno spazio tra due riferimenti) restituisce le celle coperte da entrambi i riferimenti, come in Excel:
=SUM(A1:B2 B1:B2)dà 6 invece di 2, i riferimenti senza una cella in comune danno #NULL!, e un'intersezione può essere passata a funzioni che accettano riferimenti come ROWS, COLUMNS e INDEX. Vale per entrambi i motori, per le formule calcolate e per le formule memorizzate nelle celle - I file XLS mantengono le formule di intersezione utilizzabili in Excel: gli intervalli referenziati ora vengono scritti come riferimenti, così Excel non legge più
=SUM(A1:B2 B1:B2)come=SUM(@A1:B2 @B1:B2)mostrando #VALUE! - Un'intersezione usata come valore singolo con più di una cella in comune prende la cella che sta nella riga o nella colonna della formula, come qualsiasi riferimento a più celle
Versione 2.384.61
Corretto
- SUMPRODUCT accetta espressioni di matrice come
(B1:B2>0)*1,--(B1:B2>0),B1:B2*C1:C2e un solo argomento, sia nel motore XLS sia in quello XLSX; prima restituivano #N/A. Argomenti con forme diverse restituiscono #VALUE!, un errore dentro qualsiasi argomento viene restituito, e testo e valori logici contano 0, come in Excel - Le espressioni di operatore sugli intervalli dentro SUM, COUNT, AVERAGE, MIN, MAX e COUNTA vengono valutate elemento per elemento, come con le matrici dinamiche di Excel:
=SUM((B1:B2>0)*1)conta entrambe le righe invece di usare solo la prima cella - TRUE conta 1 nell'aritmetica:
=TRUE*1restituiva -1 - I confronti elemento per elemento trattano un elemento vuoto come 0, "" o FALSE per allinearsi all'altro lato, e confrontano i valori logici come valori logici; unire un valore logico con
&in una matrice dà TRUE / FALSE
Versione 2.384.60
Corretto
- La ricerca e sostituzione wildcard con corrispondenza dell'intera cella (
FindText,ReplaceText,FindTextIn,ReplaceTextInin entrambi i motori) corrisponde all'intera cella come fa Excel:a*bora trovaabcb, che prima veniva rifiutato perché la corrispondenza si fermava al primob - Nella ricerca e sostituzione wildcard,
~rende letterale il carattere che segue e un~finale viene ignorato, come in Excel:a~btrovaab, ea~~btrovaa~b
Versione 2.384.59
Corretto
- Gli orari di creazione e modifica dei documenti XLSX (
Created,Modified) e le custom property con valore data vengono letti correttamente quando il timestamp ha frazioni di secondo (2026-03-15T08:30:00.123Z) o un offset di fuso orario (+08:00,-05:00): l'ora viene convertita in ora locale invece di essere presa tal quale come ora locale - I timestamp solo data (
2026-07-01) vengono letti come quella data; quelli con orario ma senza fuso, che il formato W3CDTF non prevede, continuano a essere letti come ora locale
Versione 2.384.58
Corretto
- L'AutoFit XLSX attraverso
TXLSAutoFit(FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) misura ogni cella con il font con cui viene visualizzata; dal 2.384.46 prendeva il font successivo della lista font del workbook, così un'intestazione in grassetto poteva essere misurata con il font piccolo di un'altra cella e uscire troppo stretta - L'AutoFit usa anche il font che la cella eredita dallo stile di riga o di colonna
Versione 2.384.57
Corretto
- Con la "precisione come visualizzato" (
FullPrecision = False) il motore XLSX ora arrotonda come fanno Excel e il motore XLS: i formati percentuali mantengono due decimali in più (0.1234 mostrato come0.0%memorizza 0.123, non 0.1), i valori negativi e zero usano la loro sezione di formato, e le metà si arrotondano allontanandosi dallo zero (2.5 mostrato come0memorizza 3, non 2) - Entrambi i motori onorano le virgole di scala per migliaia con la "precisione come visualizzato": 12345.678 mostrato come
0.0,(12.3) memorizza 12300, come in Excel - Un risultato logico di formula in una cella con formato numerico non viene più trasformato in -1 dalla "precisione come visualizzato" del motore XLS
Versione 2.384.56
Corretto
- I file ODS scritti da HotXLS dichiarano i namespace dei prefissi delle formule, così LibreOffice valuta le formule invece di mostrare #VALUE! in ogni cella con formula
Versione 2.384.55
Corretto
- Le formule scritte in ODS mantengono il loro significato: le matrici inline usano il separatore di riga di OpenFormula (
{1,2;3,4}diventa{1;2|3;4}invece di una sola riga), un'unione di riferimenti come(A1,B2)diventa l'operatore~invece di due argomenti di funzione, e i riferimenti assoluti mantengono i loro marker$ - Rileggere dall'ODS una di queste unioni non aggiunge più un secondo paio di parentesi, così queste formule sopravvivono intatte a un round-trip da XLSX a ODS e ritorno a XLSX
Versione 2.384.54
Corretto
- I file XLS protetti da password salvati nel formato Excel 5.0/95 (offuscamento XOR) ora si aprono in Excel. La chiave memorizzata nel file viene derivata dalla password invece di essere casuale, e l'array di offuscamento usa la rotazione di bit che Excel si aspetta; prima Excel riportava password errata per ogni file di questo tipo, e corretta solo la chiave riportava il file come danneggiato
- I workbook con offuscamento XOR vengono letti con lo stesso array corretto, così i file la cui chiave corrisponde alla password vengono decifrati nel modo in cui Excel li cifra; i file XOR scritti da versioni precedenti di HotXLS continuano ad aprirsi
Versione 2.384.53
Corretto
- Confrontare una cella vuota con un valore logico tratta la vuota come FALSE sia nel motore XLS sia in quello XLSX, come fa Excel: con A1 vuota,
=A1=FALSEe=A1<TRUEora restituiscono TRUE e=A1=TRUErestituisce FALSE. Prima la vuota veniva confrontata come 0, che sta sotto qualsiasi valore logico
Versione 2.384.52
Corretto
- COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS e le funzioni di database abbinano i criteri di testo con le regole wildcard di Excel sia nel motore XLS sia in quello XLSX:
~*e~?corrispondono a un asterisco o a un punto interrogativo letterale, le parentesi quadre sono caratteri qualunque, e un criterio senza*né?è un semplice confronto senza distinzione tra maiuscole e minuscole. Prima un criterio come"[x]"veniva letto come un insieme di caratteri,"~*"non corrispondeva a un asterisco, e un pattern malformato non trovava corrispondenze in silenzio - I criteri
"<>text"contano numeri, valori logici e celle vuote come diversi, e un"<>"da solo conta ogni cella non vuota, come in Excel; il confronto testuale sotto<>ora non distingue tra maiuscole e minuscole - La corrispondenza wildcard di MATCH e XLOOKUP tratta
~come escape del carattere che segue e ignora un~finale, come fa Excel
Versione 2.384.51
Changed
- Gli snapshot di celle di sola lettura conservano i nomi dei fogli in storage UnicodeString condiviso; SheetName ora è una proprietà WideString leggibile e scrivibile con la stessa normale sintassi di lettura e assegnazione di prima, ma l'indirizzo raw del campo e il precedente layout di record non sono supportati; chi chiama deve ricompilare contro questa release
- L'output dei report su uno stream di destinazione vuoto salta lo snapshot di backup inutile, preservando il rollback del contenuto e della posizione della destinazione se l'output fallisce
- Gli audit approfonditi delle formule elaborano le cache numeriche in modo più efficiente preservando i valori Variant in cache, i risultati della valutazione e i rilievi riportati
Corretto
- Incollare dagli appunti in XLS e XLSX cattura insieme i dati BIFF8 e il testo di fallback sotto un unico lock degli appunti, così entrambi i formati arrivano dallo stesso stato degli appunti; il BIFF8 leggibile resta utilizzabile quando il testo che lo accompagna non è recuperabile, il testo non disponibile da solo non inserisce celle, e la politica di retry esistente all'apertura degli appunti non cambia
- La pubblicazione fallita del testo richiesto o del BIFF8 sugli appunti preserva il codice di errore Win32 originale attraverso la pulizia, così chi chiama può recuperare la diagnostica del fallimento subito dopo la chiamata
- Il lettore di testo degli appunti a tentativo singolo preserva i fallimenti nativi di recupero dati attraverso la pulizia degli appunti senza cambiare il suo comportamento di retry
Versione 2.384.50
Changed
- Gli audit dei simboli delle formule vanno più veloci sui workbook XLS sparsi, preservando i rilievi riportati e il loro ordine
Versione 2.384.49
Corretto
- Demo WorkbookAudit (Delphi e C++Builder):
AuditReport.jsonviene scritto senza BOM UTF-8 così i parser JSON rigorosi lo accettano; i fogli XLS riportano il loro intervallo AutoFilter; i nomi definiti XLSX che puntano a un altro workbook mostrano il file collegato invece del suo indice; le esecuzioni da riga di comando non sovrascrivono più le impostazioni salvate; una casella cartella vuota ricade sulla cartella del programma invece che sulla radice dell'unità; un salvataggio di esempio fallito viene registrato nel log invece di essere dato per creato - Demo ApiTour: se la ricostruzione del workbook vetrina fallisce, viene conservato quello precedente, così i pulsanti di esportazione non crashano più; i workbook vengono liberati quando la costruzione solleva un'eccezione; l'esportazione HTML registra i suoi errori nel log; il log riporta i cinque formati condizionali che vengono effettivamente creati
- Demo ExcelGraphics: un tipo immagine non supportato viene segnalato invece di salvare un foglio vuoto, e la finestra di apertura elenca solo i formati supportati
- Le demo OdsExport confrontano la dimensione del font nella verifica di round-trip e restituiscono un exit code diverso da zero quando la verifica o il salvataggio fallisce; la demo OdsImport per C++Builder controlla il risultato del salvataggio e non crea più celle vuote mentre riporta
- Le demo DataExport / ExportWithColoring restringono solo la prima colonna, come dicono i loro commenti, e le demo di esportazione C++Builder aprono la finestra di salvataggio nella cartella del programma
- I readme delle demo elencano le API e i file di output che le demo usano davvero
Versione 2.384.48
Corretto
- Le date di creazione e di ultimo salvataggio dei documenti ora vengono scritte in UTC, come richiedono i formati di file, e rilette come ora locale:
Created/ModifiedXLSX e le custom property di tipo data, eCreatedDate/LastSavedDateXLS. Prima l'ora locale veniva memorizzata come se fosse UTC, così Excel e Windows Explorer mostravano i timestamp sfasati dell'offset di fuso orario; i valori scritti e letti da HotXLS stesso non cambiano
Versione 2.384.47
Corretto
- File XLS con offuscamento XOR (la protezione con password dei workbook Excel 5.0/95,
EncryptionType = xletXor): la posizione della chiave usata per ogni record ora segue la specifica del formato di file, allo stesso modo in cui la leggono e la scrivono le altre applicazioni foglio di calcolo. Prima HotXLS leggeva solo i propri file XOR, e qualsiasi record la cui lunghezza non era un multiplo di 16 risultava spazzatura nelle altre applicazioni
Versione 2.384.46
Corretto
- L'AutoFit XLSX (
FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) misura ogni cella con il suo font, la sua dimensione, il grassetto e il corsivo invece di usare sempre Arial 10, così il testo in Calibri 11, le intestazioni in grassetto e i titoli grandi non escono più troppo stretti - L'AutoFit XLSX misura il testo così come viene visualizzato attraverso il formato numerico (date, valute, percentuali), non il valore grezzo memorizzato
- L'AutoFit XLSX mantiene le larghezze di colonna calcolate entro
MaxWidth; prima il margine della cella veniva aggiunto dopo aver applicato il limite - L'AutoFit XLSX dimensiona le righe delle celle con testo a capo nelle colonne senza larghezza esplicita in base alla larghezza predefinita del foglio; prima queste celle venivano trattate come una sola riga di testo e l'altezza della riga risultava troppo corta
Versione 2.384.45
Corretto
- Workbook XLS: i criteri di
ApplyAutoFiltercome'>=100'o'=2.5'ora vengono salvati come condizioni numeriche; venivano salvati come testo, che Excel confronta come testo, così il filtro nascondeva tutte le righe numeriche. Un valore senza operatore di confronto (come'North'o'100') resta salvato come testo, come Excel memorizza una voce scelta da un elenco Criteria1.DataTyperiporta 4 (numero) per questi criteri invece di 6 (testo);Criteria1.Valuesi rilegge comunque come 100
Versione 2.384.44
Corretto
INDIRECTcon un testo di riferimento in stile A1 leggeva la cella una riga più in basso e una colonna a destra (INDIRECT("D1")restituiva E2), sia nei workbook XLS che in quelli XLSX; il testo R1C1 era già corretto. Un riferimento oltre l'ultima riga o colonna ora restituisce#REF!
Versione 2.384.43
Corretto
- Workbook XLSX: le formule ora possono riferirsi all'intero foglio da 1.048.576 × 16.384. I riferimenti oltre la colonna IV o la riga 65.536 (
=XFD1,=A100000,=SUM(XFC1:XFD1),Data!C1048576) venivano rifiutati come nomi sconosciuti all'inserimento o restituivano un errore; ora vengono interpretati, si calcolano, si traslano con l'inserimento di righe e colonne e vengono salvati come scritti - Workbook XLSX: i riferimenti a intera colonna e a intera riga (
A:A,1:1) coprono tutto il foglio, cosìROWS(A:A)restituisce 1048576 eSUM(A:A)include i valori sotto la riga 65.536;ADDRESSrestituisce colonne a tre lettere come$XFD$1 - Workbook XLS: i riferimenti all'ultima riga e all'ultima colonna del foglio da 65.536 × 256 (
=A65536,=IV1) vengono accettati; venivano rifiutati come nomi sconosciuti
Versione 2.384.42
Corretto
- Le unità legacy
lxRows/lxCols(mantenute per compatibilità a livello di sorgente; le classi dei workbook non le usano): un indice di riga oltre 1.048.575 sollevaERangeErrorinvece di ripartire da capo alla riga 1, il record ROW non contrassegna più ogni cambio di livello di struttura come compresso, e scrivere COLINFO per una colonna senza impostazioni proprie usa i valori predefiniti invece di crashare
Versione 2.384.41
Corretto
- Build Lazarus / Free Pascal compilate in modalità stringhe ANSI: i file temporanei il cui percorso contiene caratteri fuori dalla codepage di sistema ora vengono rimossi durante la pulizia; prima i loro nomi venivano memorizzati con perdita di caratteri e i file restavano abbandonati nella cartella temp
Versione 2.384.40
Corretto
TlxCellMMU(il packed cell store) sollevaEInvalidOperationquando una cella viene scritta fuori ordine di riga dentro un blocco da 256 righe o sopra una cella esistente, edERangeErrorper una posizione negativa o una colonna oltre 65.534; prima una scrittura del genere corrompeva silenziosamente la riga accanto. Le scritture in blocco della libreria stessa rispettano già l'ordine di riga e non sono interessate
Versione 2.384.39
Changed
- Workbook XLSX: assegnare
TXLSXWorksheet.TabColorora imposta ancheTabColorIsAutoa False, così il tab color compare senza una seconda assegnazione, in linea con le proprietà dei colori di font, riempimento e bordo. Impostare in seguitoTabColorIsAutoa True rimuove comunque il tab color
Versione 2.384.38
Changed
- Workbook XLS:
TXLSWorksheet.AddPivotTableora trattaDestRoweDestColcome 1-based, comeCells[Row, Col], la documentazione e il motore XLSX;AddPivotTable('Data!A1:C9', 3, 1, ...)ancora la PivotTable su A3. Il codice che passava posizioni 0-based deve aggiungere 1, e un'ancora di 0 o fuori dal foglio ora restituiscenil - Workbook XLS: le posizioni su
TXLSPivotTable(daFirstRowaFirstDataCol) e l'intervallo sorgente suTXLSPivotCache(daSourceFirstRowaSourceLastCol) ora sono 1-based sia per le PivotTable nuove che per quelle aperte, così lo stesso codice legge le stesse celle in entrambi i motori e una PivotTable copiata tra loro conserva la sua posizione
Versione 2.384.37
Corretto
- Workbook XLSX: una PivotTable piazzata sotto la riga 65.535, o spinta lì dall'inserimento di righe, conserva la sua posizione reale; prima l'ancora veniva troncata a 16 bit e la PivotTable salvata finiva sulle righe sbagliate
- Le proprietà di posizione della PivotTable (
FirstRow,FirstCol,LastRow,LastCol,FirstHeaderRow,FirstDataRow,FirstDataCol) ora sonoIntegerinvece diWord - Workbook XLSX:
AddPivotTableeAddPivotTableCopyrestituiscononilquando l'ancora cade fuori dal foglio o il blocco copiato andrebbe oltre l'ultima riga o colonna, invece di scrivere una PivotTable che Excel rifiuta
Versione 2.384.36
Corretto
- Le demo C++Builder XlsTables, XlsCondFormat12, XlsCreateChart e InteractiveFeatures scrivono le loro colonne di testo come testo; passare un
const wchar_t*a unOleVariantsceglieva il costruttoreboole ogni intestazione ed etichetta usciva come TRUE - La demo DefinedNames elenca i nomi XLS a partire dall'indice 1 invece di crashare sull'indice 0, WorkbookAudit conta i riferimenti esterni nei nomi dei workbook XLS, e FileMonitor scrive
Monitored.xlsxinvece del.xlsxxsbagliato che faceva fallire ogni lettura dei nomi dei fogli - Le demo Pictures e OdsExport incorporano un PNG valido; il literal di byte veniva corrotto dalla conversione a stringa e le lunghezze dei chunk di Pictures erano sbagliate
- ApiTour valuta il suo passo
DEMOADDsul foglio API Tour invece che sul foglio Dashboard attivo, dove un argomento di testo poteva interrompere l'avvio; il tour classico C++Builder ora mostra il risultato del passo - FreezePanes, QuickStart e ApiTour congelano esattamente le loro righe e colonne di intestazione;
FreezePanesprende dei conteggi, non la prima cella scorrevole - I colori della formattazione condizionale in ApiTour, CondFormatGallery, OdsExport e WorkbookAudit vengono passati in BGR come l'API si aspetta, così le barre dati e le scale di colore mostrano i colori previsti; CondFormatGallery dà alle sue regole top-N, duplicati e sopra la media un'evidenziazione visibile
- MemoryDataExport e HtmlExport non riportano più le esportazioni CSV, HTML e RTF riuscite come fallimenti (questi writer restituiscono 0 al successo), e MemoryDataExport scrive tutti e tre i file anche se uno fallisce
- Le demo che salvano e poi riportano o aprono il file (QuickStart, ExcelGraphics, HotXLSInMemory, OrderCalc, PurchaseOrder e diverse demo console) controllano il risultato del salvataggio invece di annunciare il successo quando il file è bloccato
- ConversionWorkbench tratta qualunque risultato negativo del writer come un fallimento e rimuove prima il vecchio output, così un file obsoleto non nasconde più una conversione fallita; la versione C++Builder esporta ogni foglio in HTML
- InvoiceTemplate, OrderCalc e DataExport non dipendono più dal formato numerico e data di Windows: le formule delle tasse, i prezzi e le soglie sulle date funzionano anche su sistemi che usano la virgola come separatore decimale o la data con l'anno per primo
- Correzioni minori: i totali di QuickStart usano testo scuro sul loro riempimento chiaro, DateSystems mostra i seriali grezzi e una data valida con epoca 1904, CrossWorkbookCopy tiene le sue celle unite fuori dalla tabella, CrossWorkbookCopyXls usa un elenco separato da virgole e un vero azzurro chiaro, Hyperlinks mostra il testo di collegamento previsto, SheetProtection descrive e imposta correttamente le azioni consentite, OdsImport non crea più celle vuote durante la scansione, InteractiveFeatures salva un workbook senza payload VBA come .xlsx, WorkbookAudit riporta i file XLS crittografati e i loro progetti VBA, ChartTypes tiene i suoi grafici fuori dai dati, le demo di esportazione dati C++Builder trovano Demos.mdb dalla cartella di output dell'IDE, e FormulaFunctions controlla la cella riaperta e conta i fallimenti di riapertura
Versione 2.384.35
Corretto
- Assegnare un colore a un font XLSX, a un riempimento, a un bordo o a un run di rich text ora ha effetto da solo. Questi oggetti partono con il colore automatico, e un
Color,ForegroundColoroBackgroundColoresplicito veniva scartato in silenzio se non veniva azzerato anche il flagColorIsAuto/ForegroundIsAuto/BackgroundIsAutocorrispondente - Assegnare un colore RGB azzera anche una sorgente colore tema o indicizzata precedente, che altrimenti avrebbe la meglio su di esso; assegnare uno slot tema o indicizzato di 0 o più azzera il flag automatico
- I colori dei bordi incollati dagli appunti in un workbook XLSX, i colori dei bordi dei workbook classici esportati in XLSX e il colore font passato a
TXLSXComment.SetFontora vengono scritti invece di perdersi nel colore automatico
Versione 2.384.34
Corretto
- Gli elementi subtotale, totale generale e vuoto nell'elenco degli elementi di un campo pivot non vengono più letti come elementi dati; copiare una tale PivotTable scriveva un elemento che puntava all'indice di cache -1
- I campi pivot provenienti da file Excel conservano il loro subtotale predefinito: Excel omette
defaultSubtotalquando è attivo, e HotXLS trattava l'attributo mancante come disattivo - I campi dei pivot cache i cui shared items omettono
containsStringvengono letti come campi testo, seguendo il valore predefinito dello schema, invece che come campi misti
Versione 2.384.33
Corretto
- Le PivotTable scritte dal motore XLSX usano i valori di asse dello schema (
axisRow,axisCol,axisPage); le versioni precedenti scrivevanorowAxis/colAxis/pageAxis, che non sono OOXML validi. HotXLS continua a leggere i file che contengono i vecchi valori - I campi pivot usati nell'area dei valori vengono marcati con
dataField="1", e i campi senza elementi non ricevono più un elenco<items>vuoto che lo schema non consente - Gli elementi pivot nascosti e compressi conservano il loro stato quando una PivotTable viene copiata o ricostruita, e l'elenco degli elementi di ogni campo termina con gli elementi di subtotale che Excel si aspetta per le sue funzioni di subtotale
- I campi dei pivot cache portano un
numFmtIdnumerico invece del testoGeneral
Versione 2.384.32
Corretto
- L'importazione ODS converte correttamente le righe di array inline:
{1;2|3;4}diventa{1,2;3,4}invece di una formula che Excel non riesce a interpretare - L'importazione ODS converte l'operatore di unione dei riferimenti:
SUM([.A1:.B2]~[.C3])diventaSUM((A1:B2,C3))
Versione 2.384.31
Corretto
- L'importazione ODS legge le celle di tipo ora la cui durata contiene una parte di data, come
P0Y0M0DT12H30M15S, e le durate in settimane comeP1W, invece di ricadere sul testo mostrato - Una
Mprima del separatoreTdi una durata ODS è un mese, non un minuto; anni e mesi diversi da zero, che non hanno una lunghezza fissa, ora ricadono sul testo mostrato invece di trasformareP1Min un minuto
Versione 2.384.30
Corretto
TGWmfEmfReadchiude il metafile quando il file è troppo corto o danneggiato, invece di tenerlo bloccato fino all'uscita del processoTGWmfEmfReadtratta un WMF placeable il cui header indica zero unità per pollice come senza dimensioni invece di dividere per zeroTGWmfEmfReadmantiene dimensioni e limiti a 32 bit inBSEWMF, in linea con l'header dell'immagine che descrivono
Versione 2.384.29
Corretto
- Le immagini WMF ed EMF da 64 KB o più nei workbook XLS classici sopravvivono ad apertura e salvataggio; le loro dimensioni memorizzate e non compresse venivano troncate a 16 bit, così Excel non riusciva a decodificare l'immagine nel file salvato
- I limiti delle immagini metafile fuori dall'intervallo -32768..32767 vengono conservati invece di andare in overflow
Versione 2.384.28
Corretto
TXMLWriternon produce più XML malformato quando i valori di testo o di attributo contengono caratteri di controllo, surrogati non abbinati o U+FFFE / U+FFFF; i caratteri che XML 1.0 non può rappresentare vengono omessiTXMLWriterscrive un carriage return nel testo di un elemento come character reference, così il testo si rilegge invariato invece di vedere il CR trasformato in LFTXMLWritersolleva un errore quando lo stream di destinazione accetta meno byte di quanti ne vengono scritti, come con un disco pieno, invece di lasciare un file troncato in silenzio
Versione 2.384.27
Corretto
- Copiare un intervallo le cui formule puntano sopra o a sinistra del blocco copiato, come
=B4+1copiato da B5, ora incolla mantenendo il riferimento una riga più in alto; prima il riferimento restava inchiodato alla cella originale, e una formula poteva finire per puntare a se stessa - I dati degli appunti Excel che HotXLS pubblica mantengono le celle copiate nella loro posizione di foglio, così le applicazioni che li leggono vedono gli indirizzi originali
Versione 2.384.26
Corretto
- Gli helper stringa zlib (
ZCompressStr,ZDecompressStre le varianti in-place) ora processano l'intera stringa; con stringhe Unicode veniva compressa solo la prima metà del testo, così un round-trip perdeva dati
Versione 2.384.25
Corretto
- I collegamenti nei workbook classici il cui testo visualizzato è marcato senza il flag site vengono letti correttamente, e i collegamenti con un tipo di target insolito non fanno più fallire l'intera apertura né restituiscono un sub-address illeggibile
Versione 2.384.24
Corretto
- Un'eccezione sollevata dall'handler delle modifiche del file monitor non ferma più il monitor in silenzio; continua a osservare e riporta le modifiche successive
Versione 2.384.23
Corretto
- I colori del tema con una tinta sotto -1 in un file malformato vengono limitati al nero invece di produrre colori casuali durante l'esportazione o la stampa
Versione 2.384.22
Corretto
- Le connessioni dati create tramite l'API vengono salvate con l'attributo della versione di aggiornamento che il formato di file richiede
- Una connessione con nome o id mancante o ripetuto non fa più fallire l'apertura dell'intero workbook; la voce viene conservata com'era e risalvata invariata
Versione 2.384.21
Corretto
- Modificare il codice sorgente di un modulo VBA ora ha effetto in Excel: il progetto viene salvato in modo che Office compili la nuova sorgente invece di eseguire il codice compilato in cache della vecchia
- La sorgente dei moduli VBA ora viene salvata nella forma compressa definita dal formato; l'ultimo blocco di ogni modulo veniva memorizzato in un modo che Office considera danneggiato
- Uno stream directory VBA malformato non fa più bloccare l'apertura del workbook, e la voce di un modulo priva delle informazioni sul suo stream non lascia più un modulo vuoto nel progetto
Versione 2.384.20
Corretto
- I nomi definiti caricati da un workbook classico conservano i riferimenti traslati dopo l'inserimento o l'eliminazione di righe o colonne e il salvataggio del workbook; prima il file conteneva ancora il riferimento originale
Versione 2.384.19
Corretto
- Adattare solo le righe o solo le colonne di un foglio XLSX non azzera più, in assenza di una dimensione esplicita, la larghezza di ogni colonna misurata o l'altezza di ogni riga misurata
Versione 2.384.18
Corretto
- I criteri AutoFilter nei workbook classici vengono combinati nel modo in cui erano stati impostati: le condizioni AND venivano salvate come OR e viceversa, così Excel mostrava le righe sbagliate
- I criteri AutoFilter booleani vengono salvati come TRUE o FALSE; venivano memorizzati in una forma che Excel legge come valore di errore
Versione 2.384.17
Corretto
- Le date di creazione e di ultimo salvataggio dei workbook classici ora corrispondono a Excel; venivano scritte con un giorno di ritardo e lette con un giorno in anticipo
- La data di ultimo salvataggio viene memorizzata nella sua document property giusta; veniva salvata nello slot del numero di pagine, dove Excel e Windows non la mostravano come data
- Il tempo di modifica totale viene memorizzato come durata, così Excel e Windows mostrano il numero reale di minuti invece di circa 299 anni; i tempi scritti dalle versioni precedenti si leggono ancora correttamente
Versione 2.384.16
Corretto
- La regola dei valori univoci del controllo all'importazione ora confronta i valori delle celle; prima ogni valore dopo il primo in una colonna veniva riportato come duplicato
- Aggiungere una seconda regola per la stessa colonna sostituisce in modo pulito la prima; la regola vecchia veniva liberata ma ancora verificata, e liberare il checker sollevava un errore di puntatore non valido
- Il controllo di un foglio non crea più celle vuote per i vuoti che legge
- Mantenere solo le righe in violazione non scrive più oltre la sua tabella di righe quando una violazione sta sotto il used range, e la riga di intestazione viene inserita sopra i dati invece di sovrascrivere la prima violazione
Versione 2.384.15
Corretto
- Leggere una voce ZIP a pezzi piccoli non perde più gli ultimi byte della voce quando i dati compressi finiscono in mezzo a una sequenza ripetuta, cosa che poteva far fallire un XLSX valido con un errore sulla dimensione della voce
- Decomprimere dati che si espandono oltre 2 GB ora solleva un errore invece di crashare il processo a 64 bit
- Lo stream di decompressione restituisce tutti i dati rimanenti dopo l'esaurimento dell'input invece di fermarsi in anticipo
Versione 2.384.14
Corretto
- Le immagini PNG interlacciate con 1, 2 o 4 bit per pixel non scrivono più oltre il buffer dell'immagine, cosa che poteva crashare o corrompere i pixel vicini durante l'esportazione o la stampa di un workbook che le contiene
- Le immagini PNG interlacciate si decodificano correttamente quando un pass inizia con il filtro Average o Paeth
- Le immagini PNG in scala di grigi a 2 bit ora rendono i loro veri livelli di grigio, e la lettura di singoli pixel di immagini in scala di grigi e a palette a 2 bit restituisce i colori giusti
- Le immagini PNG i cui dati compressi hanno byte finali di troppo non bloccano più il decoder, e le immagini valide con un chunk di dati immagine grande non vengono più rifiutate con un errore CRC
- Le immagini con una profondità di bit non valida o una lunghezza di chunk oltre la fine del file vengono rifiutate in modo pulito invece di crashare o allocare gigabyte di memoria
- I text chunk salvati nelle immagini PNG non vengono più troncati o corrotti
Versione 2.384.13
Corretto
- I workbook classici crittografati con RC4 ora usano l'hash della password corretto per password di 28 caratteri o più, così si aprono in Excel; le password di 32 caratteri o più producevano prima file che neanche HotXLS riusciva ad aprire
- Le password RC4 fino a 255 caratteri vengono accettate all'apertura, e i file con password da 28 a 31 caratteri salvati dalle versioni precedenti si aprono ancora
- Un header RC4 CryptoAPI malformato con una lunghezza eccessiva viene riportato come file corrotto invece di sollevare un errore generico
Versione 2.384.12
Corretto
- I workbook con crittografia Agile che dichiarano SHA-256 ora si decrittano correttamente; i segmenti di dati venivano sempre decrittati con vettori di inizializzazione SHA-512, così il workbook non si apriva anche con la password giusta
- I file Agile i cui key data e password key encryptor usano algoritmi di hash diversi non vengono più riportati come con password errata
- Uno spin count sopra il limite di 10.000.000 del formato viene rifiutato subito invece di tenere la CPU occupata per ore
- Un password verifier troncato non legge più oltre il suo buffer, e la integrity key scritta da
SaveAsEncryptedAgileora ha la lunghezza che il formato richiede
Versione 2.384.11
Corretto
- I workbook salvati con
SaveAsEncryptedora si aprono in Excel. La chiave ECMA-376 Standard Encryption veniva derivata senza il suo passaggio finale e la dimensione del pacchetto veniva cifrata insieme ai dati, così Excel rifiutava la password; anche i workbook crittografati in quel modo da Excel 2007 ora si possono aprire - I workbook crittografati salvati dalle versioni precedenti di HotXLS si aprono ancora con la password giusta
- Un header di crittografia malformato con una lunghezza eccessiva non provoca più un access violation durante l'apertura
Versione 2.384.10
Corretto
- Copiare e incollare formule tra celle, e ordinare con le formule copiate lungo le righe, non trasla più i riferimenti assoluti:
$A$1resta dov'è,A$1si sposta solo nella sua colonna e$A1solo nella sua riga, come fa Excel - I nomi di funzione che assomigliano a indirizzi di cella, come
LOG10(, non vengono più traslati come riferimenti quando si incolla una formula, così la formula incollata non si trasforma più inLOG11(e#NAME? - I riferimenti qualificati con un nome di foglio, come
Sheet2!A1o'My Sheet'!B3, ora si traslano all'incollamento come quelli non qualificati - Incollare in un workbook classico testo che inizia con
=o con un apostrofo lo mantiene come testo; prima veniva trasformato in una formula o perdeva il suo primo carattere
Versione 2.384.9
Corretto
- I formati numerici per tempi trascorsi come
[h],[mm]e[ss].00ora vengono riconosciuti come formati ora invece di essere scambiati per nomi di colore; con la precisione come visualizzata disattivata (FullPrecisionimpostato aFalse), una durata formattata come[ss].00non viene più arrotondata come se fosse un normale numero a due decimali, cosa che prima riduceva a zero i valori di pochi secondi - I token dei minuti separati da ora o secondo tramite un carattere letterale, come in
h:mmemm:ss, ora vengono letti come minuti anziché come mesi quando si analizza un formato numerico
Versione 2.384.8
Corretto
- Copiare testo, HTML o dati di foglio di calcolo negli appunti di Windows ora usa un owner temporaneo valido, anche in programmi console e worker thread senza una finestra di applicazione; i dati copiati restano disponibili dopo che quell'owner viene distrutto
- Una pubblicazione negli appunti fallita ora rilascia ogni blocco di dati allocato che Windows non ha accettato, inclusi i blocchi di testo e HTML di accompagnamento quando fallisce la pubblicazione del foglio di calcolo
Versione 2.384.7
Corretto
- Compilare la libreria dai sorgenti con RAD Studio da XE5 a RAD Studio 12 Athens falliva dopo l'arrivo del supporto Free Pascal e della correzione del giorno bisestile di
DATE: quei compilatori elaborano comunque il controllo di versione Free Pascal mentre lo saltano, e rifiutano il cast numerico dietro il caso specialeDATE(1900,2,29). Entrambi i punti ora usano forme che ogni compilatore supportato accetta, così l'intera gamma RAD Studio torna a compilare
Versione 2.384.6
Corretto
- Copiare celle che contengono un commento in un workbook .xls classico, che sia all'interno dello stesso workbook, verso un altro workbook o spostando righe e colonne, conservava il testo del commento ma perdeva i suoi run di formattazione, così ogni copia mostrava l'intera nota in un solo font; i run ora viaggiano insieme al testo, e tra workbook diversi i loro font vengono aggiunti al workbook di destinazione
- Copiare un intero foglio con
Sheets.AddCopyin un workbook .xls classico perdeva i commenti sulle celle senza valore o formattazione; ora quelli vengono copiati anch'essi - I commenti nei workbook .xlsx venivano riaperti senza il nome del font, la barratura e il colore dei loro run di formattazione, e i run salvati non portavano mai sottolineato o apice/pedice; ora tutto questo sopravvive a un salvataggio e riapertura, inclusi i run copiati da un altro workbook con
CloneRangeTo
Versione 2.384.5
Corretto
- I run di formattazione nei commenti e nelle caselle di testo dei workbook .xls classici non perdono più i loro font al salvataggio. Un font usato solo da un tale run poteva essere eliminato dalla lista dei font salvata, il più delle volte quando HotXLS risalvava un workbook che aveva già salvato una volta, e il run mostrava allora in Excel il font predefinito o raccoglieva un font aggiunto nel frattempo; questi font ora vengono conservati, e i run vengono rinumerati insieme al resto della lista dei font
TextRuns.FontIndexsu commenti e caselle di testo segue la numerazione dei font del file, in cui l'indice 4 non viene mai usato e il quinto font è l'indice 5; la riservazione della palette per i colori font indicizzati ora legge questi indici allo stesso modo
Versione 2.384.4
Corretto
- La modifica della numerazione dei font in 2.384.1 era essa stessa il bug: i file .xls classici numerano i font come fa Excel ([MS-XLS] §2.5.129), dove l'indice 4 non viene mai usato e il quinto font è l'indice 5, ma 2.384.1 era passato a un semplice conteggio zero-based; i workbook salvati mostravano allora in Excel ogni font personalizzato uno slot in anticipo (il primo ricadeva sul font predefinito), e i workbook scritti da Excel si aprivano con ogni font personalizzato spostato di uno slot in ritardo. Salvataggio e apertura seguono di nuovo la numerazione di Excel, verificata contro workbook scritti e letti da Excel stesso
- Le celle rich text conservano il font di ogni run di formattazione attraverso apertura, salvataggio e copie di fogli tra workbook, inclusi i run il cui font non è usato direttamente da nessuna cella
- I workbook salvati da 2.384.1 a 2.384.3 con cinque o più font portano già la numerazione spostata, che né Excel né HotXLS riescono a distinguere da dati validi; rigenerateli dalla loro sorgente, oppure riapplicate i font coinvolti e salvate di nuovo
Versione 2.384.3
Corretto
- Le date dal 1900-01-01 al 1900-02-28 erano sfasate di un giorno rispetto a Excel in entrambi i motori di workbook, perché il calendario 1900 di Excel conta un 1900-02-29 fantasma; lettura e scrittura applicano ora la correzione documentata,
DATE(1900,2,29)risponde con 1900-02-28 invece di#VALUE!, e la tabella shared-string sopravvive ai caratteri NUL incorporati e alle codepage a doppio byte attraverso i confini di record senza perdere la sincronizzazione - I confronti si concatenano da sinistra a destra come li valuta Excel, quindi
=1<2<3ora viene letto come(1<2)<3e restituisce FALSE come Excel (TRUE prevale su qualsiasi numero in un confronto), mentre prima si raggruppava come1<(2<3)e restituiva TRUE; un operando vuoto vale nei confronti sia 0 sia una stringa vuota; i criteri con wildcard si applicano alla condizione di diverso (not equal) inCOUNTIFeSUMIFesattamente come facevano già per l'uguaglianza; l'intervallo di somma diSUMIFe dei suoi simili si ridimensiona dalla sua cella in alto a sinistra alla forma dell'intervallo dei criteri invece di troncarsi; eINDIRECTonora il suo secondo argomento (testo R1C1 assoluto) e rifiuta la spazzatura dopo il riferimento YEARFRACcon base 0 applica le correzioni NASD di fine febbraio cheDAYS360già implementava, così gli intervalli che toccano fine febbraio vengono contati correttamente- Un testo che legge "endstream" dentro una cella non può più troncare una pagina PDF durante la compressione degli stream, la patch del token del numero totale di pagine mantiene coerente la lunghezza dello stream quando la compressione viene saltata, gli offset degli oggetti oltre 32 bit falliscono chiaramente invece di corrompere la tabella delle cross-reference, e i JPEG in scala di grigi o CMYK vengono etichettati con il loro vero spazio colore invece di
/DeviceRGB - Un workbook il cui storage dei pivot cache è stato rimosso o troncato si apre con i cache coinvolti marcati come incompleti invece di far fallire l'intero caricamento, e li riscrive attraverso il layout inline legacy invece di dare errore
- Una tabella shared-string il cui numero di stringhe dichiarato supera quello che la catena di record consegna ora fa fallire l'apertura invece di risolvere silenziosamente le celle residue in stringhe vuote
Versione 2.384.2
Corretto
- La conversione di un workbook .xls classico in .xlsx scartava silenziosamente le celle unite che si trovavano a sinistra di un'unione precedente in una riga più in basso; la scansione non riusa più la sua variabile di used range per l'area di unione
- Un commento XML dentro una lista di estensioni del workbook veniva riemesso con i marcatori
<!--raddoppiati a ogni salvataggio, producendo un file che Excel deve riparare; i nodi di commento ora sopravvivono al round-trip byte per byte - I record di foglio di lavoro non riconosciuti catturati all'apertura di un .xls venivano eliminati da ogni salvataggio successivo nonostante fossero conservati per il replay, e perdevano memoria a ogni apertura; ora persistono e vengono riemessi verbatim attraverso lo standard record writer
- Nomi definiti più lunghi di 255 caratteri e commenti del nome più lunghi di 65535 caratteri corrompevano l'inquadratura del record NAME al salvataggio; entrambi vengono ora rifiutati all'origine
- Un salvataggio interrotto perdeva i buffer di record del workbook e del foglio di lavoro quando una mancata corrispondenza della crittografia si presentava a metà scrittura; il salvataggio ora libera i suoi buffer su ogni percorso di uscita
- Il writer di patching in place cancellava il file originale prima di rinominare il sostituto al suo posto, così un rename fallito distruggeva il workbook; lo scambio ora è una singola replace atomica che conserva entrambi i file in caso di fallimento
- I riferimenti di cella del direct reader impongono i limiti di 16384 colonne e 1048576 righe invece di accettare coordinate in overflow, gli attributi interi malformati ricadono sui valori predefiniti invece di interrompere l'intera lettura, e le date tra il 1900-01-01 e il 1900-02-28 vengono convertite in entrambe le direzioni tenendo conto del giorno bisestile fantasma di Excel
- I valori degli attributi che contengono tab, line feed o carriage return sopravvivono al round-trip invariati invece di collassare in spazi, e un'entità non terminata nel testo di un elemento viene ora rifiutata come nel ramo degli attributi
- Le copie verbatim di entry ZIP da 4 GiB o più, che il percorso di copia non può inquadrare correttamente, vengono ora rifiutate come fa lo streaming writer invece di produrre un archivio corrotto
- Il corpus runner scrive i suoi risultati in modo atomico così un'esecuzione interrotta non può distruggere le evidenze conservate, registra i timeout di build invece di crashare, e tollera righe di stage-trace malformate; il verificatore LibreOffice scrive le sue evidenze in modo atomico e la sonda di sostituzione dei file raccoglie di nuovo realmente la lista dei prodotti antivirus
Versione 2.384.1
Corretto
- Ogni font dal quinto in poi veniva scritto con un indice di record di uno oltre la fine della lista dei font, così Excel riparava il workbook e i font personalizzati tornavano come predefiniti; sia il salvataggio sia l'apertura usano ora l'indice zero-based documentato, così i font personalizzati sopravvivono a un round-trip e i file prodotti da Excel conservano i loro font quando vengono aperti in HotXLS
- Valutare
=0^-1o una base negativa con esponente frazionario crashava il ricalcolo con un'eccezione in virgola mobile invece di restituire#DIV/0!o#NUM! - Le regole a espressione della formattazione condizionale lette da un .xls esistente venivano riscritte come un record CF12 orfano sotto l'intestazione legacy semplice, che Excel scarta; ora conservano la forma di record legacy e la loro formattazione di evidenziazione
- L'operatore di intersezione dei riferimenti e l'intersezione implicita dei risultati ridimensionati di
OFFSETe dei risultati multi-cella diINDIRECTseguivano l'asse sbagliato o rifiutavano intervalli validi a riga singola o colonna singola, restituendo la cella sbagliata o#REF! - Il lettore di righe in streaming riportava ogni booleano di formula in cache come FALSE e ogni errore in cache come
#NULL!quando leggeva file .xls classici - I file .xls grandi il cui contenitore compound-file supera i 109 settori FAT residenti nell'header non potevano essere aperti dal lettore compound-file autosufficiente perché la catena di estensione DIFAT non veniva mai seguita
- Gli stili di tabella personalizzati ricaricavano i loro colori di riempimento e font con i canali rosso e blu scambiati, così uno stile salvato tornava nel colore sbagliato
- Immagini PNG malformate incorporate in un workbook potevano crashare il processo tramite una scrittura out-of-bounds durante l'incorporamento di immagini PDF o una scansione senza limiti dei text chunk; i PNG incorporati ora vengono verificati nelle dimensioni e i chunk malformati rifiutati
- Le regioni EMF a più rettangoli venivano renderizzate come il loro bounding box, le immagini EMF senza un'estensione esplicita del viewport venivano scalate male, e il testo in apice veniva renderizzato sotto la linea di base su output canvas, stampa e metafile
- Le regole BIFF della formattazione condizionale con priorità automatica portavano tutte priorità 1, cosa che Excel segnala come una riparazione; le priorità automatiche ora sono univoche per foglio come le loro controparti XLSX
- Lo stile di bordo
xlSlantDashDotveniva scritto comexlDashDotDotnell'output dei bordi .xls classici - Un record di intestazione troncato di un workbook crittografato sollevava un'eccezione attraverso
Openinvece di restituire il codice di errore della password, e diversi percorsi di errore perdevano memoria durante il parsing di file immagine o workbook malformati
Versione 2.384.0
Changed
- I pivot cache XLS classici vengono salvati nel modo in cui li salva Excel: i record di ogni cache vanno nel proprio storage stream, mentre l'identificatore dello stream, lo scope della cache e la definizione della sorgente (foglio di lavoro o intervallo denominato) vengono scritti una sola volta nei workbook globals; i cache prodotti da versioni precedenti di HotXLS conservano il loro precedente layout inline a meno che non venga abilitato l'upgrade opt-in dell'inquadratura
- I workbook protetti da password crittografano lo stream di ogni pivot cache come un proprio record stream che riparte fresco dall'inizio dello stream invece di continuare la posizione di crittografia dello stream del workbook
Corretto
- Una PivotTable poteva puntare alla cache sbagliata dopo il salvataggio di un workbook che mescolava cache letti da un file esistente con cache creati nel codice; il riferimento dalla vista alla cache ora segue l'ordine di salvataggio effettivo
- Ogni pacchetto HotXLS portava ancora la risorsa di versione 2.379.7, e ricompilare un pacchetto in C++Builder poteva rimuovere del tutto la risorsa di versione; tutti i pacchetti ora portano la versione corrente
Versione 2.383.4
Corretto
- Gli audit approfonditi delle formule ora mantengono i risultati modificati disponibili per le formule dipendenti anche quando le modifiche rientrano nella tolleranza di riporto, e un apply esplicito aggiorna questi risultati non riportati
- La tolleranza relativa viene ora rispettata per i risultati in cache in double precision in entrambi i motori di workbook, mentre i risultati invariati evitano un confronto duplicato
Versione 2.383.3
Corretto
- I salvataggi dei workbook su file ora preservano l'errore Windows nativo quando un output XLSX, XLTX o ODS completato non può sostituire la sua destinazione, incluso quando la pulizia o una callback di avanzamento cambia lo stato di errore del thread
Versione 2.383.2
Corretto
- Le copie ripetute di bande di report e di intervalli riusano le ricerche dei suffissi dei nomi definiti invece di riscansionare ogni copia precedente, preservando il primo nome disponibile, lo scope del foglio di lavoro e il riuso dei nomi liberati da modifiche successive
Versione 2.383.1
Corretto
- La ricostruzione delle dipendenze delle formule evita di scansionare ripetutamente le righe di formula precedenti, riducendo il costo delle grandi catene di calcolo preservando i riferimenti di output di array, le dipendenze tra fogli e l'ordine di lookup
Versione 2.383.0
Aggiunto
- I template Excel senza macro possono essere salvati come XLTX attraverso una selezione esplicita del formato di output, usando file o stream e output bufferizzato o in streaming
- L'output dei template preserva formule, nomi definiti, aree di stampa e metadati del foglio di lavoro lasciando invariato il comportamento predefinito di salvataggio dei workbook; i workbook che contengono VBA vengono rifiutati prima che la destinazione venga scritta
Versione 2.382.5
Corretto
- Le impostazioni fonetiche conservano l'indice del font predefinito richiesto, evitando che Excel rifiuti i workbook salvati quando l'indice è zero
- Le formule dinamiche dell'area di stampa e le unioni di intervalli qualificati per foglio sopravvivono al round-trip senza aggiungere un prefisso di foglio a una funzione né troncare i riferimenti all'interno di un'espressione
- Le parti del pacchetto generate e quelle preservate condividono dichiarazioni content-type univoche, e le custom property non vanno più in conflitto con gli identificatori opachi delle relazioni root
Versione 2.382.4
Corretto
- I riferimenti scalari a nomi definiti usano l'intersezione con la riga o la colonna corrente, mentre gli argomenti di intervallo conservano i loro intervalli completi, evitando falsi cicli di dipendenza nei modelli di prestito
- L'aritmetica delle formule che mescola interi e numeri in virgola mobile conserva la precisione in virgola mobile invece di essere troncata a quattro cifre decimali
- Il ricalcolo dà priorità ai precedenti di lookup disponibili prima di leggere le loro cache, evitando conteggi dei pagamenti non aggiornati e risultati di lookup simili
Versione 2.382.3
Corretto
- AGGREGATE gestisce gli errori non calcolati e l'aggregazione annidata con impostazioni di selezione indipendenti, preserva i calcoli di matrice e propaga i tipi di errore originali
- I salvataggi XLS classici preservano le cache delle formule esistenti fino al ricalcolo esplicito, comprese le radici di shared formula e array formula; le shared formula traducono i riferimenti relativi per le celle di destinazione
- I riferimenti strutturati supportano backslash e punti nei nomi di tabella, la sintassi annidata della riga corrente e i nomi di colonna con escape, senza cambiare testo simile all'interno delle stringhe di formula
- La formattazione condizionale XLSX conserva i colori RGB, i flag espliciti del font, gli stili di sottolineatura, i nomi, le dimensioni e gli schemi dei font
- I grafici non modificati preservano le loro definizioni originali e gli offset di ancoraggio diversi da zero, evitando modifiche a colori, posizioni e dimensioni delle serie
- L'impostazione dei margini di pagina non scrive più un orientamento pagina non specificato, e l'XLS classico preserva l'assenza dei margini di pagina importati invece di aggiungere valori predefiniti che cambiano la disposizione di stampa
Versione 2.382.2
Corretto
- I workbook ODS che contengono ampi intervalli ripetuti di righe vuote si aprono e si salvano senza espandere ogni altezza di riga e ogni stile di cella vuota ereditato in oggetti distinti
- L'output ODS preserva le altezze di riga esplicite e le righe formattate ripetute in forma compatta, incluse le override a singola riga e le altezze azzerate; gli intervalli di altezza riga sopravvivono anche alla copia del foglio di lavoro, all'inserimento e all'eliminazione di righe, all'affiancamento e all'esportazione XLSX
Versione 2.382.1
Corretto
- Aprire e salvare workbook XLSX con impostazioni di colonna full-width non comporta più scansioni ripetute dei metadati di colonna né copie dell'XML di colonna che continua a crescere, eliminando i timeout di round-trip nei workbook di date e nei modelli, pur conservando le impostazioni di colonna
- Le definizioni pivot ODS conservano le dichiarazioni di namespace XML ereditate, incluse le estensioni del producer, così l'XML salvato resta well formed
Versione 2.382.0
Corretto
- Il salvataggio di un workbook XLS classico ora tiene le celle
SUBTOTALannidate fuori dai risultati di subtotale che le racchiudono, preservando i totali in cache originali invece di conteggiare due volte le righe di gruppo - I grafici XLSX vengono caricati solo attraverso la relazione di drawing referenziata da ciascun foglio di lavoro, così una parte di drawing convenzionale non collegata non può più duplicare un grafico durante un round-trip
- Le definizioni delle tabelle data-pilot di OpenDocument sopravvivono al salvataggio ODS, compresi intervalli di origine, campi, intervalli di destinazione, pulsanti e attributi di estensione del producer
- Le opzioni 0-7 di
AGGREGATEora seguono le regole di selezione documentate per righe nascoste, errori eSUBTOTAL/AGGREGATEannidati, sia nella forma di calcolo per riferimento che in quella per matrice
Versione 2.381.0
Aggiunto
- Slicer per tabelle (Excel 2013+):
Worksheet.Slicers.Add(Table, ColumnName)crea una vista slicer per qualunque colonna di una tabella, dall'inizio alla fine — la cache slicer sottostante con nomeSlicer_<column>, il nome definito riservato#N/A, l'estensioneslicerListdel foglio di lavoro e un ancoraggio di drawing markup-compatibility con un avviso di fallback per le versioni precedenti di Excel vengono scritti tutti automaticamente, e la vista si può posizionare, dotare di didascalia e di stile tramiteCaption,ColumnCount,StartItem,StyleName,RowHeighteSetBounds - Modello round-trip degli slicer: viste e cache degli slicer vengono rilette in apertura (le cache condivise vengono riutilizzate tra più viste, eliminando l'ultima vista si elimina anche la sua cache), le parti e gli ancoraggi degli slicer non modificati vengono riprodotti byte per byte, e la cache di una tabella mantiene valido il binding alla tabella anche quando il salvataggio rinumera gli id delle tabelle
Corretto
- Le cache degli slicer scritte dalle versioni precedenti facevano riferimento all'id della tabella che il file portava con sé in apertura; quando il salvataggio rinumera gli id delle tabelle a livello di cartella di lavoro, il
tableIdnon più aggiornato poteva mandare Excel in riparazione. Ora il binding segue la tabella attraverso la rinumerazione
Versione 2.380.0
Aggiunto
- Grafici waterfall e treemap: i tipi di grafico estesi di Excel 2016 si possono creare, salvare e riaprire. Vengono serializzati come parti di extended chart dedicate, con il loro content type, il binding dei dati del foglio di lavoro e un ancoraggio di drawing markup-compatibility che porta un avviso di fallback per i reader più vecchi
- I grafici treemap supportano le categorie gerarchiche: ogni livello di categoria della serie viene scritto e rileto come livello a sé all'interno della dimensione delle categorie, conservando le etichette di foglie e livelli padre
Version 2.379.4
Fixed
- Un container XLS classico corrotto o ostile non corrompe più la memoria durante l'apertura. Il lettore di compound file copiava un intero settore nel mini stream anche quando solo una parte gli apparteneva, seguiva la tabella di allocazione mini oltre la fine di quello stream, accettava dimensioni di settore che il formato non definisce e dimensionava la sua tabella di allocazione da un conteggio non verificato. Le catene di settori e mini settori sono ora protette contro i cicli, e un nome di stream che riempie il suo campo senza terminatore viene delimitato
- Un record di stile che indica un indice di formato cella oltre la tabella dei formati non scrive più attraverso quell'indice. I contatori di riferimenti negli elenchi di formati condivisi e di chiavi controllavano solo il limite inferiore, quindi un indice a 12 bit proveniente dal file poteva spingersi oltre l'array
- Un header di file locale scritto con informazioni estese ZIP64 non supera più il suo buffer: la dimensione dichiarata dell'header ora tiene conto del campo extra di 28 byte che il writer aggiunge. Gli offset delle voci e le posizioni degli stream vengono tracciati come valori a 64 bit, una voce ZIP64 viene letta usando la lunghezza del suo campo extra anziché il sentinel, e una voce più grande di 4 GiB viene rifiutata invece di essere registrata come suo resto
- Il nome di una voce ZIP contenente un separatore Windows viene normalizzato. Una singola barra inversa non veniva mai convertita in barra avanti, così
..\..\namesuperava il controllo di directory traversal che suddivide sulle barre avanti - Un intervallo di maschera senza limite superiore, come
[a-, non legge più oltre la fine della maschera, e la costruzione di una maschera che inizia con un set di caratteri non perde più un set per maschera. Entrambi sono raggiungibili dai criteri di COUNTIF e SUMIF - La ricerca dell'intera cella con caratteri jolly ora richiede che il modello corrisponda all'intera cella, in accordo sia con il comportamento documentato sia con il confronto dell'intera cella senza caratteri jolly.
FindTextcon modelloabcin precedenza corrispondeva anche a una cella contenenteabcdef - La precisione come visualizzata non arrotonda più le celle il cui formato numerico non ha segnaposto di cifra. Una cella formattata
Generalper nome, come testo con@o con un formato di soli valori letterali veniva arrotondata a un numero intero - La tabella delle stringhe condivise non riporta più stringhe uniche in numero maggiore di quelle che scrive, non collega più i run di testo formattato di una stringa eliminata a qualunque stringa ne riutilizzi lo slot, e non emette più un record di continuazione contenente nient'altro che il suo byte di opzioni quando una stringa trabocca solo a causa della sua coda di formattazione
- L'importazione RTF smette di duplicare i caratteri non ASCII. Un escape
\\uNè seguito da caratteri di fallback scritti come\\'hh, che la logica di salto non riconosceva, quindi ciascuno veniva emesso anche come testo. I gruppi saltati ora rispettano i payload grezzi\binN, e una tabella più larga o più alta della griglia del foglio di lavoro si ferma al bordo invece di sollevare un'eccezione - Un riferimento numerico al di fuori dell'intervallo di caratteri definito da XML viene rifiutato in lettura invece di produrre un NUL incorporato, un surrogate isolato o un code point riavvolto. Tab, line feed e carriage return sopravvivono a un round-trip OPC come character reference invece di essere normalizzati in spazi
- L'importazione CSV conserva il valore
SkipRowstra i parsing; veniva decrementato sul posto, così la seconda lettura di un file attraverso lo stesso loader non saltava nulla - Una parte
xl/tables/viene ora riconosciuta quando si decide quali parti preservare; il confronto del prefisso era corto di un carattere e non corrispondeva mai
Version 2.379.3
Fixed
- L'importazione HTML decodifica i character reference decimali.
ée ogni altra forma&#NNN;producevano un carattere NUL invece del carattere stesso, perché la conversione scriveva il suo risultato e la sua posizione di errore nella stessa variabile e il codice di successo sovrascriveva il valore. I riferimenti esadecimali non erano interessati; entrambe le forme ora rifiutano i valori fuori dall'intervallo rappresentabile invece di emettere un carattere vagante - L'esportazione HTML conserva l'intero sotto-indirizzo di un collegamento ipertestuale interno quando costruisce la destinazione del suo ancoraggio. Un sotto-indirizzo più lungo di 255 caratteri veniva troncato, così l'ancoraggio generato non corrispondeva più al collegamento
Version 2.379.2
Fixed
- Una GIF inserita tramite
AddPictureoImages.AddFromFileprende ora la sua dimensione dal logical screen descriptor. Ogni GIF riportava in precedenza 100 per 100 punti indipendentemente dalle sue dimensioni reali, così l'immagine arrivava allungata o schiacciata - Il dimensionamento dei BMP legge l'header bitmap che il file dichiara davvero: un
BITMAPCOREHEADERcon le sue dimensioni a 16 bit viene compreso invece di essere letto come campi a 32 bit, e un BMP top-down con altezza negativa non produce più un'altezza dell'immagine negativa - Il dimensionamento dei JPEG accetta ogni marker di frame SOFn anziché solo baseline, sequenziale esteso e progressivo. I JPEG lossless, con codifica aritmetica e gerarchici ricadevano in precedenza nel predefinito 100 per 100
Version 2.379.1
Fixed
- Le immagini WMF vengono ora decodificate come scene vettoriali per l'output SVG, PDF e paginato. Dal 2.363.0 il decoder leggeva ogni record come una dimensione a 16 bit seguita dal codice di funzione, ma un record metafile inizia con una dimensione a 32 bit, così ogni WMF scritto da Windows o Office si fermava al suo primo record e l'immagine ricadeva in un placeholder raster. I record sono ora incorniciati secondo
[MS-WMF] §2.3, e i parametri di penna, pennello, font, testo, forme e poligoni vengono letti dai loro offset specificati META_STRETCHDIBsi aspettava il DIB prima del rettangolo di destinazione e assumeva un header bitmap di 40 byte; il rettangolo ora precede il DIB come specifica il formato,BITMAPV4HEADER/BITMAPV5HEADERe le tabelle dei colori vengono rispettate nel localizzare i bit dei pixel, e il record contribuisce con un comando immagine aXDest,YDestdi dimensioniDestWidthperDestHeightMETA_EXTTEXTOUTsalta il suo rettangolo opzionale quandoETO_OPAQUEoETO_CLIPPEDè impostato, così il testo disegnato con uno sfondo opaco non viene più letto dall'offset sbagliato- Le immagini metafile incorporate in un rendering di pagina leggono i loro pixel dall'offset dichiarato dall'header bitmap anziché da 40 byte fissi, così un'immagine
BITMAPV4HEADERoBITMAPV5HEADERnon viene più renderizzata come rumore di colore sfasato
Version 2.379.0
Added
TGridToXLSfa ora parte del package runtime Free Pascal, quindi unTDBGridLazarus si esporta come avviene sotto VCL: le colonne esplicite conservano i loro titoli, font, colori, allineamenti, larghezze e visibilità, una griglia senza colonne esplicite esporta una colonna per ogni campo del dataset, e il risultato viene salvato come XLS, XLSX, HTML o RTF attraverso la stessa chiamataSaveAs
Version 2.378.4
Fixed
- TEXTBEFORE e TEXTAFTER leggono il loro numero di argomenti da una variabile locale a cui non veniva mai assegnato un valore, quindi gli argomenti opzionali instance, match-mode, match-end e if-not-found potevano essere ignorati, oppure una chiamata valida veniva rifiutata con #VALUE!, a seconda del contenuto residuo dello stack; il conteggio ora proviene dalla chiamata stessa
- Un OFFSET ridimensionato, cioè con altezza o larghezza diversa da 1, valutato in una singola cella confrontava la cella della formula con un ancoraggio non ancora calcolato, così l'intersezione implicita poteva restituire #REF! o la cella sbagliata; l'ancoraggio spostato viene ora calcolato prima del test di intersezione
Version 2.378.3
Fixed
- Sotto Free Pascal, confrontare o sostituire una stringa vuota sollevava l'errore di espressione regolare, così un'espressione di report come
regexreplace(Code,"[^0-9]","")falliva conREPORT_EXPRESSION_INVALID_REGEXogni volta che il campo era vuoto. Il backend FPC ora risponde come faTRegExsotto Delphi: un modello che accetta una stringa vuota, come^$o.*, la confronta e produce il suo testo di sostituzione, mentre[0-9]+o\s+segnala nessuna corrispondenza
Version 2.378.0
Added
- HotXLS ora si compila con Free Pascal 3.2.2 e Lazarus/LCL su Windows, Win32 e Win64. Le API dei workbook XLS e XLSX, le formule, gli stili, il lettore e lo scrittore diretti, l'esportazione di dataset e gli helper di rendering funzionano tutti da codice FPC con la semantica delle stringhe Unicode di Delphi; l'argomento supporto per Free Pascal e Lazarus copre la configurazione dell'applicazione e le differenze dei backend
- Il package runtime
Lib/FPC/HotXLSLaz.lpksi apre in Lazarus oppure si compila per architettura dalla riga di comando tramitebuild-FPC-Lib.cmd, e le smoke suite Lazarus sottoTests/Lazaruscoprono round-trip dei workbook, compressione, crittografia, stream COM, grafica, lettura del testo, espressioni regolari, esportazione di dataset ed espressioni di report - Le build FPC usano backend Pascal in bundle per ZIP, stream di compressione e AES, così i file XLSX, compresi quelli protetti da password, non richiedono né una DLL zlib né i file oggetto precompilati che Delphi collega; il PNG conserva il suo canale alfa, il disegno e la riproduzione EMF passano attraverso i metafile Windows, e l'esportazione TIFF multipagina usa il runtime GDI+
Version 2.377.2
Added
- Un PivotCache XLS classico scritto da HotXLS trasporta ora i record rispetto ai quali il formato definisce l'header della cache. Lo stream id dell'header e il tipo di dati sorgente indicavano un SXStreamID e un SXVS che non venivano mai scritti, quindi nessun lettore poteva verificarli; entrambi i record sono ora scritti ed entrambi i campi dell'header sono presi dagli stessi valori, così sono coerenti per costruzione
- Anche i substream della cache trasportano SXDBEx, il record che segue l'header della cache in ogni cache che Excel scrive. Esso registra quando la cache è stata aggiornata l'ultima volta, così
TXLSPivotCache.RefreshedDateora sopravvive a un salvataggio e ricaricamento XLS classico come già avveniva in XLSX TXLSPivotCache.StreamIdeTXLSPivotCache.SourceDataTypeespongono i due valori, letti da un file che li dichiara e scritti nella coppia di record più l'header della cache. Una cache costruita daAddPivotTableriporta stream 0 e una sorgente a intervallo di foglio di lavoro
Changed
- La riscrittura opt-in del framing delle cache vecchie (
UpgradeLegacyPivotCacheFraming) produce ora anche questi tre record, così una cache aggiornata non è solo incorniciata correttamente ma completa allo stesso modo di quelle appena scritte. Una cache che trasportava già un SXStreamID, un SXVS o un SXDBEx conserva ciò che trasportava; una il cui SXDBEx dichiara record di formula che HotXLS non scrive resta sulla riproduzione grezza - La lettura non è influenzata: i file scritti prima di questa versione si caricano esattamente come prima, e i record di cache per i quali HotXLS non ha ancora un modello — tra cui il DConRef o il DConName che indicano un intervallo sorgente — continuano a essere preservati byte per byte attraverso un round-trip
Version 2.377.1
Added
- Un workbook può ora chiedere che i suoi vecchi substream di PivotCache vengano riscritti al salvataggio.
TXLSWorkbook.UpgradeLegacyPivotCacheFramingè disattivato per impostazione predefinita; quando attivato, un file XLS classico le cui cache erano state scritte da HotXLS prima della v2.377.0 viene salvato con quelle cache riemesse attraverso gli scrittori corretti SXDB / SXFDB / SXDBB, così la serie di correzioni dei pivot cache dalla v2.376.1 alla v2.376.7 raggiunge anche i file già esistenti e non solo il nuovo output - L'aggiornamento si applica solo dove è dimostrabile che non costa nulla. Una cache letta da un file viene riemessa solo quando l'intero suo substream conteneva record modellati da HotXLS e il suo framing è uno scritto male da HotXLS stesso; tutto il resto — ogni cache prodotta da Excel e ogni cache che trasporta un record come SXDBEx che HotXLS conserva solo come byte opachi — continua a riprodurre i propri byte con l'opt-in attivo.
TXLSPivotCache.CanUpgradeFramingriporta il verdetto per una singola cache, eRawFramingIsLegacy/RawModelIsCompleteriportano le due metà su cui poggia - Una cache aggiornata viene scritta dove si trovava il suo substream invece di essere spostata davanti alle altre, così una visualizzazione PivotTable continua a risolversi nella cache che indicava prima del salvataggio
Fixed
- Un PivotCache XLS classico letto da un file e poi passato allo scrittore con il suo flag di riproduzione grezza azzerato produceva due substream di cache, quello del modello e quello del file. Ora ne produce uno
Version 2.377.0
Added
- I fogli di lavoro XLS classici accettano oggetti grafico incorporati:
AddChartObjectsu un foglio di lavoro ancora una cornice di grafico sulla griglia del foglio (forma host-control di tipo OBJ 5 più il client anchor MSODRAWING), costruisce il substream del grafico attraverso il builder di grafici condiviso e viaggia nell'elenco dei record del foglio così che il layout del file corrisponda a ciò che il lettore ricollega all'apertura; un round-trip restituisce la cornice con il suo modello di grafico — serie, titolo e riferimenti a intervalli intatti
Fixed
- I record SeriesText decodificano il loro payload di stringa con la larghezza giusta: il lettore passava il conteggio dei caratteri dove era atteso un conteggio di byte, così le didascalie e le etichette di serie a 16 bit tornavano troncate a metà della loro lunghezza (un titolo di cinque caratteri letto come due)
Version 2.376.7
Fixed
- Le righe in cache dietro una PivotTable in un file XLS classico vengono scritte come [MS-XLS] 2.4.276 le descrive: un record per riga di dati in cache, contenente un indice per campo della cache, largo un singolo byte, o due byte per un campo con più di 255 valori distinti. HotXLS scriveva invece uno schema tutto suo, comprimendo ogni campo in appena abbastanza bit per contare i suoi valori e stipando molte righe in un solo record, che nessun altro programma poteva decodificare e che contraddiceva il flag più-di-255-valori che la definizione del campo già trasportava
- Excel può ora leggere i valori che un PivotCache di HotXLS contiene invece di doverli ricostruire dall'intervallo sorgente all'apertura del workbook, che è ciò su cui contava un workbook i cui dati sorgente erano stati nel frattempo spostati, modificati o eliminati
- Anche le righe in cache vengono lette di nuovo. In precedenza HotXLS ignorava del tutto il record, così una cache caricata da un file tornava con ogni riga che puntava al primo valore di ogni campo, e tutto ciò che era calcolato da quella cache seguiva quei valori sbagliati. Questo vale per un workbook scritto da Excel quanto per uno scritto da HotXLS
- Un campo della cache che non trasporta valori non contribuisce con nulla a una riga in cache, e un campo con più di 255 valori viene archiviato e letto alla dimensione più larga richiesta dal formato
- I workbook scritti da HotXLS v2.376.6 e precedenti si caricano ancora con le loro righe in cache intatte
Version 2.376.6
Fixed
- Il record di header del PivotCache in un file XLS classico è disposto come lo descrive [MS-XLS] 2.4.275. Il conteggio dei record è lì un campo a quattro byte e HotXLS lo scriveva in due byte, così ogni campo dietro di esso usciva una posizione in anticipo e il record risultava lungo quattro byte in più — il numero di campi della cache finiva dentro il conteggio dei record, la parola di flag atterrava sull'identificatore di stream, e il conteggio dei campi atterrava sulla lunghezza del nome di chi aveva aggiornato la cache per ultimo, promettendo un nome che il record era troppo corto per contenere
- I flag dell'header ora dicono che cosa è davvero la cache: se i suoi record sono archiviati nel file, se si aggiorna all'apertura del workbook, se l'aggiornamento è consentito e se la query di aggiornamento gira in background. Quelle quattro impostazioni comparivano già nell'output XLSX e ora viaggiano anche con un file XLS classico, insieme al nome di chi aveva aggiornato la cache per ultimo
- Il tipo di dati sorgente nell'header viene scritto come intervallo di foglio di lavoro invece di restare a un valore che il formato non definisce, e i conteggi dei campi e il conteggio dei record usati riportano i totali reali della cache
- Il nome di chi aggiorna viene tagliato ai 255 caratteri consentiti dal record, e una cache senza di esso non scrive alcun nome invece di un segnaposto vuoto
- I workbook scritti da HotXLS v2.376.5 e precedenti si caricano ancora e restituiscono ancora il loro conteggio di record della cache. Null'altro fu mai archiviato nel vecchio header — lo scrittore riempiva ogni campo dietro il conteggio dei record con valori fissi che non leggeva mai dalla cache — così i flag e il nome di chi aggiorna di un simile file tornano come predefiniti anziché come valori recuperati
Version 2.376.5
Fixed
- I nomi dei campi del PivotCache sopravvivono a un salvataggio e ricaricamento di un file XLS classico. La lunghezza del nome veniva letta dal punto sbagliato nella definizione del campo della cache — un indice che è sempre $FFFF — così il nome veniva scartato ogni volta e ogni campo della cache tornava senza nome
- Il record di definizione del campo della cache è disposto come lo descrive [MS-XLS] 2.4.283: grbit, ifdbParent, ifdbBase, citmUnq, csxoper, cisxoper, catm, e poi il nome del campo. HotXLS scriveva tre campi che il record non ha — un indice di elemento di sottotipo, un formato numerico e un secondo conteggio di elementi — e metteva $FFFF in indici che la specifica delimita dal numero di campi nella cache
- La parola di flag del record ora descrive il campo a cui appartiene: se il campo trasporta elementi di cache, se quegli elementi includono numeri, date o testo, se un minimo e un massimo possono essere calcolati, se qualche elemento non è una data e se ce ne sono più di 255. Il conteggio di elementi nel record ora corrisponde al numero di record di elementi di cache che lo seguono davvero
- I nomi dei campi della cache più lunghi dei 255 caratteri consentiti dal record vengono tagliati a 255 invece di essere scritti per intero alla loro lunghezza completa
- I workbook scritti da HotXLS v2.376.4 e precedenti si caricano ancora con i loro nomi di campi della cache intatti — il nome occupava la stessa posizione nel vecchio layout, quindi nulla di ciò che trasportava un nome lo perde
Version 2.376.4
Fixed
- Le cache PivotTable nei file XLS classici usano ora i numeri di record che [MS-XLS] loro assegna. Sette record nel substream della cache erano usciti sotto il numero di qualche altro record: la definizione del campo della cache come $00C8 (SXDBB), il tipo di campo come $00FB (SxFormat), gli indici di elemento per record come $00C5 (SXDI), e i valori di cache numerici, booleani, di errore, di data e vuoti come $00CE, $00CF, $00D0, $00CC e $00CB (SXDtr, SxNil, SXTbl, SXInt, SxErr). Ora sono SXFDB $00C7, SXFDBType $01BB, SXDBB $00C8, SXNum $00C9, SxBool $00CA, SxErr $00CB, SXDtr $00CE e SxNil $00CF, così Excel può leggere un pivot cache scritto da HotXLS e HotXLS può leggerne uno scritto da Excel
- I valori vuoti in un campo di pivot cache sopravvivono a un round-trip. Lo scrittore li emetteva sempre ma il lettore non aveva un caso per loro, così ogni vuoto veniva abbandonato al caricamento e ogni valore dopo di lui in quel campo scivolava di una posizione, lasciando i riferimenti di elemento della PivotTable puntati a valori sbagliati
- I workbook scritti da HotXLS v2.376.3 e precedenti continuano a caricarsi con i loro valori di cache intatti. Ogni substream di pivot cache viene letto con la numerazione con cui è stato scritto, decisa dal suo stesso record di definizione dei campi, e una cache letta da un file esistente viene riscritta con i numeri con cui è arrivata, così riaprire e salvare un vecchio workbook non ne cambia i byte in silenzio
Version 2.376.3
Fixed
- Le visualizzazioni PivotTable nei file XLS classici scrivono ora il loro record di estensione SXEx sotto il numero che [MS-XLS] gli assegna, $00F1; lo scrittore usava $00C6, che è SXDB, il record di header del pivot cache — Excel cercando l'estensione della vista non trovava nulla e un record che sosteneva di essere un header di cache sedeva in mezzo a un foglio di lavoro, così le proprietà della vista che SXEx trasporta andavano perse anche dopo la correzione del layout dei campi nella v2.376.1
- I workbook scritti da HotXLS v2.376.2 e precedenti si aprono ancora con le loro visualizzazioni PivotTable intatte: dentro un foglio di lavoro il vecchio $00C6 è ancora accettato come l'estensione della vista che era destinato a essere, e dentro un substream di pivot cache $00C6 è ancora letto come header della cache, così nulla di ciò che si caricava smette di caricarsi
Version 2.376.2
Fixed
- I fogli grafico 3-D XLS classici creati senza una scena esplicita trasportano ora i flag che la documentazione dice che devono trasportare: la parola di flag Chart3d predefinita impostava un bit riservato dal record invece del bit di scalatura automatica, così un grafico 3-D predefinito riaperto aveva il clustering attivo ma la scalatura automatica spenta e non corrispondeva mai alla scena che dichiarava di scrivere; i grafici che passano una scena 3-D esplicita non erano interessati e i loro byte sono invariati
Version 2.376.1
Fixed
- Le visualizzazioni PivotTable scrivono un record SXEx i cui campi stanno dove i lettori se li aspettano: il corpo fisso di 24 byte era spostato di due campi, così annunciava due record di formattazione che non seguivano mai e lasciava ogni lunghezza di stringa opzionale a zero, cosa che [MS-XLS] 2.4.282 vieta — quelle lunghezze devono essere o il marcatore di assenza o una lunghezza reale da 1 a 255; il corpo ora inizia al campo corretto e marca ogni stringa opzionale come assente, così Excel legge le proprietà della vista invece di un blocco confuso
- La lunghezza del record SXEx è derivata dai byte effettivamente scritti anziché da una costante hard-coded, così la dimensione dichiarata e il payload non possono più divergere come accadeva prima della v2.376.0
Version 2.376.0
Added
- I fogli grafico XLS classici possono collegarsi a una visualizzazione PivotTable: un nuovo overload di
AddChartSheetaccetta il nome della vista pivot sorgente e il flag nascondi-didascalie-dei-campi, che vengono scritti nei record SXViewLink ($0858, [MS-XLS] 2.4.316) e PivotChartBits ($0859, 2.4.196) nei chart globals prima di Units secondo l'ABNF del Chart Sheet Substream; l'ispezione dei grafici decodifica entrambi i record — incluse le codifiche di stringa a 8 bit e a 16 bit — nel modello tipizzato (marcatore pivot-chart, nome della vista sorgente, flag della didascalia) e nello snapshot semantico canonico, mentre i grafici senza i record di collegamento restano non marcati
Fixed
- Le visualizzazioni PivotTable scrivono un record SXEx di dimensione corretta: l'emettitore dichiarava un corpo di 24 byte ma scriveva 26 byte, così i due byte in eccesso atterravano dove ci si aspettava l'header del record successivo e ogni record dopo la vista (incluso l'EOF del foglio di lavoro e qualunque substream di foglio grafico che seguisse un foglio con pivot) veniva analizzato male, lasciando i workbook che combinano una PivotTable con un foglio grafico a riaprirsi con il grafico mancante
- I nomi visualizzati delle linee di tendenza nei grafici classici decodificano correttamente i payload di stringa a 8 bit; il precedente lettore wide-character restituiva un nome vuoto per i record che Excel scrive con caratteri a 8 bit
Version 2.375.0
Added
- Le serie di grafici XLS classici accettano riempimenti a colori del tema: lo stile per serie trasporta ora un indice di colore tema e una tinta che vengono scritti in un record GelFrame dopo l'AreaFormat secondo [MS-XLS] 2.4.131, usando l'estensione di colore tema OfficeArt (fillType, fillColor con l'RGB appiattito, fillColorExt scheme index, payload di tinta fillColorExtMod); quando non viene fornito un colore di riempimento esplicito, il colore appiattito si risolve dal tema Office predefinito con la tinta applicata, e l'ispezione dei grafici decodifica l'intento del tema nel modello tipizzato e nello snapshot semantico canonico
Fixed
- La build completa multi-versione della libreria è di nuovo verde per ogni compilatore supportato: cast e chiamate che solo i compilatori più recenti accettano (un cast di tipo Extended di valori Int64, un cast forzato a Double di un intero, un argomento procedurale nil nella risoluzione degli overload, l'accesso a TPicture.LoadFromStream dove è protected, e il tipo di token GdiplusStartup cambiato tra le generazioni VCL) sono stati resi sicuri per versione da XE5 fino alla versione corrente
Version 2.374.0
Added
- Le scene dei grafici 3-D sono configurabili e ispezionabili: un nuovo overload di
AddChartSheetaccetta rotazione, elevazione, distanza prospettica, altezza, profondità, gap e i flag cluster, autoscale, right-angle-scaling e two-dimensional-walls che vengono scritti nel record Chart3d secondo [MS-XLS] 2.4.46, e l'ispezione dei grafici decodifica la scena nel modello tipizzato (Scene3D) in lettura; i grafici che mantengono gli overload precedenti emettono ancora i predefiniti corrispondenti a Excel byte per byte
Version 2.373.0
Added
- Le serie di grafici XLS classici accettano override di stile per singola serie: colore e stile della linea, colore di riempimento, e forma, colori e dimensione del marker vengono scritti nel blocco di formattazione della serie con il flag automatico azzerato così Excel rispetta i valori forniti, e l'ispezione dei grafici decodifica i record LineFormat, AreaFormat e MarkerFormat nel modello tipizzato e nello snapshot semantico canonico
Version 2.372.0
Added
- Le serie di grafici XLS classici accettano riferimenti con nome ed esterni per categorie e valori: il testo che non è un semplice intervallo A1 viene compilato attraverso il motore di formule del workbook, e il record BRAI trasporta un elemento di area grafico contenente la formula compilata così che la passata di salvataggio la riserializzi con gli indici correnti dello store dei nomi definiti; l'ispezione dei grafici decompila il riferimento nel suo nome in lettura, mentre il testo non risolvibile conserva il BRAI segnaposto vuoto
Version 2.371.0
Added
- Le serie di grafici XLS classici possono legarsi al gruppo di assi secondario: marcare una serie in
AddChartSheetporta AXESUSED a due, emette un secondo blocco AxisParent con i propri assi di categoria e di valore più il proprio gruppo di grafico secondo l'ABNF del Chart Sheet Substream di [MS-XLS], e instrada la serie attraverso SerToCrt al secondo gruppo; l'ispezione dei grafici decodifica il legame serie-gruppo di grafico in lettura
Version 2.370.0
Added
- Le serie di grafici XLS classici accettano etichette dati:
AddChartSheetemette un record AttachedLabel con i flag show-value, show-percent, show-category-name, show-label-and-percent, show-bubble-size e show-series-name (layout dei bit [MS-XLS] 2.4.5), e l'ispezione dei grafici decodifica sia AttachedLabel sia il record di etichetta estesa DataLabExtContents incluso il suo separatore nel modello tipizzato e nello snapshot semantico canonico
Version 2.369.0
Added
- L'ispezione dei grafici XLS classici decodifica ora la struttura dei gruppi di assi: AXESUSED rivela il conteggio dichiarato dei gruppi di assi e ogni asse registra se appartiene al gruppo AxisParent primario o secondario, con l'indice del gruppo riportato nello snapshot semantico canonico
Version 2.368.0
Added
- Le linee di tendenza e le barre di errore dei grafici BIFF ora si decodificano nel modello di grafico tipizzato in lettura: ogni blocco Series rivela i suoi record Trendline con tipo di regressione, ordine o periodo, intercetta (inclusa quella automatica), flag di visualizzazione di equazione e R-squared, periodi di forecast e backcast e nome visualizzato, più i suoi record SerErrBar con lato della direzione, tipo di valore, terminali e magnitudine
- Lo snapshot semantico Classic mappa linee di tendenza e barre di errore nei contenitori canonici condivisi invece di sollevare un'eccezione, così i workbook con serie di grafici avanzate si confrontano in modo deterministico e le modifiche alle linee di tendenza alterano lo stream canonico
Version 2.367.0
Added
- RecalcAndVerifyEx esegue un audit di calcolo approfondito su entrambi i motori di workbook: ogni formula viene valutata una volta attraverso il grafo delle dipendenze in un overlay di risultati isolato così che le celle dipendenti leggano questa passata invece delle cache stantie, i fallimenti di valutazione si classificano in categorie tipizzate (argomenti non supportati, riferimenti circolari, riferimenti esterni negati o mancanti, tabelle dati saltate, cancellazione, fallimenti interni) con codici di risultato, e ogni fallimento porta uno stack di chiamate limitato
- L'audit rispetta un budget di problemi con un ordinamento stabile per foglio, riga, colonna e categoria, un sink di avanzamento che può cancellare ai confini dei nodi, tolleranze numeriche configurabili e un ApplyResults opt-in che conferma atomicamente i valori ricalcolati dopo una passata interamente riuscita su una struttura di workbook invariata; il predefinito resta rigorosamente in sola lettura
Changed
- I punti di ingresso esistenti RecalcAndVerify e CalculateAndVerify conservano la loro precedente semantica di confronto superficiale come shim di compatibilità condividendo i nuovi campi di report
Version 2.366.0
Changed
- L'esportazione PDF assembla ora i documenti attraverso uno scrittore di oggetti sequenziale che trasmette ogni oggetto direttamente alla destinazione, così non viene costruita alcuna copia intermedia dell'intero documento; i documenti non firmati fluiscono direttamente in stream forward-only, mentre i documenti firmati si assemblano in uno spool limitato che riceve le patch di ByteRange e dei contenuti della firma prima di un'unica copia in avanti
- I payload degli allegati PDF vengono copiati dai loro spool di provider al documento finale in blocchi fissi e referenziano la loro dimensione di stream attraverso un oggetto di lunghezza indiretto, mantenendo la memoria di picco piatta per allegati di diverse centinaia di megabyte
Fixed
- I digest delle firme vengono ora calcolati in modo incrementale sulle due zone di byte coperte del documento assemblato invece che attraverso una copia completa del documento, e i campi riservati della firma vengono localizzati dall'oggetto firma stesso anziché scansionando i byte assemblati
Version 2.365.0
Added
- Il testo delle firme PDF visibili viene ora renderizzato attraverso la pipeline di font Unicode incorporata con allineamento a sinistra, centrato o a destra, dimensione, colore e stile grassetto o corsivo configurabili, coprendo qualsiasi scrittura nei nomi dei firmatari, nei motivi e nelle località
- Le immagini di aspetto delle firme PDF accettano payload JPEG con dimensioni derivate dal marker del frame, mentre le immagini sovradimensionate o corrotte falliscono in modo deterministico prima che il digest venga calcolato
- Gli allegati PDF espongono una politica esplicita per i nomi duplicati, spoolano payload di provider grandi in un file temporaneo oltre una soglia di byte configurabile e rifiutano i nomi ostili al nodo foglia contenenti separatori di percorso o caratteri di controllo
Changed
- Gli alberi dei nomi degli allegati PDF sono ora ordinati per i byte dei loro nomi codificati secondo ISO 32000-1 7.9.6, e la raccolta degli allegati resta congelata mentre i provider girano così che le aggiunte rientranti falliscano atomicamente
Version 2.364.0
Added
- Le immagini EMF e WMF incorporate riproducono parentesi di percorso con passate di riempimento, tratto e tratto-e-riempimento combinati, rettangoli arrotondati, archi, corde, spicchi e archi angolari attraverso una conversione esatta arco-Bézier, riempimenti e cornici di regione risolti da rettangoli RGNDATA limitati, e penne estese geometriche o cosmetiche, tutto appiattito nella scena condivisa immutabile con gli stessi confini fail-closed contro record di clipping, escape e privati
Version 2.363.0
Added
- Le immagini EMF e WMF incorporate ora si riproducono attraverso una whitelist di record sicuri ampliata: stack di stato del device context con salvataggio e ripristino, mappatura di finestra e viewport con trasformazioni world, tabelle di oggetti penna e pennello inclusi gli stock objects, rettangoli, ellissi, catene di linee, poligoni, polilinee e curve di Bézier con stili di tratteggio, run di testo limitati con font, colori e allineamento, e immagini stretch-DIB ristrette ricodificate come PNG, mentre i record di stato sconosciuti falliscono ancora in modo chiuso nel fallback raster limitato invece di invocare la riproduzione di metafile della piattaforma
Fixed
- Le immagini WMF analizzano ora il layout standard dell'header di record a due byte, così i metafile placeable e standard reali si decodificano invece delle sole fixture sintetiche
Version 2.362.0
Added
- XLS classici e XLSX preservano ora lo stato di array delle formule di tabella, le modalità IME tipizzate della convalida dati, i suggerimenti di thread di calcolo, la presenza di force-full-calculation, i suggerimenti di refresh-all e i nomi in codice del workbook attraverso le loro rappresentazioni binarie o OOXML native
RecalcAndVerifyrestituisce un audit di calcolo strutturato e limitato con categorie stabili di cache, parsing, funzioni mancanti e nomi mancanti lasciando invariate le cache delle formule e la semantica del workbookTXLSPageImageExporter.ExportRangerenderizza un rettangolo di celle richiesto come un unico PNG o JPEG compatto senza carta, margini, intestazioni, piè di pagina, titoli di stampa o interruzioni di pagina, e gli eventi prima e dopo dell'immagine di pagina possono disegnare sulla canvas di codifica effettiva- Un esportatore dedicato di immagini di cella misura, renderizza e salva qualsiasi rettangolo di celle classico o XLSX come una singola immagine compatta con risoluzione, scala, formato e qualità JPEG configurabili; sfondi trasparenti o colorati, interruttori indipendenti per oggetti, linee della griglia e bordi delle celle, budget di pixel e byte, e salvataggio su file tramite una sostituzione atomica nella stessa cartella che lascia intatto un target esistente quando qualcosa fallisce
- Gli eventi di disegno dell'immagine di pagina ricevono ora un contesto completo in sola lettura che trasporta la canvas viva, i limiti in pixel, la dimensione della pagina in punti, la risoluzione, la scala, i numeri di pagina del documento e del foglio, il conteggio totale delle pagine e il foglio di lavoro di origine, si attivano esattamente una volta per frame renderizzato inclusi i frame TIFF multipagina, restano silenziosi durante la misurazione e non attivano mai il loro evento di chiusura né scrivono byte parziali dell'immagine quando l'evento principale solleva un'eccezione
TXLSSvgExportsupporta callback completi per pagina, namespace di ID documento e pagina deterministici e overlay di collegamenti ipertestuali sicuri opt-in con ScreenTips e attributi sicuri per le nuove finestre- Gli esportatori HTML classici e XLSX forniscono una vista foglio di calcolo opt-in con intestazioni semantiche di righe e colonne più un hot tracking in CSS puro limitato, ed entrambi rifiutano schemi URI attivi o locali conservando il testo visualizzato dei collegamenti
- Le firme PDF visibili possono usare immagini di aspetto PNG contained, covered o stretched, e gli allegati PDF possono ottenere il loro payload in modo lazy da un'interfaccia sorgente a chiamata singola durante ogni salvataggio
- Un decoder vettoriale EMF e WMF limitato valida header, dimensioni dei record, totali, posizionamento esatto dell'EOF e restrizioni degli escape, poi riproduce il suo sottoinsieme sicuro di comandi rettangolo attraverso i backend condivisi Canvas e SVG senza invocare la riproduzione di metafile del driver
Changed
- La scrittura XLSX diretta può generare attributi di array delle formule di tabella e modalità IME tipizzate della convalida dati, mentre le formule di tabella in array non vengono più espanse silenziosamente come formule scalari per riga
Version 2.361.99
Changed
- Il PDF con tag automatico emette ora le immagini XLSX informative come elementi di struttura Figure indipendenti con testo alternativo Unicode, identificatori di marked-content densi e locali alla pagina, voci esatte dell'albero padre e un elemento semantico per istanza visibile, mentre payload di immagini uguali continuano a condividere un unico XObject; le immagini senza testo alternativo restano artefatti decorativi
Version 2.361.98
Fixed
- Le formule di ricerca che scansionano un intervallo che copre la propria cella (VLOOKUP, HLOOKUP, LOOKUP, XLOOKUP, XMATCH, MATCH) non segnalano più falsi errori di riferimento circolare durante il ricalcolo, mentre le modifiche dentro l'intervallo scansionato continuano a innescare il ricalcolo della formula
- I criteri di testo AutoFilter più lunghi di 255 caratteri vengono limitati al massimo del record del filtro invece di scrivere una condizione autofilter corrotta
- Gli spazi consecutivi usati dall'operatore di intersezione implicita vengono preservati quando il testo della formula viene rigenerato invece di collassare in un singolo spazio
- I nomi definiti integrati oltre le aree di stampa, i titoli di stampa e i database di filtro (consolidate areas, extract, database, criteria, recorder, sheet titles e i marcatori della famiglia Auto_Open) vengono preservati alla lettera quando i workbook XLS classici vengono aperti e salvati
Version 2.361.97
Added
- I workbook XLS classici e XLSX espongono ora una politica condivisa di visualizzazione degli oggetti a tre stati con preservazione senza perdita della sorgente intoccata e mappatura tra formati; gli oggetti nascosti non espandono più l'output paginato o HTML né entrano nei percorsi di rendering di disegni e media
- Il visualizzatore di workbook renderizza segnaposto denominati leggeri per gli oggetti in modalità segnaposto, mentre gli esportatori PDF, SVG, bitmap, stampa e HTML conservano gli oggetti completi per impostazione predefinita e offrono un'opzione segnaposto esplicita che evita la decodifica delle immagini e la costruzione della scena del grafico
Version 2.361.96
Changed
- I layout manuali dei grafici preservano ora i campi sorgente indipendenti e i token non validi, risolvono le coordinate di fattore e di bordo con un posizionamento limitato che preserva le dimensioni, onorano le destinazioni del plot interne ed esterne più la sovrapposizione di titolo e legenda, convertono la geometria ODF supportata attraverso distanze assolute del grafico e renderizzano un posizionamento coerente di titolo, legenda, area di plot e titoli degli assi attraverso output di paginazione, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML
Version 2.361.95
Changed
- Le etichette dati dei grafici provenienti dalle celle XLSX appartengono ora a ogni serie con formule complete, cache indicizzate, visibilità esplicita condivisa e per punto, aggiornamento live del foglio di lavoro, fallback alla cache esterna, traduzione delle formule durante copie ed espansione dei report e una composizione coerente delle etichette con priorità al personalizzato attraverso output di paginazione, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML
Version 2.361.94
Changed
- Gli assi di categoria multi-livello dei grafici preservano ora cache gerarchiche sparse e intervalli bidimensionali live, costruiscono span che tengono conto del livello padre in tempo lineare, onorano i comportamenti a livello singolo, invertito, da destra a sinistra, nascosto e categoria vuota, e renderizzano etichette e separatori di gerarchia coerenti attraverso output di paginazione, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML; l'esportazione ODS usa l'intervallo della categoria foglia
Version 2.361.93
Changed
- Gli assi delle date ora inferiscono le unità di calendario una volta sola su tutte le serie visibili, scelgono intervalli automatici limitati dall'intervallo visibile, dalla larghezza dell'asse, dal font misurato delle etichette, dal formato numerico e dalla rotazione, e derivano etichette, coordinate, tacche e linee della griglia dalle raccolte condivise di tacche principali e secondarie attraverso output di paginazione, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML
Version 2.361.92
Changed
- Gli assi delle date XLSX preservano ora i formati numerici dell'asse e lo stato del collegamento alla sorgente, renderizzano etichette formattate con stile del testo e rotazione, e onorano la direzione invertita mantenendo una spaziatura continua per date duplicate e sparse attraverso output di paginazione, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML
Version 2.361.91
Changed
- Gli assi delle date XLSX preservano ora se le unità di calendario base, principali e secondarie e il rilevamento automatico delle categorie erano stati omessi o forniti esplicitamente, incluse unità di giorno esplicite e valori false; i record di estensione dell'asse data Classic espongono campi tipizzati, conservano i valori grezzi mascherati o non validi e possono mappare le impostazioni attive nel modello di asse XLSX
Version 2.361.90
Changed
- I grafici con asse delle date XLSX preservano ora la spaziatura continua delle date e renderizzano intervalli principali a giorno, mese o anno con il sistema di date 1900 o 1904 del workbook attraverso output paginato, SVG, PDF, immagine, anteprima, stampa, visualizzatore e HTML; l'output basato sulla paginazione onora anche le tacche secondarie e le linee della griglia configurate
Versione 2.361.89
Aggiunto
- Il viewer del workbook affianca ora gli sfondi validi dei fogli dietro le celle senza riempimento, mentre l'output di stampa, PDF, SVG, bitmap, metafile ed HTML Classic o XLSX espone un'opzione esplicita
ExportSheetBackgroundImages, disattivata per impostazione predefinita
Changed
- Il rendering paginato degli sfondi ora preserva tra le pagine la fase del mosaico relativa al foglio, decodifica ogni sfondo una sola volta per sessione di rendering, riusa un'unica risorsa PDF image XObject o SVG e salta i payload corrotti con una sola diagnostica
Versione 2.361.88
Aggiunto
- I fogli Classic espongono ora una scrittura tipizzata delle immagini di sfondo e una risorsa di sfondo condivisa di sola lettura, leggono e scrivono record di sfondo BIFF8 con spezzatura continua del payload, ricostruiscono i payload bitmap come dati BMP standard, preservano byte per byte i formati nativi non supportati e sconosciuti con diagnostiche, copiano in profondità la proprietà dello sfondo e convertono gli sfondi noti in entrambe le direzioni tra XLS e XLSX
Versione 2.361.87
Corretto
- Le copie dei fogli XLSX ora conservano i byte dell'immagine di sfondo e il tipo di media sia nelle copie nello stesso workbook sia in quelle tra workbook: le copie nello stesso workbook riusano il media sorgente preservato, quelle tra workbook riassegnano la proprietà del media prima del salvataggio
Versione 2.361.86
Aggiunto
- I workbook Classic XLS e XLSX espongono
AllowUnsafeFormulaCallbacks, mentre la valutazione contestuale fornisce l'opzione corrispondente per singola chiamata e lo stato strutturatoxlfeUnsafeFunctionDenied
Security
- I nomi di formula esterni e in stile macro pericolosi non raggiungono più per impostazione predefinita i gestori di funzioni utente locali al workbook, a livello di processo, del resolver o degli eventi, e il rifiuto avviene prima che gli argomenti della formula vengano valutati
Versione 2.361.85
Aggiunto
- I workbook Classic XLS e XLSX espongono
AuditFormulaSymbolsper diagnostiche strutturate su funzioni sconosciute, nomi sconosciuti e sintassi attraverso celle di formula e nomi definiti, con statistiche per operazione su formule uniche e hit della cache
Changed
- Le funzioni e i nomi sconosciuti preservati ora producono errori Excel
#NAME?sui percorsi di calcolo diretto, dipendente, contestuale, seriale e parallelo - Le modifiche alla registrazione delle funzioni utente a livello di workbook o di processo e le modifiche alle formule dei nomi definiti ora invalidano lo stato di calcolo interessato prima del ricalcolo successivo
Corretto
- Gli errori di formula letti da celle in cache dipendenti ora restano errori tipizzati invece di entrare nella conversione scalare e sollevare un'eccezione di conversione Variant
Version 2.361.84
Added
- L'assegnazione normale di formule XLS classiche e XLSX ora applica in modo atomico la politica di inserimento formule del workbook, così il rifiuto rigoroso lascia valore della cella, cache delle formule e dipendenze invariati mentre la modalità di preservazione memorizza funzioni e nomi sconosciuti
Changed
- L'XLS classico scrive le chiamate sconosciute preservate attraverso token di funzioni utente da add-in BIFF e conserva il testo dei nomi sconosciuti preservati attraverso salvataggio, riapertura e conversione XLS/XLSX
- La validazione dell'inserimento formule riconosce funzioni utente callback configurate, callable
LAMBDAeLET, lambda di nomi definiti, segnaposto di report, collegamenti esterni registrati e riferimenti strutturati validi senza invocare i gestori
Fixed
- La validazione XLSX ora preserva i riferimenti strutturati validi annidati e della riga corrente e non riutilizza più testo di colonna non aggiornato durante la scansione di un riferimento a tabella non risolto
Version 2.361.83
Changed
- L'assegnazione di valori XLS classiche e XLSX ora applica
FormulaEntryPolicy.EmptyStringModein modo coerente: il predefinito cancella le stringhe vuote esatte, la modalità di preservazione memorizza una stringa vuota costante, eNulloUnassignedcancella sempre la cella - Il caricamento nativo di XLS, XLSX e ODS più la conversione da XLS a XLSX e da XLSX a XLS ora preserva le stringhe vuote costanti affidabili senza confonderle con celle assenti o formule come
="" - Gli scrittori di righe o colonne di stringhe e Variant XLSX conservano i percorsi veloci dell'archiviazione compattata lasciando assenti le voci cancellate e memorizzando stringhe vuote esatte solo in modalità di preservazione
Version 2.361.82
Added
- I workbook XLS classici e XLSX espongono ora una
FormulaEntryPolicycondivisa, mentre entrambi i motori dei fogli di lavoro forniscono metodiValidateFormulaEntryprivi di mutazioni che restituiscono un problema, un'azione e un simbolo sconosciuto strutturati prima che un chiamante modifichi una cella
Changed
- La validazione dell'inserimento formule ora distingue l'input vuoto esatto dalle formule che restituiscono una stringa vuota, separa funzioni sconosciute, nomi sconosciuti, fallimenti di sintassi, destinazioni non valide e limitazioni del formato di destinazione, e riconosce le funzioni utente registrate senza invocare i loro gestori
Version 2.361.81
Changed
- Le inserzioni o eliminazioni di intere righe o colonne ora rimappano in modo coerente in XLS e XLSX le aree di selezione ordinate e l'area attiva di ogni riquadro, preservando l'ordine delle aree superstiti e creando una cella di confine di fallback quando tutte le aree vengono rimosse
- La normalizzazione delle selezioni di riquadri grandi, la modifica strutturale e le query ora usano costruttori lineari ammortizzati e crescita di capacità invece di ripetute copie complete di stringhe o array
Fixed
- L'XLS classico ora preserva byte per byte i corpi dei record
Selectionmalformati o contraddittori riportandoxlsDiagnosticSelectionRecordInvalidinvece di esporre uno stato tipizzato parzialmente attendibile
Version 2.361.80
Added
TXLSWorksheeteTXLSXWorksheetespongono ora i metodi corrispondentiTryGetWindowScrolleScrollWindowper leggere e cambiare la prima cella visibile di qualsiasi riquadro logico esistente con coordinate con base uno
Changed
- Lo stato di scorrimento dei quattro riquadri ora preserva in modo indipendente gli assi condivisi superiore, inferiore, sinistro e destro attraverso salvataggio, apertura e copia dei fogli di lavoro XLS e XLSX, mentre riquadri mancanti e coordinate non valide falliscono senza cambiare lo stato della vista
Version 2.361.79
Changed
- I fogli di lavoro XLS classici conservano gruppi di selezione ordinati indipendenti per ogni riquadro, aggregano record
SelectionBIFF consecutivi in un'unica sequenza logica, preservano i corpi dei record intatti e copiano lo stato di selezione completo insieme al foglio di lavoro - Le selezioni classiche con più di 1369 aree vengono scritte come blocchi consecutivi conformi agli standard mantenendo un unico indice aggregato dell'area attiva attraverso ogni blocco
Version 2.361.78
Added
TXLSWorksheeteTXLSXWorksheetespongono ora i metodi corrispondentiGetSelectedAreaseSelectAreasconsapevoli dei riquadri attraverso il tipo condivisoTXLSPanePosition
Changed
- Le query di selezione dei riquadri restituiscono snapshot ordinati di proprietà del chiamante con l'indice dell'area attiva, preservano le aree sovrapposte e lasciano lo stato del foglio di lavoro invariato quando un riquadro è assente o un aggiornamento non è valido
Version 2.361.77
Added
IXLSWorkbook,TXLSWorkbookeTXLSXWorkbookespongono ora i metodi corrispondentiSaveSemanticSnapshotin streaming eComputeSemanticHashSHA-256 incrementale con profili Content e SecurityComplete più opzioni esplicite per stato del visualizzatore, metadati volatili e cache delle formule
Changed
- Gli snapshot semantici attraversano modelli di workbook sparsi senza materializzare uno snapshot completo, e sia le operazioni di snapshot che quelle di hash mantengono un lease di lettura così le mutazioni pubbliche concorrenti falliscono prima di cambiare lo stato del workbook
Version 2.361.76
Added
- Il modello di grafici XLS classico tipizzato espone ora i titoli di grafico, asse delle categorie e asse dei valori
Fixed
- L'estrazione del modello di grafici XLS classico ora identifica serie, legende, gruppi di grafici, assi, stato 3-D, etichette delle serie e formule sorgente delle serie dai loro record BIFF definiti
- Le posizioni delle legende e la classificazione tra torta e anello vengono decodificate dai loro campi di record definiti
Version 2.361.75
Added
- Il FeatureShowcase Delphi e il XlsxFeatureGallery C++Builder ora dimostrano lo stesso flusso di contesto dati del report compilato, tabella in memoria, accesso rigoroso ai dati, proseguimento dopo errori recuperabili, foglio di lavoro di diagnostica, risultato di esecuzione immutabile e output su file atomico
- L'argomento sul reporting compilato ora fornisce esempi Delphi e C++Builder corrispondenti, inclusa l'acquisizione di smart interface C++Builder richiesta per le tabelle di report a interfaccia
Fixed
- La galleria di funzionalità XLSX di C++Builder collega il pacchetto statico HotXLS completo corrispondente alla versione così le dipendenze di implementazione dei report compilati si risolvono senza fragili direttive del linker per unità
Version 2.361.74
Changed
RunToStream,RunToFileeRunToEncryptedFilecondividono ora un'unica transazione di output che pubblica un workbook serializzato solo dopo il completamento della generazione e del salvataggio del report- L'output non crittografato dei report preserva il formato del workbook modello, incluso l'output ODS da modelli ODS, mentre l'output crittografato resta un contenitore Office crittografato
Fixed
- I fallimenti di serializzazione, sostituzione, cancellazione e i fallimenti fatali del report lasciano invariati gli stream, i file e i file crittografati di destinazione esistenti e rilasciano le sessioni di dati per esecuzione e l'archiviazione temporanea prima di restituire
Version 2.361.73
Added
- Le band dei report di intervalli con nome e tabelle Excel espongono ora
ErrorMode,StrictDataAccess,RuntimeLimitse snapshotLastResultimmutabili, con un distinto stato di bandCompletedWithErrors
Changed
WriteAndContinuepuò scrivere un errore di riga esplicitamente recuperabile come testo diagnostico letterale, registrare la riga del cursore sorgente e la cella di output effettiva, poi proseguire le destinazioni successive in quella riga e le righe di input successive- Le espressioni dei report consumano i valori tipizzati degli snapshot delle band prima di ripiegare sul testo, preservando valori numerici, di data, booleani e altri valori Variant supportati durante la valutazione delle espressioni
Fixed
- I fallimenti fatali di destinazione, cancellazione e limiti di runtime durante l'espansione delle band ripristinano le destinazioni sorgente e la struttura inserita, cancellano i flag diagnostici oggetto di rollback e pubblicano zero destinazioni applicate
Version 2.361.72
Added
TXLSReportRuntimeLimitslimita il numero di problemi di runtime conservati, la lunghezza dei messaggi ripuliti e la memoria dei problemi, mentreRuntimeDiagnosticsSheetNamescrive facoltativamente un foglio di lavoro di diagnostica strutturato- Gli errori di dati espliciti del resolver, le divisioni per zero nelle espressioni e le espressioni regolari non valide ora portano categorie di problemi e codici di errore stabili specifici del provider o dell'espressione
Changed
WriteAndContinuepreserva le destinazioni sicure fuori dalle celle e registra il loro problema, mentre i nomi dei fogli di lavoro e le formule dei nomi definiti restano destinazioni strutturali a interruzione immediata- I risultati di errore dati del resolver restano recuperabili quando serviti dalla cache degli alias per esecuzione, mentre le eccezioni lanciate da un resolver restano fatali
Security
- I messaggi di runtime si fermano alla prima riga, oscurano le forme comuni di credenziali e token bearer e applicano limiti di numero, lunghezza e memoria prima di modificare la destinazione in errore
Version 2.361.71
Added
- Le celle esatte
{{#usertable(alias, logicalName, providerKey, name=expression)}}si compilano in dichiarazioni di tabelle lazy tipizzate, eTXLSCompiledReportTemplate.UserTableCountriporta il numero di dichiarazioni separatamente dalle destinazioni di output TXLSReportTemplateChecker.DataContextesegue un preflight delle chiavi di provider registrate, dei limiti dei parametri tipizzati, delle dichiarazioni malformate e dei conflitti di alias senza distinzione tra maiuscole e minuscole, senza invocare un resolver
Changed
- I modelli di report e i generatori valutano i parametri di dichiarazione prima delle scritture sulle destinazioni, li registrano nella sessione di esecuzione corrente e risolvono una tabella dichiarata solo quando
dbvalueodbcountreferenzia per la prima volta il suo alias - Le dichiarazioni uguali ripetute condividono una singola richiesta, mentre le dichiarazioni che riusano un alias con nome logico, provider, ordine dei parametri, tipo o valore diversi falliscono riportando la posizione della cella dichiarante prima di qualsiasi modifica al workbook
Security
- Le dichiarazioni di tabelle utente accettano solo una chiave di provider registrata e parametri di dati tipizzati e limitati, rifiutano l'accesso alle tabelle dati dentro le espressioni dei parametri e non espongono alcun campo del modello per SQL, percorsi, URL o testo di comandi
Version 2.361.70
Added
TXLSReportDataRequesttrasporta aIXLSReportDataResolverun'identità di tabella nominata o utente, parametri tipizzati, posizione della sorgente e controllo di esecuzione in sola lettura, i cui stati di risultato espliciti distinguono gli esiti non gestito, risolto, non trovato ed errore datiTXLSReportDataContext.RegisterResolver,RemoveResolvereClearResolversgestiscono un registro di resolver nominati senza distinzione tra maiuscole e minuscole, mentreTXLSReportDataLimitslimita alias, resolver, parametri, nomi, messaggi e schemi delle tabelle restituite
Changed
- Ogni sessione di dati del report istantaneizza il registro dei resolver in una lookup O(1), mantiene l'autorità delle tabelle esplicite, adatta i provider di tabelle legacy, mette in cache le richieste tipizzate per alias e rifiuta un alias riusato il cui nome logico, provider, ordine dei parametri, tipo o valore differisce
- I runner e le band dei report ora passano un controllo di cancellazione thread-safe attraverso la risoluzione dei dati, si fermano dopo la cancellazione senza confermare la destinazione attiva e lasciano un alias cancellato disponibile per un nuovo tentativo pulito invece di mettere in cache la cancellazione come errore dati
Security
- Le richieste di dati tipizzate rifiutano caratteri di controllo, coordinate sorgente negative, nomi di parametri duplicati, array Variant o riferimenti non supportati, stringhe eccessive, alias o provider in numero eccessivo e schemi di tabelle sovradimensionati prima di qualsiasi lavoro non sicuro o modifica del workbook
Version 2.361.69
Added
TXLSXWorksheet.ClearRowHeighteClearColWidthrimuovono una singola sostituzione esplicita di dimensione senza disturbare gli altri metadati di riga o colonna
Changed
- Le destinazioni di report compilate terminano ora la valutazione delle espressioni prima di invocare la formattazione dinamica e confermano contenuto delle celle, formati numerici, altezze di riga e larghezze di colonna attraverso un unico confine di rollback
- I diagnostici di cella recuperabili derivano gli stili di font rosso e riempimento giallo dal font esistente della cella, preservano il resto dello stile della cella e riusano stili in pool tra font di base uguali ed esecuzioni ripetute del runner
Fixed
- Un fallimento di valutazione recuperabile non lascia più dietro formati numerici dinamici o dimensioni esplicite di righe e colonne, e le scritture di diagnostica ora cancellano qualsiasi formula prima di memorizzare il testo letterale
Version 2.361.68
Added
- I runner e i generatori di report compilati espongono
ErrorMode,StrictDataAccesse unLastResultimmutabile con stato terminale, numero di applicazioni, dettagli dei fallimenti e problemi di runtime ordinati WriteAndContinuepuò sostituire i fallimenti di dati di cella esplicitamente recuperabili con diagnostici letterali e concludersi comeCompletedWithErrors, mentre la modalità predefinitaStopresta compatibile
Changed
- L'accesso rigoroso ai dati segnala tabelle mancanti, accesso casuale non disponibile, righe mancanti e campi mancanti tramite codici di errore stabili quando non esiste un fallback esplicito del modello
- Solo i fallimenti di dati esplicitamente marcati come recuperabili possono proseguire; i fallimenti strutturali, di callback, di cancellazione, di risorse, di sicurezza, di serializzazione e gli altri fallimenti fatali fermano comunque il report
Fixed
- I fallimenti di output su file o file crittografato ora pubblicano un risultato di esecuzione fallita invece di trattenere un risultato completato dalla fase precedente di generazione del workbook
Version 2.361.67
Changed
- I modelli, runner, band di range e band di tabelle Excel compilati risolvono ora
dbvalueedbcountattraverso un'unica sessione di dati isolata per esecuzione logica - Gli alias ripetuti vengono caricati una sola volta all'interno di un'esecuzione, le esecuzioni successive ricaricano i dati del provider, le esecuzioni concorrenti mantengono cache indipendenti ed entrambe le passate di
PreprocessAndRuncondividono uno snapshot coerente della tabella - Le espressioni delle band di report si legano solo alle loro variabili di riga o colonna, così i nomi di tabelle letterali e le variabili di posizione integrate non vengono più scambiati per colonne sorgente
Fixed
- Le sessioni di dati dei report e i loro snapshot di provider vengono rilasciati dopo un'esecuzione riuscita, cancellata o fallita, incluse le eccezioni del provider e i nuovi tentativi del runner riutilizzabile
Version 2.361.66
Added
TXLSReportDataContext.BeginRunrestituisce uno snapshotIXLSReportDataSessionisolato con ispezione dello stato e conteggi degli alias risolti o in cache
Changed
- Le sessioni di dati dei report usano una cache hash senza distinzione tra maiuscole e minuscole per tabelle esplicite, risultati lazy dei provider, alias mancanti ed errori dati dei provider
- Ogni alias distinto raggiunge la catena dei provider al massimo una volta per sessione, i risultati dei provider restano legati all'alias richiesto e la ricorsione sullo stesso alias fallisce immediatamente
- Le chiamate dirette a
TXLSReportDataContext.TryGetTableeRequireTablemantengono una cache di compatibilità separata che viene invalidata quando le registrazioni cambiano
Version 2.361.65
Added
IXLSXImageBlobeTXLSXImageBlobforniscono payload immutabili di immagini raster e SVG con digest SHA-256 calcolati una sola volta, dimensione in byte e chiave di cache opzionaleTXLSReportImageResult.CacheKeypermette a un provider di immagini V2 di identificare esplicitamente il contenuto riutilizzabile, mentre il contenuto in conflitto per la stessa chiave viene rifiutato prima di qualsiasi modifica del foglio di lavoro
Changed
- Le immagini di report ripetute condividono un unico payload immutabile tramite chiave di cache esplicita o corrispondenza esatta del digest, conservando ancoraggi e trasformazioni indipendenti
- XLSX e ODS salvano ogni payload di immagine distinto una sola volta, riusano la sua relazione media tra i fogli e ripristinano i payload condivisi quando il workbook viene riaperto
- La riapertura XLSX ora ripristina i dati SVG companion dalle relazioni di estensione DrawingML e li abbina al fallback raster
Version 2.361.64
Added
TXLSReportImageResultpuò dichiarare dimensioni in pixel e DPI della sorgente, mentre richieste e risultati di immagini espongono offset di destinazione relativi all'ancoraggio in EMUTXLSXImage.OffsetXEMUeOffsetYEMUpreservano il posizionamento dell'immagine dentro un ancoraggio attraverso i cicli di salvataggio e apertura XLSX e ODS
Changed
- Il binding delle immagini V2 deriva la geometria fisica dagli header PNG, JPEG, GIF, BMP, EMF e WMF, applica il dimensionamento Natural, Contain, Cover o Stretch e centra le immagini contenute senza decodificarne i pixel
- La geometria raster viene rifiutata prima di modificare il foglio di lavoro quando gli header sono troncati, le dimensioni dichiarate non coincidono, un lato supera 100.000 pixel o la dimensione totale decodificata supera 100 milioni di pixel
Version 2.361.63
Added
IXLSReportImageDataProviderV2può restituire byte di immagine o stream presi in prestito dal chiamante e trasferiti dal provider, con un contesto di workbook, foglio di lavoro, destinazione, band, tabella, riga, ancoraggio e cancellazioneOnTransformImagepuò sostituire o ridimensionare un'immagine prima del binding, mentre le band di range e di tabelle Excel compilate espongono uno snapshot in sola lettura di ogni riga di dati effettiva
Changed
- Gli stream di immagini V2 vengono letti in blocchi limitati con un limite predefinito configurabile di 64 MiB; gli stream seekable presi in prestito ripristinano la loro posizione e gli stream trasferiti vengono rilasciati esattamente una volta
- I payload V2 rifiutano dati vuoti, firme di formato non corrispondenti, dimensioni incoerenti, ancoraggi non validi e offset fuori griglia prima di modificare il foglio di lavoro
- Le band di range e di tabelle Excel compilate legano le destinazioni delle immagini una volta per riga generata a partire dalle colonne legate materializzate, senza scansionare le celle generate del foglio di lavoro
Version 2.361.62
Added
TXLSCompiledReportRunnereTXLSReportGeneratoraccettano ora unIXLSReportImageProvideresistente con politiche per immagini mancanti e celle di direttiveTXLSReportImageBinder.ApplyTargetlega una direttiva di immagine precompilata senza scansionare le celle non correlate del foglio di lavoro
Changed
- Le celle esatte
{{#image Key}}si compilano in destinazioni di report tipizzate, restano invariate quando nessun provider è configurato e riusano la loro chiave e le coordinate compilate tra le sessioni del runner
Version 2.361.61
Added
TXLSCompiledReportRunnerespone ora eventi abbinati di generazione di workbook e fogli di lavoro con identità stabile del foglio, coordinate originali e correnti, dati del report in sola lettura, conteggi delle destinazioni, cancellazione e dettagli dei fallimentiTXLSReportGeneratoresegue modelli da workbook, file, stream o file crittografato attraverso eventi del ciclo di vita di lettura del modello e generazione, con modifica sul posto o per clone atomico selezionabile
Changed
- La generazione di report congela l'insieme originale dei fogli, ricompila dopo cambiamenti di struttura guidati da callback, rifiuta la modifica concorrente dello stesso workbook, abbina gli eventi di ingresso durante cancellazione e fallimento e preserva la prima eccezione
- Gli stream dei report restano di proprietà del chiamante, gli stream di modelli seekable ripristinano la loro posizione, gli stream forward-only vengono consumati in blocchi limitati, e le destinazioni su stream, file e file crittografato cambiano solo dopo il completamento riuscito
- I report compilati senza gestori del ciclo di vita conservano il ciclo diretto delle destinazioni, senza scansioni di fogli, contesti di eventi o allocazioni di ciclo di vita per destinazione
Version 2.361.60
Added
- I workbook XLSX espongono ora
HasWebAddinTaskPanes,WebAddinTaskPaneCounteRemoveWebAddinTaskPanesper l'ispezione e la rimozione esatte dei task pane alla radice del package
Changed
- La rimozione dei task pane dei web add-in ora valida un grafo di relazioni interno limitato prima della modifica, preserva le parti di package condivise e non correlate, rimuove i discendenti esclusivi e le parti di relazioni possedute, ricostruisce i tipi di contenuto, impedisce la resurrezione tramite copia sorgente ed è idempotente
- I workbook XLS classici e ODS segnalano la rimozione dei task pane dei web add-in come non supportata senza scansionare il contenuto del package
Version 2.361.59
Added
- I workbook XLS classici e XLSX espongono ora le proprietà corrispondenti
SaveExternalLinkValueseUpdateLinksper la persistenza della cache e la preferenza di aggiornamento dei collegamenti dichiarata nel file
Changed
- La disattivazione dei valori di collegamenti esterni in cache ora omette solo i record classici
XCT/CRNo il contenutosheetDataSetXLSX, conservando le definizioni dei collegamenti, i nomi definiti, le relazioni, l'XML sconosciuto e le cache in memoria - Le politiche dei collegamenti esterni ora fanno un round-trip senza perdita dei valori sorgente riservati finché non vengono modificati, si convertono tra XLS e XLSX, preservano le parti di package compresse invariate e non avviano mai accessi a file esterni o alla rete
Version 2.361.58
Added
TXLSHTMLExporteTXLSXHtmlExportSessionespongono ora lo snapshot immutabileRenderGeometryusato dall'operazione HTML corrente
Changed
- Gli esportatori HTML XLS classici e XLSX convertono ora le larghezze dei caratteri Excel in lunghezze CSS fisse attraverso una geometria di larghezza massima delle cifre specifica del backend, invece di fattori di conversione hard-coded o unità di caratteri CSS
- Le esportazioni HTML di workbook, fogli di lavoro, range e multi-foglio incrementali catturano una calibrazione locale all'operazione con una cache di metriche limitata e non modificano mai le altezze di riga e le larghezze di colonna memorizzate
Version 2.361.57
Changed
- Le operazioni PDF, SVG, bitmap, anteprima di stampa e viewer di workbook catturano ora distinti snapshot immutabili di geometria di rendering con cache di metriche limitate e consapevoli del backend
- Il rendering di pagine condiviso e il wrapping SVG usano ora una misurazione dei font locale all'operazione invece dello stato GDI bitmap e di liste di stringhe globale al processo, preservando le altezze di riga e le larghezze di colonna memorizzate
Version 2.361.56
Changed
- L'AutoFit XLS classico e XLSX cattura ora un servizio immutabile di geometria di rendering del workbook per operazione, incluse misurazione del testo calibrata, wrapping, interlinea, margini delle celle e i font visibili XLSX effettivi
- La paginazione cattura ora una geometria locale al workbook per ogni costruzione, rimuove lo stato globale al processo di font normale e larghezza massima delle cifre e applica larghezze di colonna implicite calibrate senza modificare le altezze di riga e le larghezze di colonna memorizzate
Version 2.361.55
Added
- I workbook XLS classici e XLSX creano ora servizi immutabili di geometria e misurazione dei font di proprietà dell'operazione, con cache locali limitate, conversioni di larghezza condivise e nessuna cache AutoFit di DPI o larghezza di base globale al processo
Version 2.361.54
Added
- I workbook XLS classici e XLSX espongono ora valori
TXLSRenderCalibrationvalidati più snapshot indipendentiCaptureRenderCalibratione valori predefinitiResetRenderCalibrationper le future operazioni di rendering
Version 2.361.53
Added
- Il caricamento XLSX segnala ora
xlsDiagnosticPrinterSettingsRelationshipInvalidquando una relazione di impostazioni di stampa di un foglio di lavoro è mancante, di tipo errato o pendente
Changed
SaveXLSWorkbookAsXLSXeSaveXLSXWorkbookAsXLStrasportano ora in modo indipendente campi di impostazione pagina tipizzati e byte opachi del driver di stampa, con i campi standard che hanno priorità sui valori predefiniti privati duplicati
Fixed
- Il caricamento XLSX non lega più una parte di impostazioni di stampa non correlata quando la relazione nominata da
pageSetupnon è valida - La conversione da XLSX a BIFF8 rifiuta ora impostazioni di stampa sovradimensionate o non rappresentabili prima di scrivere qualsiasi byte di destinazione
Version 2.361.52
Added
- I fogli di lavoro XLS classici e XLSX espongono ora le proprietà
PrinterDriverDataeHasPrinterDriverDataisolate nelle copie piùClearPrinterDriverDataper il controllo diretto dei payload opachi del driver di stampa
Fixed
- La cancellazione dei dati del driver di stampa XLSX rimuove ora la sua relazione del foglio di lavoro e la parte binaria del package anche quando la preservazione delle parti non supportate è attiva
Version 2.361.51
Changed
- Il caricamento e il salvataggio XLSX preservano ora le impostazioni di stampa binarie di ogni foglio di lavoro attraverso la relazione
pageSetup, la dichiarazione del tipo di contenuto e la parte di packageprinterSettingsN.bin - Le impostazioni di stampa sopravvivono alle copie di fogli nello stesso workbook e tra workbook con una proprietà indipendente byte per byte, mentre le parti sorgente invariate possono conservare il loro payload compresso originale
Version 2.361.50
Changed
- Il caricamento e il salvataggio XLS classici preservano ora il payload completo del driver di stampa BIFF
PLSinsieme a ogni segmentoContinueimmediatamente successivo - I payload del driver di stampa vengono copiati in profondità con i fogli di lavoro, emessi prima di
Setupin blocchi di dimensione esattamente BIFF e rifiutati quando strutturalmente incompleti o maggiori del limite di sicurezza di 1 MiB
Version 2.361.49
Added
- L'impostazione pagina XLS classica espone ora le proprietà in sola lettura
HasSetupRecordePrinterSettingsInitializedcosì i chiamanti possono distinguere impostazioni di stampa mancanti o non inizializzate da valori definiti
Changed
- Il salvataggio di un foglio di lavoro classico intoccato preserva ora l'assenza del record BIFF
Setupe conserva ogni byte di un record esistente di 34 byte, inclusi i bit di flag riservati e non modellati - I setter dell'impostazione pagina creano ora un record
Setupmancante solo quando necessario e inizializzano i campi dipendenti dalla stampante o dall'orientamento in base alla proprietà interessata
Version 2.361.48
Added
SaveXLSXWorkbookAsXLSconverte ora un workbook di modello XLSX in BIFF8 tramite overload su file e stream, preservando i valori caricati, le formule, gli stili principali, i range uniti, le dimensioni di righe e colonne, la modalità data del workbook e lo stato del foglio attivo
Changed
- La conversione da XLSX a XLS costruisce una palette deterministica di 56 colori prima di scrivere gli stili, preserva gli slot indicizzati già in uso e applica la quantizzazione OKLab pesata quando i colori diretti superano la capacità BIFF8
- Il percorso di conversione attraversa le celle sparse o compattate caricate senza materializzare la griglia sorgente, rifiuta le coordinate fuori dai limiti BIFF8 prima di toccare la destinazione ed è ora disponibile negli esempi ConversionWorkbench per Delphi e C++Builder
Version 2.361.47
Added
- I workbook XLS classici e XLSX espongono ora metodi corrispondenti
ApplyBiffPalettePlanche validano e applicano atomicamente un piano di palette corrente a 56 slot - I workbook classici espongono ora
BiffPaletteSavePolicy, con un'opzione esplicita di ottimizzazione BIFF8 e un predefinito che preserva l'output storico della palette
Changed
- L'applicazione di un piano di palette valida ora la generazione sorgente, l'hash sorgente, tutte le identità e i colori degli slot, i conteggi aggregati, i blocchi di preservazione, i flag di cambiamento e le destinazioni opache prima della prima mutazione, poi ricostruisce una sola volta il matcher OKLab in cache
- I salvataggi BIFF8 ottimizzati lasciano la palette applicata nel workbook dopo il successo, ma ripristinano tutti i 56 colori sorgente e la generazione originale se l'output fallisce o viene annullato; i percorsi di output BIFF5 e non BIFF restano invariati
Version 2.361.46
Added
- I workbook XLS classici e XLSX espongono ora metodi corrispondenti
BuildBiffPalettePlanche restituiscono un piano senza mutazioni a 56 slot con identità della palette sorgente, slot bloccati, colori proposti, mappature true color aggregate, copertura esatta e statistiche di errore percettivo
Changed
- La pianificazione della palette BIFF ora preserva i consumatori indicizzati e i colori esatti esistenti prima di assegnare gli slot liberi, poi usa il clustering OKLab deterministico pesato per frequenza solo quando i colori diretti e i colori tema risolti superano la capacità residua
- La costruzione del piano di palette legge i metadati memorizzati di stili e formati condizionali senza cambiare le voci della palette, i conteggi dei colori personalizzati, le celle, il comportamento di salvataggio o l'archiviazione sparsa
Version 2.361.45
Added
- I workbook XLS classici e XLSX espongono ora metodi corrispondenti
ScanIndexedColorUsageche restituiscono un inventario deterministico a 56 slot con indici pubblici e fisici, valori ARGB normalizzati, conteggi di definizioni e riferimenti, tipi di consumatori e blocchi di preservazione
Changed
- La scansione dell'uso dei colori indicizzati copre ora i pool di stili del workbook, i riferimenti di celle sparse, gli stili con nome, le sovrapposizioni di range, le griglie dei fogli di lavoro, le forme, i commenti, il testo formattato, i font dei grafici, gli stili differenziali, le barre dati e le scale di colori senza materializzare le celle inutilizzate né cambiare lo stato del workbook
- I colori indicizzati dei formati condizionali ora fanno un round-trip attraverso gli stili differenziali classici BIFF e OpenXML, le barre dati e le scale di colori, inclusi i salvataggi in streaming che emettono gli identificatori degli stili differenziali prima delle parti dei fogli di lavoro
Version 2.361.44
Added
- I workbook XLS classici e XLSX espongono ora metodi corrispondenti
NearestIndexedColorche restituiscono l'indice di palette pubblico più vicino, lo slot fisico, il valore ARGB normalizzato, la distanza percettiva al quadrato e lo stato di corrispondenza esatta
Changed
- La corrispondenza del colore indicizzato più vicino condivide ora una singola implementazione OKLab in cache tra entrambi i motori di workbook e il gestore di colori legacy, con spareggio deterministico sull'indice più basso e aggiornamenti della cache limitati alle mutazioni effettive della palette
- Le query del colore più vicino scansionano solo le 56 voci fisiche della palette BIFF, rifiutano gli input parzialmente trasparenti e non modificano mai la palette o lo stato del workbook
Version 2.361.43
Added
- I workbook XLS classici e XLSX espongono ora overload corrispondenti
ResolveIndexedColorche classificano gli indici di colore pubblici, i valori BIFFicve i colori indicizzati OOXML restituendo metadati di palette, automatici, di sistema o non validi - Il risultato tipizzato del colore indicizzato riporta l'indice grezzo, lo slot di palette, il ruolo del colore di sistema, il valore ARGB normalizzato e se è stato risolto un colore concreto
Changed
- I token di colori automatici e di sistema non interrogano più implicitamente il desktop Windows corrente; i chiamanti possono fornire un resolver esplicito quando serve un colore concreto dell'ambiente
- I colori di sistema del tema usano ora il loro valore RGB di fallback memorizzato, mantenendo caricamento, salvataggio ed elaborazione headless deterministici tra macchine
Fixed
- I valori di colori indicizzati OOXML non validi non si risolvono più in nero opaco, e i valori predefiniti del gestore di colori legacy usano ora i valori esatti della palette a 128 canali
Version 2.361.42
Added
TXLSWorksheeteTXLSXWorksheetespongono ora i metodi corrispondentiTryGetOutlineNode,SetOutlineNodeCollapsedeSetOutlineDisplayLevelper i nodi di riepilogo di righe o colonne con base uno
Changed
- Le query e gli aggiornamenti della struttura dei fogli di lavoro adattano ora i metadati sparsi del motore a piani compressi, preservano per impostazione predefinita lo stato dei figli annidati e applicano i cambiamenti di nascosto e compresso senza scansionare le coordinate inutilizzate del foglio
- I gruppi di righe e colonne OpenDocument preservano ora il loro stato di visualizzazione annidato nativo attraverso cambiamenti diretti dei metadati, modifiche strutturali, round-trip ODS e conversione nei marcatori di nodi di riepilogo XLSX
TXLSXWorksheet.ToggleRowGroupedeToggleColGroupedrestano disponibili come wrapper di compatibilità consapevoli della direzione attorno all'API dei nodi di riepilogo
Version 2.361.41
Added
TXLSOutlineGeometrypuò ora costruire istanzeTXLSOutlineMutationPlancompresse per la compressione o l'espansione idempotente dei nodi e i cambiamenti del livello di visualizzazione della struttura con base uno- I piani di mutazione della struttura espongono modalità figlio esplicite di preservazione, compressione ed espansione, mantenendo i marcatori di compressione annidati indipendenti per impostazione predefinita
Changed
- L'espansione di un nodo di struttura annidato tiene ora conto degli antenati compressi e dei discendenti compressi nel derivare la visibilità, e la scoperta di nodi in massa attraversa solo gli intervalli materializzati con una passata lineare a pila monotona
Version 2.361.40
Added
- La nuova unità
lxOutlineindipendente dal motore costruisce la geometria della struttura di righe o colonne da intervalli sparsi ordinati e scopre i nodi di riepilogo prima o dopo, i range di dettaglio annidati, i livelli di riepilogo, lo stato nascosto e i marcatori di compressione espliciti senza scansionare le coordinate inutilizzate del foglio
Version 2.361.39
Added
- I metadati delle colonne XLS classiche espongono ora il marcatore indipendente di compressione della struttura attraverso
TXLSColumnInfo.CollapsedeTXLSColumnInfoList.Collapsed
Fixed
- I marcatori di compressione della struttura delle colonne XLS classiche sopravvivono ora ai round-trip BIFF, alle copie di formato delle colonne, alle copie dei fogli di lavoro e alla fusione di record adiacenti, mentre la larghezza definita e i flag di adattamento ottimale e fonetico restano intatti
Version 2.361.38
Fixed
- Le colonne di riepilogo della struttura XLS classiche preservano ora la loro posizione logica a sinistra o a destra attraverso le visualizzazioni dei fogli di lavoro da sinistra a destra e da destra a sinistra, invece di scrivere il bit di direzione
WSBOOLopposto
Version 2.361.37
Added
- I fogli di lavoro XLS classici e XLSX espongono ora
EvaluateFormulaAtper la valutazione di formule A1 o R1C1 in sola lettura in un contesto di cella di destinazione esplicito IXLSFormulaEvaluationTemplatecompila una volta sola un'ancora di formula immutabile e la valuta ripetutamente in altre celle tramiteEvaluateAtoEvaluateAtWithOptions- Le opzioni di valutazione delle formule includono ora limiti per lunghezza della formula, passi degli elementi sintattici, profondità di ricorsione e byte degli array generati, con l'esaurimento segnalato come
xlfeResourceLimit
Changed
- La valutazione monouso e quella riutilizzabile condividono ora i nomi locali al foglio, i riferimenti strutturati, le dipendenze delle formule non in cache, le radici degli array, lo stato volatile, la cancellazione e i riferimenti esterni esplicitamente autorizzati, senza scrivere lo stato del workbook
- I metodi
Calculateesistenti del workbook e del foglio di lavoro restano facciate di compatibilità sopra l'evaluatore contestuale tipizzato
Fixed
- La valutazione contestuale preserva ora le varianti di errore delle formule e distingue i fallimenti di analisi, funzione non supportata, riferimento circolare, riferimento esterno, cancellazione, durata di vita del foglio e limite di risorse
- I modelli R1C1 riutilizzabili traducono ora gli offset relativi di riga e colonna dalla loro ancora di compilazione quando vengono valutati in un'altra cella di destinazione
Version 2.361.36
Added
ConvertExternalDefinedNamesToRefErrorsè ora disponibile sui workbook XLS classici e XLSX per staccare i nomi definiti confermati di workbook esterni senza riscrivere le formule ordinarie delle celle- Le definizioni malformate o non supportate che vengono saltate vengono segnalate tramite
xlsDiagnosticDefinedNameConversionSkipped
Changed
- La conversione sostituisce atomicamente le definizioni selezionate con
#REF!nativi conservando l'ambito di workbook o foglio di lavoro, la visibilità, i commenti, i flag di macro e integrati, gli attributi sconosciuti e le parti dei collegamenti esterni
Fixed
- La sintassi di slot dei nomi definiti esterni come
=[1]!RemoteNamesi risolve ora attraverso il collegamento del workbook dichiarato, e le formule dipendenti conservano il valore di errore Excel risultante durante il ricalcolo
Version 2.361.35
Added
TXLSWorkbookWorkspace.Recalculatevaluta ora i nodi di formule XLS classici, XLSX e ODS registrati in un'unica passata topologica tra workbook con rilevamento delle componenti fortemente connesse e propagazione della generazione sporcaTXLSWorkspaceRecalcResultriporta il riuso del grafo, i nodi sporchi e valutati, i cicli, i dipendenti bloccati, le invalidazioni e i successi e mancamenti della cache di runtime
Changed
- Il workspace conserva il suo grafo delle dipendenze finché le registrazioni o la topologia delle formule cambiano, mentre le modifiche ordinarie di valori rendono sporchi solo i nodi del workbook interessati e i loro dipendenti transitivi
- Le letture ripetute di celle esterne in una passata di calcolo condividono una cache esatta di workbook, foglio di lavoro, riga e colonna, invalidata prima di ogni aggiornamento pianificato delle formule
Fixed
- I collegamenti bidirezionali tra workbook non vengono più trattati come circolari a meno che il grafo delle celle di formula contenga un ciclo reale; i membri del ciclo e i loro dipendenti bloccati vengono invalidati invece di restituire valori in cache obsoleti
- Una sessione di workspace fallita o invalidata da un ciclo conserva ora lo stato sporco locale al motore, così un successivo ricalcolo del workbook riprova le formule incomplete invece di considerare una passata parziale come completata
Version 2.361.34
Added
TXLSWorkbookWorkspace.BuildDependencyGraphcrea ora un unico grafo delle dipendenze attraverso i workbook XLS classici, XLSX e ODS registrati, conservando le identità di workbook, fogli di lavoro, celle, range rettangolari e nomi definiti con ambitoTXLSWorkspaceDepGraphespone query su nodi di formula, riferimenti, archi, dipendenti di celle e dipendenti di nomi definiti, più diagnostici di verifica dei candidati per la verifica delle prestazioni
Changed
- I grandi range di formule restano intervalli compatti invece di espandersi in celle individuali, mentre gli alberi di intervalli di righe potano sia la ricerca dei dipendenti che la costruzione degli archi senza materializzare i valori compattati dei fogli di lavoro
- I nomi definiti locali conservano sia la loro dipendenza simbolica che le dipendenze di celle o range risolte staticamente, mentre i nomi definiti esterni preservano il loro slot dichiarato di workbook esterno, nome e ambito del foglio di lavoro
Fixed
- I nomi definiti ordinari non vengono più cancellati mentre il parser delle formule verifica un prefisso opzionale di workbook esterno
Version 2.361.33
Added
TXLSWorkbookWorkspace.OnLoadWorkbookpuò ora richiedere un workbook esterno tramite una politica controllata dal chiamante, al massimo una volta per identità normalizzata, mentreResolveWithLoaderriporta diagnostici tipizzati di non trovato, errore, ciclo e limite di risorseMaxLoadDepth,MaxWorkbookCounteResetLoadAttemptsforniscono limiti espliciti e controllo dei tentativi per il caricamento di workbook esterni
Changed
- Le richieste concorrenti di workbook esterni condividono ora un unico risultato di caricamento in corso, e il reinserimento annidato viene rifiutato senza attendere in un ciclo di caricamento tra thread; il workspace predefinito non esegue comunque alcun accesso al file system o alla rete
Version 2.361.32
Added
- I workbook XLS classici espongono ora
CreateWorkspaceWorkbook,RegisterExternalWorkbook,UnregisterExternalWorkbookedExternalWorkspace, permettendo ai workbook classici, XLSX e ODS di fornire valori di formule esterne attraverso un unico workspace indipendente dal motore - Le cache dei collegamenti esterni XLS classici decodificano ora i valori numerici, stringa, booleani, di errore e vuoti dai record tipizzati XCT e CRN in una lookup sparsa a tempo costante, senza materializzare fogli di lavoro
Changed
- La valutazione delle formule esterne risolve ora i nomi dei fogli di lavoro prima dei fallback posizionali e legge in modo coerente prima un workbook attivo esplicitamente registrato, poi una cache di file tipizzata, quindi restituisce
#REF!, mentre le registrazioni distrutte vengono revocate senza accessi impliciti a file o rete - Le identità di workbook esterni tra virgolette possono contenere schemi URI, lettere di unità Windows e altri due punti senza essere scambiate per un separatore di range tridimensionali di fogli di lavoro, così gli IRI delle sorgenti esterne ODF restano intatti durante l'importazione delle formule
Version 2.361.31
Added
TXLSWorkbookWorkspace,IXLSWorkspaceWorkbookeTXLSXWorkbook.CreateWorkspaceWorkbookforniscono una base thread-safe di identità e registrazione di workbook esterni con stato di risoluzione esplicito, tracciamento della generazione e adattatori di workbook revocabili
Changed
TXLSXWorkbook.RegisterExternalWorkbookpreserva ora percorsi ed estensioni, risolve i target delle relazioni relative rispetto al workbook proprietario, rifiuta alias ambigui o target con lo stesso nome di base invece di sceglierne uno silenziosamente, revoca le registrazioni quando un workbook di destinazione viene distrutto e conserva un fallback tipizzato della cache dei collegamenti esterni senza accessi impliciti a file o rete
Version 2.361.30
Added
- Le view di workbook in sola lettura classiche e XLSX possono ora valutare formule su richiesta tramite
xlsvEvaluateFormulase riportare il risultato indipendente tramiteFormulaEvaluationsenza sostituire le cache delle formule memorizzate
Changed
- Le view in sola lettura concorrenti isolano ora i flag di ricorsione delle formule, i risultati scalari, le formule XLSX compilate e le matrici di array, mentre le formule esterne XLSX usano solo cache di collegamenti esterni locali al file e non dereferenziano mai registrazioni di workbook attivi
Fixed
- I valori in cache dei collegamenti esterni XLSX risolvono ora l'indice del foglio di lavoro con base uno portato dai record XTI esterni alla corretta voce del foglio in cache con base zero
Version 2.361.29
Added
- I workbook XLSX espongono ora
IXLSXWorkbookOwner.CreateReadOnlyViewcon fogli attivi locali alla view, snapshot di celle materializzate e compattate per valore, risultati di formule in cache, testo delle formule su adesione, ordine di rilascio sicuro di proprietario o view ed esclusione delle scritture a interruzione immediata
Changed
- Le view XLSX in sola lettura usano solo cache di formule esterne memorizzate localmente e non dereferenziano mai registrazioni deboli di workbook attivi
Version 2.361.28
Added
- I workbook classici espongono ora
CreateReadOnlyVieweIXLSReadOnlyWorkbookViewper view a modello condiviso a tempo costante con fogli attivi indipendenti, snapshot di celle per valore, risultati di formule in cache, testo delle formule su adesione, durata di vita del proprietario a conteggio dei riferimenti ed esclusione delle scritture a interruzione immediata
Version 2.361.27
Added
- I workbook classici, XLSX e ODS espongono ora
CreateFormulaCacheReadere l'interfaccia condivisaIXLSFormulaCacheReaderper l'ispezione delle cache delle formule indipendente dal motore con invalidazione sicura della durata di vita
Changed
- L'ispezione delle cache delle formule condivise preserva ora il risultato memorizzato indipendente di ogni membro, così un follower senza valore in cache segnala mancante invece di ereditare il valore del membro radice
Version 2.361.26
Added
TXLSXWorkbook.TryGetCachedFormulaValueriporta ora presenza, provenienza e tipo di valore delle cache delle formule XLSX e ODS, senza calcolo né modifica del workbook
Fixed
- Le cache delle formule XLSX e ODS preservano ora i risultati mancanti e vuoti espliciti, le stringhe vuote, i booleani falsi, gli zeri numerici, gli errori tipizzati e le date esplicite attraverso salvataggio e riapertura, mentre le formule modificate non serializzano più risultati in cache obsoleti
Version 2.361.25
Added
- I workbook classici espongono ora
TryGetCachedFormulaValuecon presenza della cache, provenienza e tipo di valore espliciti, permettendo di leggere un risultato di formula memorizzato senza calcolo, callback di funzioni utente, decompilazione dei token o modifica del workbook
Fixed
- Le cache booleane e di errori delle formule XLS classiche usano ora il byte di payload BIFF specificato nelle formule ordinarie e condivise, e i risultati di errore caricati restano valori tipizzati
varErrorattraverso salvataggio e riapertura
Version 2.361.24
Added
- I workbook classici e XLSX forniscono ora un overload
CreateLoadedCellCursor(Boolean)che può includere le celle vuote memorizzate con stile indipendente come snapshotxlckBlank
Changed
- L'attraversamento delle celle vuote su adesione preserva l'ordine di fogli di lavoro, righe e colonne, mantiene l'archiviazione XLSX compattata compressa ed esclude le coordinate con formato ereditato più i segnaposto Empty e Null senza stile
Version 2.361.23
Added
- I workbook XLSX espongono ora
TXLSXWorkbook.CreateLoadedCellCursorper l'attraversamento a stato costante in ordine per righe delle celle di valori e formule memorizzate attraverso i fogli di lavoro TXLSLoadedCellKindinclude oraxlckErrorcosì i valori di errore XLSX memorizzati conservano il loro tipo di valore distinto
Changed
- I cursori XLSX attraversano direttamente i blocchi di righe sparsi materializzati o l'archiviazione compattata, senza ordinare le celle né materializzare i valori compattati, e gli snapshot delle formule restituiscono il valore in cache attualmente memorizzato senza ricalcolo
- I cambiamenti di topologia a livello di workbook e il rilascio del workbook invalidano i cursori XLSX tramite un lease di durata di vita condiviso, mentre le modifiche al contenuto delle celle esistenti mantengono l'attraversamento valido e gli snapshot catturati di proprietà
Version 2.361.22
Added
- I workbook classici espongono ora
IXLSWorkbook.CreateLoadedCellCursorper l'attraversamento a stato costante in ordine per righe delle celle di valori e formule memorizzate attraverso i fogli di lavoro TXLSLoadedCellSnapshotrestituisce identità del foglio di proprietà, coordinate con base uno, stile, tipo di valore, valore e testo della formula senza esporre gli oggetti interni delle celle
Changed
- I cursori di celle caricate falliscono immediatamente dopo cambiamenti alla topologia delle celle, alla collezione dei fogli di lavoro o alla sostituzione del modello del workbook, mentre le modifiche al contenuto delle celle esistenti mantengono l'attraversamento valido e gli snapshot catturati in precedenza invariati
Version 2.361.21
Added
- I magazzini di celle e le collezioni di fogli di lavoro XLS classici e XLSX espongono ora contatori indipendenti di generazione strutturale per un attraversamento sicuro di lunga durata
XlsValidateStructureGenerationeEXLSLoadedCellCursorInvalidatedforniscono un unico contratto di validazione a interruzione immediata per i lettori di celle caricate
Changed
- La creazione, rimozione, cancellazione e riordinamento delle coordinate delle celle, le transizioni dell'archiviazione compattata, le ricostruzioni degli indici e le operazioni di aggiunta, eliminazione o spostamento dei fogli di lavoro fanno avanzare la generazione interessata, mentre le modifiche al contenuto delle celle esistenti, la rinomina o attivazione dei fogli e le mutazioni senza effetto la mantengono stabile
Version 2.361.20
Added
TXLSForwardReaderaccetta ora input ODS attraverso la stessa superficie di callback di XLS, XLSX, CSV e TSVPeakRowBufferedByteseSheetPassesStartedespongono il working set di picco di righe logiche del backend di righe condiviso e il numero di passate riuscite sui fogli di lavoro
Changed
TXLSForwardReaderadatta oraTXLSRowCursorper ogni formato supportato, condividendo il comportamento di limiti di riga, proiezione delle colonne, stato delle formule, testo formattato, password, record saltati e posizione dello stream invece di mantenere percorsi di scansione separati- Gli indici dei fogli del lettore in avanti sono coerentemente con base uno, e i fogli di lavoro saltati da
OnSheetnon vengono aperti né decompressi
Version 2.361.19
Added
TXLSRowCursorespone ora stati espliciti chiuso, prima-del-primo, attivo, EOF, cancellato e in errore, più un metodoCancelidempotente che rilascia lo stream del foglio di lavoro attivo senza chiudere la sorgenteCurrentRowViewfornisce una view presa in prestito della riga corrente verificata per generazione, senza duplicare il suo array di celle; l'avanzamento, la selezione di un foglio, la cancellazione, la chiusura o la distruzione del cursore invalida le view precedenti conEXLSRowCursorViewInvalidated- Le aperture di stream accettano ora
xsoBorrowedoxsoOwned, trasferendo la proprietà solo dopo un'apertura riuscita, ePeakRowBufferedBytesriporta il buffer di picco stimato di righe logiche dall'ultima apertura
Changed
- I fallimenti delle parti dei fogli di lavoro e dell'avvio delle passate preservano ora la loro eccezione di lettura originale e portano il cursore nello stato di errore invece di apparire come cancellazione o EOF normale; la selezione esplicita di un foglio ripristina la passata per un nuovo tentativo
Version 2.361.18
Added
TXLSDirectCelleTXLSRowCursorCellespongono oraHasFormulaeFormulaTextAvailable, distinguendo valori semplici, formule con testo disponibile e formule il cui testo è soppresso o non disponibileTXLSDirectReader,TXLSForwardReadereTXLSRowCursorforniscono oraIncludeFormulaText; la sua disattivazione preserva valori in cache, coordinate, stili e presenza delle formule evitando l'accumulo di testo delle formule negli stream XLSX e ODS
Changed
- I limiti di riga e la proiezione delle colonne vengono ora spinti nei backend XLS, XLSX, ODS, CSV e TSV prima dell'allocazione di valori, formule e testo formattato; gli intervalli di colonne ODS ripetuti saltano direttamente tra le colonne selezionate e i blocchi di righe ripetuti vengono tagliati al range richiesto
- Le opzioni di passata del cursore di righe sono congelate mentre una passata sul foglio di lavoro è attiva e tornano modificabili dopo EOF, selezione del foglio o chiusura, impedendo a una passata di mescolare impostazioni di filtro o decodifica incompatibili
Version 2.361.17
Added
TXLSRowCursorapre ora file ODS e stream di proprietà del chiamante, rileva automaticamente i package ODS dal loro mimetype o dacontent.xml, precarica i nomi dei fogli di lavoro e trasmette in streaming la tabella selezionata tramiteFindFirsteFindNextsenza materializzare un workbook
Changed
- L'attraversamento delle righe ODS espande in modo lazy le righe e colonne ripetute, omette le celle coperte come valori indipendenti, preserva le celle vuote con stile e i valori delle formule in cache, ripristina le posizioni degli stream presi in prestito e segnala i conteggi di ripetizione non validi o limitati dalla griglia tramite
OnSkippedRecord
Version 2.361.16
Added
TXLSRowCursortrasmette in streaming file o stream CSV e TSV di proprietà del chiamante con rilevamento del BOM UTF-8 e UTF-16, record quotati multilinea, virgolette con escape, rilevamento dei delimitatori virgola, punto e virgola, tabulazione o barra verticale, override opzionale del delimitatore e riconoscimento opzionale dei tipi numero, data ISO, booleano ed errore
Changed
TXLSForwardReadereTXLSRowCursorcondividono ora un unico backend di righe di testo pausabile, preservando risultati identici di callback e pull mentre rilasciano i payload Variant, formula e testo formattato della riga precedente prima di avanzare
Version 2.361.15
Added
TXLSRowCursorapre ora workbook.xlsclassici da file o stream, rileva automaticamente i contenitori composti BIFF e restituisce i risultati numerici o stringa delle formule in cache più le celleBlankeMulBlankmemorizzate, trattenendo solo la riga logica corrente
Changed
- Gli overload
Opendel cursore di righe accettano unTXLSForwardFormatopzionale; le aperture da file possiedono il loro stream BIFF interno, le aperture da stream prendono in prestito lo stream del chiamante e ne ripristinano la posizione iniziale alla chiusura tramiteClose, e le passateFindFirstripetute si posizionano direttamente sul foglio di lavoro selezionato
Version 2.361.14
Added
- Il calcolo delle formule supporta ora
ISFORMULAper celle individuali, riferimenti tra fogli e range rettangolari, restituendo un array booleano della stessa forma per gli input di range senza valutare le formule referenziate
Changed
- I controlli di presenza delle formule distinguono valori ordinari e vuoti, membri di formule condivise, membri di formule matriciali classiche e XLSX, ancoraggi di array dinamici e figli di spill dinamici; gli array generati sono limitati da
FormulaArrayMemoryLimit - XLSX memorizza
ISFORMULAcon il prefisso_xlfn., ODS emette la grafia OpenFormula standard, e i salvataggi XLS classici rifiutano la funzione futura non supportata senza confermare uno stream parziale
Fixed
- L'analisi del testo delle formule riconosce ora i sette letterali di errore Excel standard, permettendo a
#REF!di propagarsi attraverso le funzioni a soli riferimenti, mentre un nome definito che si risolve in uno scalare riporta#VALUE!invece di#NAME?
Version 2.361.13
Added
- Il calcolo delle formule supporta ora
UNICHARsu tutta la gamma degli scalari Unicode, inclusi i caratteri supplementari e a uso privato, con errori compatibili Excel per zero, valori fuori gamma, code point surrogati e non-caratteri Unicode - Il calcolo delle formule supporta ora
BAHTTEXTcon testo in baht e satang thai, arrotondamento mediano a due decimali allontanandosi da zero, valori negativi, gruppi di milioni ripetuti e input finiti in notazione scientifica
Changed
UNICHAReBAHTTEXTmappano range e array generati elemento per elemento preservando gli errori locali; XLSX memorizzaUNICHARcon il suo prefisso di funzione futura mentreBAHTTEXTresta una funzione nuda standard sia in XLS che in XLSX
Version 2.361.12
Added
- Il calcolo delle formule supporta ora
COMBINAePERMUTATIONAcon argomenti non negativi troncati, overflow controllato, broadcasting di array singleton ed errori per elemento, più le matrici identitàMUNITsenza un tetto fisso di dimensione - I workbook classici e XLSX espongono
FormulaArrayMemoryLimitcon un predefinito di 64 MiB per limitare i payload degli array di formule generati, inclusi i worker di ricalcolo XLSX paralleli
Changed
PERMUTATIONAusa l'esponenziazione logaritmica,COMBINAaccorcia la sua ricorrenza moltiplicativa, eMUNITalloca una matrice numerica compatta scrivendo solo la sua diagonale
Fixed
- Gli array di formule numerici non vengono più classificati come numeri scalari, e i workbook classici appena creati applicano i limiti di griglia BIFF97 durante il calcolo delle formule prima del loro primo salvataggio
Version 2.361.11
Added
- Il calcolo delle formule supporta ora
COT,ACOT,COTH,ACOTH,CSC,CSCH,SECeSECHcon regole di valore principale, dominio, singolarità, input finito e argomento grande su operandi scalari e array in broadcasting
Fixed
- Le funzioni di formula mappate preservano ora i fallimenti scalari diretti come valori di errore del foglio di calcolo, usano rami reciproci e di coda esponenziale resistenti alla cancellazione per grandi input validi, scrivono i nomi
_xlfn.esatti senza_xlws.e rifiutano in modo pulito le formule BIFF classiche non supportate
Version 2.361.10
Added
- Il calcolo delle formule supporta ora
CEILING.MATHeFLOOR.MATHcon argomenti di significatività e modalità omessi, significatività indipendente dal segno, confini precisi dei multipli decimali e le direzioni di modalità specificate per i numeri negativi
Changed
- Le funzioni matriciali a livello di formula possono ora condividere un mapper lineare degli elementi con broadcasting di riga e colonna singleton, snapshot dei range una tantum ed errori di conversione o calcolo per elemento; XLSX usa il prefisso
_xlfn.per entrambe le nuove funzioni mentre i salvataggi BIFF classici rifiutano in modo pulito le formule non supportate
Version 2.361.9
Added
- Il calcolo delle formule supporta ora
SORTBYcon ordinamento stabile multi-chiave per righe o colonne, direzioni crescente o decrescente indipendenti, predefiniti per direzione omessa, chiavi da range o array generati, e snapshot una tantum di sorgente e chiavi seguiti da un ordinamento O(n log n)
Fixed
- I salvataggi BIFF classici ora falliscono in modo pulito quando una formula non può essere rappresentata invece di riportare successo dopo il rifiuto di un identificatore interno di funzione futura, mentre XLSX scrive
SORTBYcon_xlfn.senza mai aggiungere_xlws.
Version 2.361.8
Changed
- La modalità di visualizzazione degli zeri dei fogli di lavoro usa ora una singola decisione sul valore grezzo attraverso i percorsi viewer di workbook, anteprima, stampa, bitmap, EMF, SVG, PDF, HTML classico e HTML XLSX; lo zero numerico reale viene nascosto prima della formattazione dei numeri e della misurazione del testo, mentre la modalità di visualizzazione delle formule conserva la precedenza
Fixed
- Le view dei fogli XLSX analizzano, scrivono e copiano ora lo stato di visualizzazione degli zeri attraverso un'unica impostazione, gestiscono correttamente la base data 1904, preservano le visuali dei formati condizionali e la geometria dei collegamenti ipertestuali per le celle con zero nascosto, e lasciano invariati i valori memorizzati, il testo formattato pubblico e gli output CSV e ODS
Version 2.361.7
Changed
- La modalità di visualizzazione delle formule dei fogli di lavoro usa ora una singola decisione sul testo consapevole delle celle protette attraverso i percorsi viewer di workbook, anteprima, stampa, bitmap, EMF, SVG, PDF, HTML classico e HTML XLSX; il testo delle formule usa l'allineamento del testo sotto l'allineamento General, preserva l'allineamento esplicito e riceve una larghezza di layout effettiva raddoppiata non persistente senza traboccare nelle celle vicine
Fixed
- Le view dei fogli XLSX accettano ora sia
showFormulas="1"cheshowFormulas="true", preservano l'impostazione durante le copie dei fogli nello stesso workbook e tra workbook, ed emettono lo statosheetViewrichiesto senza cambiare le cache delle formule, l'output CSV, la persistenza ODS o il contratto pubblico dei valori formattati
Version 2.361.6
Changed
- Le formule dei workbook esterni XLSX condividono ora un unico lexer dei prefissi di workbook consapevole della grammatica attraverso la conversione
OnlyExternal, i diagnostici delle formule, il binding del calcolo, la copia tra workbook e la serializzazione delle formule generate; gli slot numerici dei collegamenti sono canonici, mentre i riferimenti strutturati, i letterali stringa, gli indici malformati e i prefissi di nomi di file ambigui vengono sistematicamente rifiutati TXLSXExternalLinkespone ora il suoRelationshipIdsorgente, loSourceSlotcon base uno e ilLinkKindtipizzato, così le voci di riferimenti esterni a workbook, DDE, OLE e non risolte possono essere auditate senza dedurre l'identità dall'ordine della collezione o dal testo del target
Fixed
- La modifica di un target di collegamento esterno XLSX o della sua lista di fogli invalida ora i binding delle formule esterne compilate per revisione invece di riscansionare ogni cella, e le parti dei collegamenti esterni DDE o OLE invariate senza file di relazioni restano preservate byte per byte durante il salvataggio
Version 2.361.5
Fixed
- Gli slot delle formule dei workbook esterni XLSX seguono ora l'ordine del documento dei riferimenti esterni di
workbook.xmlinvece dell'ordine dei file di relazioni; le relazioni mancanti, non risolte o di tipo errato conservano slot vuoti così i riferimenti[N]successivi non si spostano
Version 2.361.4
Changed
- Il congelamento delle formule XLS classiche con
OnlyExternalclassifica ora i riferimenti BIFF preservati e converte solo le formule confermate di workbook esterni, mentre i riferimenti interni, di add-in, DDE/OLE e malformati restano formule
Fixed
- I risultati delle formule che iniziano con un segno di uguale o un apostrofo restano ora stringhe letterali durante la conversione dei valori, e i gruppi di formule matriciali vengono istantaneizzati prima che qualsiasi formula radice o di spill venga rilasciata
Version 2.361.3
Changed
- I collegamenti di supporto e gli indici dei fogli esterni XLS classici usano ora una classificazione tipizzata limitata per i record interno, stesso foglio, add-in, workbook esterno, DDE/OLE, inutilizzato e sconosciuto
Fixed
- I payload dei collegamenti di supporto malformati vengono preservati byte per byte invece di essere ricostruiti come un tipo di collegamento diverso, e le tabelle dei fogli esterni troncate non leggono più oltre i loro dati di record
Version 2.361.2
Fixed
- Le formule XLS classiche risolvono ora l'indice XTI con base zero nei token dei nomi definiti esterni alla corretta voce interna del foglio esterno, inclusa la prima voce
Version 2.361.1
Fixed
- Lo scrittore diretto XLSX emette ora il flag di soppressione SpreadsheetML di base
showDropDownsolo quandoShowDropDownè disattivato, preservando la semantica pubblica dell'API orientata alla visualizzazione
Version 2.361.0
Added
- Le serie dei grafici guadagnano
CategoriesMultiLevel: impostatela per emettere le categorie comemultiLvlStrRef(etichette degli assi gerarchiche) invece di un riferimento stringa piatto, con recupero tramite round-trip dai grafici salvati
Version 2.360.0
Fixed
- I commenti dei nomi XLS classici usano ora il corretto identificatore di record
NAMECMT($0894); l'identificatore usato in precedenza ($0019) appartiene aWINDOWPROTECTsecondo le specifiche BIFF
Added
WindowProtectedsui workbook classici fa fare un round-trip al flag di protezione della finestra del workbook attraverso il recordWINDOWPROTECT($0019), con i corpi grezzi catturati che hanno la precedenza a meno che la proprietà sia scritta esplicitamente
Version 2.359.0
Added
- Le tabelle dati dei grafici espongono interruttori indipendenti
showHorzBorder/showVertBorder/showOutlineinvece di disegnare sempre ogni bordo - I grafici a linee guadagnano le linee di caduta (
HasDropLines) e i grafici a barre sovrapposte le linee di serie (HasSeriesLines), entrambi con round-trip; le serie possono essere rimosse individualmente dalla legenda tramiteLegendDeletedrestando tracciate
Version 2.358.0
Added
- Le band dei report guadagnano semantiche fisse e di dataset vuoto:
EmptyBandPolicyconserva, cancella o elimina le righe del modello quando il dataset è vuoto (più nessun segnaposto irrisolto lasciato indietro),FixedBandscrive le copie sopra le righe sottostanti senza inserire nulla per le band di moduli in sovrapposizione, eDeleteLastRowcomprime l'ultima copia così il contenuto successivo si unisce senza spazi (comportamento X-range)
Version 2.357.0
Added
- L'esportazione PDF può incorporare font OpenType autonomi con contorni CFF attraverso uno stream OpenType
FontFile3e un discendenteCIDFontType0; le modalità automatica e completa trattengono il programma completo, mentre un sottoinsieme richiesto non disponibile fallisce prima che l'output venga confermato OnGetFontDirectoriesfornisce directory separate da punto e virgola per una famiglia e uno stile di font richiesti; gli alberi accettati vengono cercati ricorsivamente una volta e indicizzati per metadati interni dei font per una risoluzione di fallback in cache
Changed
- I font incorporati che portano dati GPOS OpenType o di crenatura legacy usano ora avanzamenti dei glifi posizionati sia per il testo semplice che per le scritture complesse, mantenendo coerenti misurazione, wrapping, allineamento e posizionamento dei glifi PDF
Version 2.356.0
Added
- L'incorporazione dei font PDF diventa una politica configurabile a quattro modalità:
FontEmbeddingseleziona il comportamento storico automatico, il subsetting richiesto, l'incorporazione del programma completo o i font in sola mappa i cui programmi vengono rimossi mentre sopravvivono la mappatura CID e le tabelle ToUnicode; PDF/A rifiuta l'output in sola mappa - L'evento
OnFontEmbedscatta una volta per font Unicode prima che metriche e mappature dei glifi vengano risolte, riceve il suo nome e il percorso del file e può accettare una modalità per font o byte di font sostitutivi tramite il contratto esplicitoHandled
Version 2.355.0
Added
- Il ricalcolo XLS classico usa ora un grafo delle dipendenze costruito in modo lazy, propaga i cambiamenti degli input solo ai dipendenti transitivi, ricalcola le formule volatili a ogni passata e valuta le formule in ordine di dipendenza invece di riscansionare l'intero heap sparso delle celle
- I riferimenti circolari in XLS classico seguono ora
EnableIteration,MaxIterationseMaxIterationChange; le componenti fortemente connesse isolano i cicli indipendenti, li iterano in modo deterministico e poi calcolano le formule a valle - I file associati PDF/A-3 guadagnano un overload
AddAttachmentdettagliato con nomi visualizzati Unicode, descrizioni, orari di modifica, nomi MIME con escape, metadati di dimensione in byte e relazioni Source, Data, Alternative, Supplement o Unspecified TXLSPDFWritercrea documenti PDF autonomi senza un workbook, con dimensioni di pagina esplicite, output multipagina, rettangoli, linee, ellissi, testo stilizzato misurato, trasformazioni di coordinate, clipping rettangolare e controllo dello stato grafico
Changed
- La disattivazione di
UseFullPrecisionsu XLS classico ora arrotonda i risultati in cache delle formule e delle tabelle dati What-If alla precisione numerica visualizzata effettiva prima che le formule dipendenti li consumino, inclusi i formati percentuali e l'arrotondamento mediano allontanandosi da zero
Fixed
- Il ricalcolo classico delle formule usa ora le coordinate native delle celle con base zero, tiene i fallimenti di calcolo fuori dalla cache dei successi e preserva la propagazione degli errori attraverso le funzioni matriciali dipendenti
Version 2.354.0
Added
- Gli assi dei grafici guadagnano l'enumerazione della modalità di intersezione (
Crosses: autoZero / max / min, emessa comecrossesquando non è impostato alcunCrossesAtesplicito) e gli stili di tacche maggiore / minore per asse (in,out,cross), tutti con round-trip AutoTitleDeletedsui grafici sostituisce il flag hard-coded del titolo automatico e sopprime il titolo derivato dalle serie quando impostato
Version 2.353.0
Added
- Le serie dei grafici guadagnano
Smooth/SmoothSetper il rendering delle linee curve eMarkerFillColor/MarkerBorderColorper colori dei marker espliciti; entrambi persistono attraverso salvataggio e apertura, e il renderer condiviso disegna i segmenti smussati come curve quadratiche e consuma i colori dei marker
Version 2.352.0
Added
- La formattazione dello spazio del grafico fa un round-trip:
RoundedCorners, i colori espliciti di sfondo e bordo del grafico e il colore di sfondo dell'area del tracciato persistono attraverso salvataggio e apertura, e il renderer condiviso dei grafici consuma i colori di sfondo e bordo invece di disegnare sempre bianco su grigio - Gli interruttori di protezione del grafico fanno un round-trip dietro un unico master:
ProtectionEnabledpiùProtectedChartObjects,ProtectedDataEditing,ProtectedFormatting,ProtectedSelectioneProtectedUserInterfaceemettono e analizzano l'elemento OOXMLprotection
Version 2.351.0
Changed
- I grafici a barre e a colonne nel renderer di paginazione condiviso seguono ora le opzioni di layout del gruppo di tracciato: GapWidth dimensiona il gruppo, Overlap allarga le barre e avvicina le barre vicine, e i raggruppamenti sovrapposti / sovrapposti in percentuale accumulano una barra di gruppo completo per categoria invece di disegnare le serie fianco a fianco
Version 2.350.0
Added
- La copia di range tra workbook rimappa ora ogni stile di cella per valore nei pool di font, riempimento, bordi, formati numerici, allineamento e protezione del workbook di destinazione, così
CopyRangeToeCloneRangeTotra due workbook aperti conservano la loro formattazione indipendentemente dall'ordine dei pool - I workbook XLS classici fanno fare un round-trip alle proprietà dei documenti integrate numeriche e di data:
CreatedDate,LastSavedDate,RevisionNumbereEditTimeMinutespersistono attraverso lo stream OLE SummaryInformation, con i valori zero saltati e una cancellazione completa che li rimuove
Version 2.349.0
Added
- I workbook XLS classici espongono lo stato di protezione delle revisioni del workbook condiviso dietro proprietà strutturate:
SharedRevisionProtectedeSharedRevisionPasswordHashfanno un round-trip, mentre i corpi di record grezzi catturati dai file analizzati hanno comunque la precedenza a meno che le proprietà siano scritte esplicitamente - Consapevolezza della crittografia dei report:
TXLSCompiledReportTemplate.CreateEncryptedapre direttamente un modello protetto da password, eRunToEncryptedFileesegue il report e scrive un risultato crittografato ECMA-376 in una sola chiamata
Version 2.348.0
Added
- Opzioni di incolla dagli appunti per entrambi i motori:
PasteFromClipboardaccetta le modalità solo valori (conserva i risultati in cache, salta formule, formati e unioni) e inserimento di righe / inserimento di colonne che spostano il contenuto esistente prima che il blocco si posizioni - I lettori in avanti segnalano il contenuto saltato: il lettore diretto, il cursore di righe e il lettore in avanti espongono
OnSkippedRecord, generato quando un riferimento di cella malformato viene saltato o una scansione del foglio BIFF si interrompe su record troncati o non corrispondenti
Version 2.347.0
Added
- Combinatori di modellazione delle tabelle dei report:
Filtertrasmette in streaming le righe corrispondenti in modo lazy,Sortesegue un ordinamento stabile multi-chiave, eDistinctconserva la prima riga per tupla di chiavi - Adattatori di sorgenti dati:
FromDataSetistantaneizza unTDataSetaperto in una tabella di report (i nomi dei campi diventano colonne, la posizione del dataset viene ripristinata), eFromObjectsmappa le proprietà published di liste e array di oggetti arbitrari in colonne - Band dei report bidirezionali:
RunBidirectionalpermette a ogni riga master di guidare le proprie colonne da una tabella figlia correlata, producendo layout di colonne irregolari dove le righe più corte lasciano vuoti i cloni extra PreprocessAndRunesegue un modello due volte: la prima passata riempie i valori ed esegue le direttive strutturali così il modello si adatta ai dati, la seconda passata ricompila il workbook rimodellato e riempie i segnaposto rimanenti
Version 2.346.0
Added
- I segnaposto dei report accettano un valore predefinito:
{{name;fallback}}scrive il testo di fallback quando la chiave è mancante o vuota - Le espressioni dei report guadagnano
dbvalue(table, row, field[, default])edbcount(table)per leggere qualsiasi tabella del contesto dati registrata per riga e colonna, piùtonumber(text)per la conversione da stringa a numero eref(rowOffset, colOffset)per riferimenti relativi che seguono le copie delle band; modelli, runner e band espongono una proprietàDataContext - Una cella nuda
{{=formula(...)}}scrive ora una formula viva nella cella invece di testo semplice, e le altre espressioni nude conservano il loro tipo valutato (i numeri restano numerici) - Nuove direttive strutturali dei report:
{{#imgsize zoom=150}}ridimensiona l'immagine ancorata alla cella della direttiva,{{#comment text}}allega un commento di cella,{{#html <b>bold</b>}}alimenta un frammento nel testo formattato, e{{#sheetvisible Sheet false}}/{{#deletesheet Sheet}}controllano visibilità e rimozione dei fogli di lavoro
Version 2.345.0
Added
- I workbook XLSX guadagnano una politica di ricalcolo al salvataggio:
RecalcBeforeSaveseleziona il comportamento manuale (predefinito), ricalcola se sporco o ricalcola sempre quando un file viene salvato RecalcNeededriporta se una cella di formula o una modifica catturata è attualmente sporca, eRecalcCellricalcola il workbook e restituisce il valore appena calcolato di una singola cella per foglio, riga e colonna
Version 2.344.0
Added
- I modelli di report supportano direttive strutturali nel testo delle celle:
{{#delete A2}}cancella il range con nome,{{#format fmt=0.00 bold fill=FFFF00}}applica formati numerici, grassetto, corsivo, font e colori di riempimento alla colonna sopra la cella della direttiva, e{{#aggregate sum A2:A99}}scrive formule in stile=SUM(A2:A99)— tutto eseguito dopo il riempimento dei segnaposto dei valori, con le celle delle direttive consumate in seguito e i verbi delle direttive sconosciuti ancora segnalati come diagnostici del modello
Version 2.343.0
Added
- Lo scrittore ZIP produce archivi ZIP64: le voci che raggiungono o superano i limiti di dimensione a 32 bit riservano un campo extra ZIP64 nel loro header locale con campi classici sentinella, i record della directory centrale emettono dimensioni e offset a 64 bit con un aumento della versione richiesta, e il record di fine directory centrale è preceduto dal record EOCD ZIP64 e dal suo localizzatore ogni volta che un campo classico satura
- I tetti di dimensione delle voci e degli archivi lato scrittura salgono rispettivamente a 16 GB e 64 GB; le protezioni di decompressione lato lettura restano invariate
Version 2.342.0
Added
- Le immagini incorporate portano metadati di accessibilità:
AltTexteAltTextTitlesu ogni immagine si serializzano come attributidescretitledel disegno e si ricaricano nel modello tipizzato per i workbook che non ripetono l'XML grezzo dell'ancoraggio
Changed
- Le parti di slicer e timeline fanno già un round-trip senza perdita attraverso il livello opaco del package (verificato end to end in questa versione); il contratto di round-trip ora è ancorato da un test di regressione che copre apertura e risalvataggio dei package con slicer
Version 2.341.0
Added
- I runner dei report possono eseguire l'autofit dell'output finito:
AutofitModeseleziona passate di righe, colonne o entrambe su ogni foglio dopo l'applicazione di tutte le destinazioni e prima della serializzazione, eAutofitAdjustmentaggiunge un margine opzionale sopra le dimensioni misurate - Le righe con testo a capo si dimensionano dal numero di righe misurate rispetto alla larghezza della colonna, così il testo multilinea delle celle prodotto dai modelli ingrandisce la riga come farebbe l'autofit di Excel stesso
Version 2.340.0
Added
- Le esportazioni PDF possono impostare la modalità iniziale del viewer — segnalibri, miniature, schermo intero, contenuto opzionale o allegati — tramite la voce
/PageModedel catalogo - Le esportazioni PDF possono definire un'azione di apertura che salta a una pagina scelta con un fattore di zoom esplicito o apre il pannello dei segnalibri al caricamento del documento
- I metadati XMP portano ora gli identificatori
DocumentIDeInstanceID, un eventoxmpMM:History, le date di modifica e dei metadati, e la dichiarazionedc:formatattesa dai validatori di archiviazione
Version 2.339.0
Added
- Una pipeline di stampa fisica: il nuovo
TXLSPrintDocumentstampa fogli di lavoro, workbook o tutti i fogli visibili attraverso il modello di paginazione condiviso con finestre di pagine, collazione delle copie, un titolo del documento ed eventi prima-di-nuova-pagina / dopo-generazione-pagina - L'anteprima del viewer di workbook guadagna modalità di zoom — adatta alla pagina, adatta alla larghezza o un fattore esplicito dal 25% al 400% — con zoom Ctrl+rotella, giro di pagine con la rotella e panoramica orizzontale quando la pagina ingrandita supera la finestra
Version 2.338.0
Added
- Il rendering dei grafici disegna l'asse dei valori: tacche ed etichette numeriche allineate a destra lungo il bordo sinistro, griglia principale quando attivata, scalaggio in unità di visualizzazione, orientamento invertito e limitazione logaritmica
- Le serie assegnate all'asse dei valori secondario si mappano sulla propria scala, così i grafici combinati conservano magnitudini primarie e secondarie indipendenti
- I grafici a bolle disegnano bolle scalate per area derivate dalla colonna della dimensione delle bolle invece di punti marker fissi
- I grafici in memoria risolvono i loro range di valori, categorie e bolle rispetto al foglio proprietario quando le cache sono vuote, così i grafici appena creati si disegnano in modo identico a quelli caricati
- Il modello dei grafici guadagna proprietà modificabili: dimensione del foro della ciambella, angolo della prima fetta, stile radar, tipo of-pie, posizione e modalità di divisione, dimensione del tracciato secondario e larghezza del gap, tutte persistenti attraverso salvataggio e caricamento
Fixed
- I grafici a categorie i cui punti portano valori ma nessuna categoria numerica non interrompono più il rendering con un segnaposto, che in precedenza sopprimeva tacche, griglia e output delle serie per ogni grafico a colonne, a barre e a linee
Version 2.337.0
Added
- L'output paginato può disegnare i commenti delle celle come elenco a fine documento tramite la nuova modalità
PrintCommentsdell'esportatore SVG e del modello di paginazione: indirizzo della cella, autore e testo compaiono sotto l'ultima riga di dati del foglio - Gli oggetti di disegno con nome si esportano come immagini PNG ai DPI e alla scala configurati tramite
ExportObjectAsPNG, con una controparteGetObjectSizedi sola misura che restituisce le dimensioni in punti dell'oggetto senza rendering - Gli ancoraggi delle forme di testo fuori dal range utilizzato ora estendono la superficie stampata come già facevano grafici e immagini
Changed
- Il renderer di paginazione mette in cache i font delle celle risolti per passata e memorizza le misurazioni di testo ripetute, eliminando le letture ridondanti del pool di font e le chiamate di misura GDI dai cicli di riduzione per adattamento e dal wrapping delle parole
Version 2.336.0
Added
- La rotazione del testo delle celle ora si disegna nell'output immagine di pagina, SVG, stampa e anteprima: gli angoli da 1 a 90 gradi antiorari e orari ruotano attorno al centro della cella e la forma impilata 255 emette una lettera per riga
- Le celle in apice e pedice si disegnano con una linea di base spostata e una dimensione del glifo ridotta invece di perdere il loro allineamento verticale
- Le sezioni di intestazione e piè di pagina rispettano i loro codici di formato di dimensione in punti
&nne colore&Kin ogni output guidato dalla paginazione - Le larghezze delle colonne nell'output paginato derivano dalla larghezza massima della cifra misurata del font Normal del workbook, così i workbook basati su font diversi da Calibri 11 paginano con confini di colonna accurati come Excel
- I fogli di lavoro con un colore griglia classico personalizzato disegnano le loro linee di griglia in quella voce della palette invece del grigio fisso predefinito
Version 2.335.0
Added
- Circa settanta funzioni classiche del foglio di calcolo ora si valutano oltre a essere analizzate: il gruppo matematica e trigonometria
ATAN2 ASIN ACOS SINH COSH TANH ASINH ACOSH ATANH EVEN ODD, il gruppo data e oraTIME HOUR MINUTE SECOND DATEVALUE TIMEVALUE DAYS360, il gruppo finanzaMIRR IRR IPMT PPMT DB,TRANSPOSE TYPE N ADDRESS ROMAN HYPERLINK MAXA MINA, e le grafie pre-2010 della famiglia distribuzioni e statistiche comeNORMSDIST TDIST CHIDIST FDIST POISSON QUARTILE PERCENTILE PERCENTRANK COVAR CHITEST GAMMALNche inoltrano alle implementazioni puntate che condividono le loro liste di argomenti
Fixed
- Le forme legacy a un argomento della CDF normale come
NORMSDISTcalcolavano un'approssimazione della funzione di errore con scala errata MIRRcapitalizzava i flussi di cassa positivi con un esponente di periodo spostato di uno, allontanando i risultati dai valori di Excel
Version 2.334.0
Added
- I segnaposto delle band dei report costituiti da un singolo campo di valore scrivono ora il tipo di dati grezzo nella cella di destinazione: i numeri restano numerici, le date restano celle di data e ricevono il formato data predefinito quando la cella è General, e i booleani conservano il loro tipo di cella, così i riferimenti SUM, di ordinamento e dei grafici a valle funzionano sui report generati
- Gli stili di tabella personalizzati guadagnano l'insieme completo di sezioni incluse le sezioni di subtotale pivot, sottotitolo, riga vuota e campo di pagina, nome, dimensione e corsivo del font per sezione, dimensione della striscia e bordi a quattro lati tramite
SetSectionEx, più i flagpivot/table, le proprietà del workbookDefaultTableStyleName/DefaultPivotStyleName, e un round-trip completo lato caricamento di stili, sezioni e attributi dxf - L'apertura di un workbook XLSX crittografato senza password ora genera
TXLSXWorkbook.OnPasswordcon lo stesso contratto di riprova del motore classico, permettendo prompt di password nella GUI senza sapere in anticipo che il file è crittografato - Il salvataggio dei workbook BIFF5 classici con password ora applica l'offuscamento XOR, e i workbook BIFF8 possono selezionare lo standard RC4 tramite
EncryptionType, completando la matrice di crittografia classica accanto al predefinito RC4 CryptoAPI esistente - Il rendering del testo dei fogli di lavoro nell'output immagine di pagina, SVG, stampa e anteprima ora rispetta l'allineamento verticale e il testo a capo WrapText con interruzione di riga greedy, invece di tagliare le celle con testo a capo su una singola riga centrata
Fixed
- Le celle di errore ora mostrano il loro letterale di errore Excel come #DIV/0! o #REF! in ogni percorso di rendering invece di un testo vuoto indefinito
- Le sezioni degli stili di tabella personalizzati vengono scritte nella forma di schema
tableStyleElementcosì Excel riconosce lo stile, e il colore del font di una sezione non scarta più la sua impostazione in grassetto - Gli snapshot delle band dei report conservano ogni valore delle colonne legate quando una band cresce oltre la sua capacità iniziale
Version 2.333.0
Added
TXLSPDFSignature.CertificationPolicypuò creare una firma di certificazione DocMDP che non permette cambiamenti, permette compilazione e firma di moduli, o compilazione, firma e annotazioni dei moduli; i cataloghi certificati referenziano la firma tramite/Perms, l'output certificato ordinario usa PDF 1.5, e la certificazione PDF/A-1 incompatibile viene rifiutata prima che lo stream di destinazione venga modificato
Version 2.332.0
Changed
- Il PDF etichettato automatico ora emette una struttura di tabella completa con righe, celle di intestazione e dati semantiche, identificatori di contenuto contrassegnato densi per pagina, mappature esatte dell'albero dei genitori, estensioni di riga e colonna delle celle unite e isolamento degli artefatti per la decorazione delle pagine, grafici, immagini, intestazioni e piè di pagina
Fixed
- Il riutilizzo di un esportatore PDF ora cancella gli slot degli oggetti binari tra i documenti, impedendo che un profilo ICC, un'immagine o un altro stream di un'esportazione precedente sostituisca un oggetto appena allocato quando la numerazione degli oggetti cambia
Version 2.331.0
Added
- Una facciata unificata dei disegni XLSX espone l'ordine misto di immagini, grafici, caselle di testo, ancoraggi preservati e gruppi, con operazioni di avanzamento, arretramento, portare in primo piano, portare in secondo piano, raggruppamento consapevole delle trasformazioni e separazione dopo salvataggio e riapertura che conservano le relazioni dei disegni
- Gli stili con nome supportano parti di formato collegate automatiche o esplicite preservando le sostituzioni locali, e tutti i 60 stili di tabella integrati chiari, medi e scuri vengono risolti tramite i percorsi di formattazione condivisi HTML, PDF, immagine, anteprima e visualizzatore
TXLSPDFBookmarksupporta segnalibri Unicode gerarchici, relazioni tra fratelli e figli, colori, titoli in grassetto o corsivo e discendenti espansi o compressiTXLSPageImageExporter.ExportAllAsTiffscrive le pagine selezionate in uno stream o file come un unico TIFF multipagina compresso LZW con avanzamento, annullamento e sostituzione atomica del file- Le aperture XLS classiche possono fermarsi dopo i metadati globali o cercare direttamente i fogli di lavoro selezionati tramite offset
BOUNDSHEETvalidati, incluso il riposizionamento dello stream crittografato TXLSFormatSnapshotcattura un formato di cella classico completo indipendentemente dal suo workbook di origine eIXLSRange.ApplyFormatlo applica a range di celle, righe o colonne- Le scritture bulk tipizzate XLSX compatibili in ordine per righe usano l'archiviazione RLE compattata, con statistiche pubbliche di celle e byte compattati oltre alla materializzazione trasparente una tantum per handle di oggetti stabili
Changed
- Le celle XLSX vuote solo-stile condividono payload con conteggio dei riferimenti con modifiche locali copy-on-write, compattazione automatica tra formattazione bulk, aggiornamenti di stili con nome, copia, ordinamento, patch di formato, percorsi di salvataggio e caricamento e byte di payload evitati misurabili
- Gli array dinamici vengono trasmessi direttamente negli aggregati scalari, le ricerche esatte ripetute riutilizzano cache di intervalli incrementali tipizzate e i token di formula immutabili senza stato vengono condivisi tra le compilazioni
- Gli archi ellittici usano la suddivisione adattiva di Bezier cubici guidata dalla planarità condivisa dall'output PDF, SVG e bitmap, aumentando la precisione solo dove la scala o l'eccentricità lo richiedono
- L'output del pacchetto XLSX ora stabilizza stringhe condivise, collegamenti ipertestuali, relazioni e ordinamento delle parti, così la costruzione inversa produce pacchetti deterministici byte-identici
- Il lettore in avanti unificato XLS, XLSX, CSV e TSV mantiene la memoria limitata; le continuazioni di stringhe condivise BIFF8 traboccano oltre una soglia configurabile conservando le protezioni per proiezione, foglio selezionato, crittografia e input malformato
Fixed
- Il collegamento dei pacchetti C++Builder Win64 non emette più vtable duplicate di elenchi di oggetti generici Delphi dalle unità di confronto dei workbook e di controllo dell'importazione
Version 2.330.0
Added
TXLSXWorksheet.Subtotalinserisce righe di subtotali raggruppate, una riga di totale generale configurabile, formule, formattazione visibile ereditata e livelli di struttura compatibili con Excel per intervalli di dati ordinatiGetCellVisibleFormatrisolve la formattazione del foglio di lavoro, di riga, di colonna, di sovrapposizione del range e della cella esplicita senza materializzare una cella vuotaCheckDataValidationverifica un valore candidato rispetto alle regole che coprono una cella e può impegnarlo atomicamente solo quando è valido
Changed
- I memo di scansione delle ricerche usano chiavi binarie esatte compatte e una singola ricerca del payload per hit di cache, riducendo l'allocazione del ricalcolo e il lavoro sulla tabella hash senza modificare i confronti di ricerca
- L'esportazione CSV a larghezza fissa riempie ogni campo in un'unica operazione, mantenendo il tempo di riempimento lineare rispetto alla larghezza di output configurata
Fixed
- Le scansioni all'indietro di
ReplaceTextInora invocano i callback di sostituzione nell'ordine di scansione inverso richiesto - Le celle stilizzate senza valore o formula non bloccano più l'overflow del testo adiacente nel rendering SVG, immagine e anteprima
- L'output numerico XLS classico normalizza lo zero negativo oltre ai valori non finiti e subnormali prima di scrivere i record numerici BIFF
Version 2.329.0
Added
A1ToR1C1converte le formule in stile A1 in notazione R1C1 (offset relativi, forme assolute con$, intervalli e andate e ritorni tramiteR1C1ToA1), completando entrambe le direzioni della conversione dello stile di riferimento
Changed
- Il memo di ricerca del ricalcolo salta i vettori di scansione con meno di cinque celle in
VLOOKUP,XLOOKUP/XMATCHeMATCH, dove una scansione grezza è più economica dell'andata e ritorno del dizionario
Version 2.328.0
Added
- Il renderer di pagina condiviso dietro l'output SVG, immagine e anteprima ora dipinge gli stili delle celle XLSX: riempimenti pieni (con alfa), font e colori per cella, allineamento orizzontale con l'impostazione predefinita numerica a destra di Excel, unione dei bordi in stile Excel dove vince il bordo condiviso più pesante, adattamento al contenuto che ridimensiona il font alla colonna e overflow del testo lungo nelle celle vuote adiacenti consecutive
Version 2.327.0
Added
- Il caricatore CSV/TSV guadagna direttive di importazione per colonna (
cctText,cctNumber,cctDate,cctBoolean,cctSkip) che rispecchiano la procedura guidata di importazione testo di Excel, così singole colonne possono essere forzate a testo per mantenere gli zeri iniziali, convertite in un tipo oppure escluse dall'importazione - Importazione di testo a larghezza fissa: l'assegnazione delle larghezze dei campi fa passare il caricatore dall'analisi tramite separatori al taglio per posizione di carattere, e il salvatore può emettere colonne a larghezza fissa riempite con spazi e troncamento
Version 2.326.0
Added
- La ricerca nei fogli di lavoro XLSX guadagna i metodi a finestra
FindTextIneReplaceTextInche limitano la scansione a un intervallo di celle rettangolare, più un flag di ordine di scansione per colonne che rispecchia la modalità Ricerca: Per colonne della finestra di dialogo Trova e sostituisci di Excel; la scansione all'indietro ora accetta un ancoraggio a zero per iniziare dall'angolo inferiore destro - Il salvataggio ora si protegge dalle formule più lunghe del limite di 8192 caratteri di Excel, fallendo rapidamente con la cella problematica identificata invece di scrivere una cartella di lavoro che Excel aprirebbe in modalità di riparazione
Fixed
- I valori numerici di celle non finiti (NaN e infinito positivo o negativo) non possono più far trapelare token non analizzabili nelle parti XLSX salvate; ora vengono serializzati come celle di errore
#NUM!e i double subnormali vengono azzerati sia nel writer XLSX sia in quello BIFF8, in linea con ciò che Excel può archiviare e visualizzare
Version 2.325.0
Added
- Le API di formato cartella di lavoro ora includono mappe XML e associazioni di schema modificabili, più finestre di cartella di lavoro ordinate, selezioni multi-area e per riquadro, e ispezione senza perdita dei token di formula di proprietà del chiamante, ricostruzione, sostituzione di riferimenti e riscrittura atomica per XLS e XLSX
- L'elaborazione delle cartelle di lavoro ora include ordinamento stabile orizzontale o verticale con comparatori personalizzati e spostamento esplicito delle formule, conversione di stili e formule da BIFF2 a BIFF4, una facciata unica di lettura anticipata per XLS, XLSX, CSV e TSV, viste personalizzate tipizzate e sottomodelli di connessione OLAP, tabella web, testo fisso e parametri modificabili
- Il calcolo e l'ispezione ora includono diagnostiche strutturate per funzioni mancanti, riferimenti esterni e dipendenze circolari, registri UDF globali e locali alla cartella di lavoro, ordinamento visivo bidirezionale Unicode, strategie AutoFit per celle unite, preservazione tipizzata dei fogli macro di Excel 4 con scansione dei comandi e le funzioni
ISOMITTED,ARRAYTOTEXT,VALUETOTEXT,PDURATIONeRRI - La generazione di report compilati ora copre segnaposto dell'intera cartella di lavoro, bande con nome di riga, colonna e tabulazione incrociata, bande espandibili di tabelle Excel, un'unica astrazione di tabella e cursore, indici esatti delle relazioni a chiave composta, contesti di dati differiti, combinatori di tabelle in streaming, provider di query con nome controllati, bande di foglio per record, fogli di continuazione per overflow e inclusioni ricorsive immutabili
- La creazione di report ora include condizioni compilate, ricerca, espressioni regolari, formule e formati dinamici, campi immagine, ricollegamento di serie di grafici, esecutori riutilizzabili con output su flusso o file atomico, clonazione di intervalli sensibile alle dipendenze, pianificazione della paginazione con piè di pagina fisso ed equilibrata, diagnostiche indirizzate, esecuzione rigorosa, controllo dei modelli e migrazione sicura dei segnaposto legacy supportati
- L'output PDF ora include alberi di struttura con tag automatici, campi firmati dall'host visibili o invisibili, profili di conformità espliciti PDF/A-1, PDF/A-2 e PDF/A-3 ai livelli a e b, progresso e annullamento atomici, fallback dei font con cache sensibile allo stile, composizione contestuale di testo complesso, gradienti nativi a più arresti, alfa per arresto, pattern di riempimento delle celle, ombre e annotazioni di commenti posizionate
- Il rendering condiviso ora include SVG nativo di intervalli, pagine, cartelle di lavoro e oggetti con nome, pagine PNG e JPEG incrementali, geometria di layout neutrale rispetto al backend, grafici e forme vettoriali inline in HTML, sessioni HTML parziali con stato e CSS condiviso, effetti delle immagini renderizzati, geometria vettoriale di forme predefinite e WordArt, dettagli avanzati di grafici scientifici e finanziari e layout deterministico delle etichette dati e delle linee guida
Changed
- Tutti i 55 elementi di capacità sottoposti a verifica da F01 a F18, da R01 a R19 e da V01 a V18 ora hanno implementazioni supportate complete con confini espliciti di proprietà, sicurezza del formato, annullamento e output
- I modelli di report di grandi dimensioni compilano i destinatari degli oggetti e le espressioni una sola volta, materializzano solo i campi degli assi collegati, consumano i cursori dei dati una sola volta, applicano hash alle chiavi di relazione e di join, congelano i prefissi delle raccolte di origine per la clonazione disgiunta ripetuta ed evitano di riscansionare gli oggetti generati della cartella di lavoro
- I percorsi di rendering condividono paginazione, geometria, posizionamento degli oggetti, stato degli effetti e cache delle risorse del documento, mentre gli output PDF, SVG, HTML, bitmap, metafile, anteprima e stampa conservano solo i loro codificatori specifici del formato
Fixed
- Gli eventi di scrittura delle celle XLSX ora serializzano i loro valori di sostituzione effettivi senza conservare esecuzioni di testo ricco obsolete, i token dei nomi esterni BIFF preservano l'indice completo del nome a 4 byte e le origini di connessione di livello superiore fanno andate e ritorni in modo indipendente dalle origini di importazione testo mantenendo il fallback dell'origine legacy
- Il significato legacy di stili e formule BIFF, il rimappaggio di finestre della cartella di lavoro e selezioni, i riferimenti di formula assoluti misti, la proprietà dei token di formula e la riscrittura di token non validi ora mantengono un comportamento deterministico senza perdite durante caricamento, modifica e salvataggio
- L'espansione dei report ora rifiuta conflitti deterministici di tabelle, filtri, nomi, sovrapposizioni, oggetti parziali, griglie e basati su query prima delle scritture strutturali, preserva la cardinalità delle tabelle a zero righe dove rappresentabile, mantiene le chiavi di join intere esatte oltre 2^53 e segnala conteggi applicati deterministici dopo annullamento o errore
- L'esportazione PDF e vettoriale ora preserva le mappature Unicode dei font di fallback, i cluster di grafemi e di composizione, le restrizioni dei profili archivistici, l'alfa dei gradienti, gli effetti delle immagini, le decorazioni dei grafici, il posizionamento denso delle etichette e l'atomicità dell'output senza crescita delle risorse per contenuti ripetuti
Version 2.324.0
Added
- L'ispezione senza perdita dei token di formula e la riscrittura protetta per XLS e XLSX tramite
TXLSFormulaTokenStream,ParseFormulaTokens,GetFormulaTokens,FormulaTokensToTexteSetFormulaTokensespongono tipi e classi di token RPN, token BIFF grezzi e payload aggiuntivi, flag di riferimento indipendenti, clonazione, sostituzione di riferimenti, provenienza del contesto e riutilizzo BIFF compatibile esatto, rifiutando al contempo i flussi malformati, incompatibili, di proprietà di array o non supportati prima della mutazione delle celle - Le bande di report di tabelle Excel espandibili tramite
TXLSCompiledTableReportBandusano un'unica istantanea di cursore delimitata per espandere una singola riga del modello dati preservando intestazioni, totali, intervalli di tabella e di AutoFilter, stato di filtro e ordinamento, metadati delle colonne, formule calcolate e di totale, stili, riferimenti strutturati e oggetti dipendenti del foglio di lavoro; i risultati rappresentabili a zero righe rimuovono la riga dati del modello, mentre i layout basati su query, in conflitto, non validi o in overflow falliscono prima delle scritture - Le catene di fallback dei font PDF sensibili allo stile tramite
SetFontFallbackChain,AddFontFallbackeClearFontFallbackChainsrisolvono i livelli di famiglia di origine e stile in base alla copertura dei glifi, mettono in cache i volti e le selezioni caricati, preservano gli scalari supplementari e i cluster di grafemi tra esecuzioni, assegnano CID distinti alle sequenze Unicode di glifi condivisi, incorporano volti TTC autonomi e rifiutano atomicamente l'output PDF/A quando non è disponibile alcun glifo incorporato
Version 2.323.0
Added
- Modelli di report riutilizzabili per cartelle di lavoro tramite
TXLSCompiledReportTemplate: i segnaposto vengono compilati una sola volta e possono essere applicati ripetutamente senza riscansionare la cartella di lavoro, usando una ricerca di valori ordinata e frammenti di testo pre-divisi su celle, testo ricco, commenti, commenti in thread, collegamenti ipertestuali, caselle di testo, titoli di grafici e nomi di serie, intestazioni e piè di pagina, nomi di fogli di lavoro, nomi definiti e proprietà del documento - Associazione dei dati di report tramite
IXLSReportTable,IXLSReportCursor, caricamento differito diIXLSReportTableProvider, tabelle in memoria ad accesso casuale eTXLSReportRelationIndex, che costruisce un hash figlio a chiave composta una sola volta e conserva i numeri di riga invece di copiare i payload delle righe per la ricerca ripetuta master-dettaglio - Il calcolo delle formule ora valuta
PDURATIONper il numero di periodi necessari a raggiungere un valore di investimento obiettivo eRRIper il tasso di crescita periodico equivalente, inclusi i limiti di errore numerico compatibili con Excel e il prefisso di memorizzazione OOXML_xlfn.richiesto - Il calcolo delle formule ora valuta
ISOMITTED,ARRAYTOTEXTeVALUETOTEXT, inclusi un valore dedicato di argomento omesso che rimane distinto da una cella vuota, i viaggi di andata e ritorno dei token di argomento mancante BIFF, gli array a una e due dimensioni, l'escape rigoroso delle stringhe, i separatori localizzati, le regole di conversione degli errori e i prefissi delle funzioni future OOXML - Il preflight strutturato delle formule tramite
TXLSXWorkbook.AnalyzeFormulaIssuessegnala funzioni mancanti, riferimenti esterni a cartelle di lavoro e componenti esatti delle dipendenze circolari con coordinate delle celle ed elenchi di membri delimitati, mentre le stringhe letterali e i riferimenti strutturati locali sono esclusi dalle corrispondenze false - La clonazione di intervalli sensibile alle dipendenze tramite
TXLSXWorksheet.CloneRangeTocopia celle selezionate, intervalli uniti, formati condizionali, convalide dei dati, collegamenti ipertestuali, commenti, immagini e grafici in un'unica operazione, riposiziona gli intervalli e le ancore applicati e traduce i payload delle formule con semantica mista di riferimenti relativi e assoluti; le bande di report usano lo stesso percorso per gli oggetti dipendenti - Progresso e annullamento dell'esportazione PDF tramite
TXLSPDFExport.OnProgress,OnProgressExeCancel: le notifiche di inizio, pagina e fine aggiungono un overhead di callback trascurabile, l'annullamento viene verificato tra i passaggi di righe e gli oggetti di pagina, i flussi annullati non ricevono alcun PDF parziale e l'esportatore rimane riutilizzabile - La diagnostica dei report compilati tramite
TXLSCompiledReportTemplate.Analyze, l'esecuzione rigorosa eWriteDiagnosticsidentificano valori mancanti, segnaposto vuoti e segnaposto non chiusi con il tipo di destinazione più le coordinate di foglio di lavoro e cella prima della mutazione, oppure scrivono gli stessi risultati in un foglio di lavoro di diagnostica - L'esecuzione riutilizzabile dei report tramite
TXLSCompiledReportRunnerfornisce progresso di inizio, destinazione e fine con stati completato, annullato e non riuscito, supporta l'annullamento prima della prima scrittura o tra destinazioni compilate, segnala il conteggio applicato esatto e rimane riutilizzabile dopo annullamento o eccezioni senza riscansionare la cartella di lavoro - Le strategie AutoFit per celle unite per XLS classico e XLSX consentono alla prima o all'ultima riga o colonna di assorbire la crescita richiesta, oppure di distribuirla uniformemente sull'intervallo unito, preservando il comportamento legacy di overload, gli stati nascosti, i limiti espliciti e le chiamate ripetute deterministiche
- Le annotazioni opzionali dei commenti PDF tramite
TXLSPDFExport.ExportCommentsAsAnnotationsposizionano il testo Unicode dell'autore e del commento sul rettangolo della cella di origine preservando la pagina esistente dei commenti in fondo; gli indici dei commenti per foglio vengono costruiti in circa O(C log C) tempo e supportano la ricerca di celle O(log C) - I registri gerarchici di funzioni definite dall'utente consentono alle cartelle di lavoro XLS e XLSX di condividere gestori a livello di processo mantenendo override locali alla cartella di lavoro, sostituzione, rimozione, pulizia e il fallback esistente agli eventi della cartella di lavoro; la ricerca media è O(1), le corrispondenze locali mascherano i nomi globali e i gestori vengono eseguiti fuori dai blocchi del registro per un ricalcolo parallelo sicuro e l'auto-rimozione
- I combinatori differiti di tabelle di report tramite
TXLSReportTableFactoryforniscono righe iniziali, proiezione delle colonne, conteggio delle righe, definizioni di aggregati minimo e multipli, unione mappata per schema, partizioni di split contigue e join hash interni o sinistri che preservano i duplicati senza materializzare i payload completi delle righe intermedie - L'esportazione incrementale di pagine PNG e JPEG tramite
TXLSPageImageExportersupporta intervalli, fogli di lavoro e cartelle di lavoro XLS e XLSX con selezione delle pagine, DPI, scala, qualità JPEG, progresso, annullamento e sessioni riutilizzabili; un modello di paginazione viene costruito per sessione e la memoria delle bitmap viene rilasciata dopo ogni pagina - Le finestre multiple della cartella di lavoro XLSX tramite
TXLSXWorkbook.WorkbookViewspreservano schede attive indipendenti, primi fogli visibili, visibilità, stato minimizzato, geometria, visualizzazione delle schede, scorrimento, attributi sconosciuti, estensioni e associazioni delle viste dei fogli di lavoro correttamente rimappate, mentre le proprietà esistenti a finestra singola continuano a riferirsi alla prima vista - Le bande di report con nome di riga, colonna e tabulazione incrociata tramite
TXLSCompiledReportBandespandono strutturalmente un modello a nome definito da istantanee di dati delimitate in un unico passaggio, preservano formule e oggetti dipendenti del foglio di lavoro, dispongono i metadati espliciti di righe e colonne senza creare valori predefiniti a dimensione zero e riutilizzano i confini fissi delle raccolte di origine così che la clonazione ripetuta sullo stesso foglio non riscansiona i payload generati - L'esportazione PDF ora scrive gradienti assiali o radiali a due o più arresti come sfumature PDF native, riutilizza risorse identiche di funzione, sfumatura e trasparenza, ritaglia ogni riempimento alla sua cella e applica un alfa del gradiente solido o uniforme senza la precedente approssimazione a rettangoli a bande
Fixed
- Le sostituzioni personalizzate di larghezza e altezza del foglio in punti ora partecipano al calcolo della banda di paginazione e all'oggetto di pagina finale, così che le interruzioni di pagina e le dimensioni renderizzate usino la stessa area disponibile
Version 2.322.0
Added
- Il calcolo delle formule ora valuta le funzioni di Bessel di prima specie
BESSELJ(oscillante) eBESSELI(modificata), calcolate tramite la serie di potenze con ricorrenza dei termini per la stabilità numerica sull'intervallo pratico degli argomenti
Version 2.321.0
Fixed
- L'esportazione RTF di XLSX ora costruisce una tabella dei font reale invece di codificare Calibri: la pre-scansione raccoglie ogni nome di font di cella distinto, il
\fonttblelenca ciascuno con il proprio indice\fNe il testo di ogni cella’s fa riferimento al suo font effettivo — le cartelle di lavoro stilizzate in Times New Roman, Courier New o qualsiasi altro font non vengono più rimpaginate visivamente in Calibri quando vengono aperte in Word o WordPad
Version 2.320.0
Fixed
- L'esportazione PDF ora renderizza la rotazione del testo sul percorso del motore XLS classico: le celle con orientamento di 90 o 270 gradi disegnano il loro testo verticalmente tramite una matrice di testo PDF che ruota attorno al centro della cella, corrispondendo al comportamento esistente del percorso XLSX; in precedenza le intestazioni verticali e le etichette ruotate venivano renderizzate orizzontalmente nei PDF prodotti da cartelle di lavoro
.xls
Version 2.319.0
Added
- Il calcolo delle formule ora valuta i combinatori di array dipendenti da LAMBDA di Excel 365:
MAP(trasformazione elemento per elemento),REDUCE(riduzione a un singolo valore),SCAN(riduzione che riversa ogni passaggio intermedio),MAKEARRAY(costruzione da indici di riga e colonna),BYROW(aggregato per righe che riversa una colonna) eBYCOL(aggregato per colonne che riversa una riga), completando la famiglia di programmazione funzionale di LAMBDA insieme al supporto esistente diLAMBDAeLET
Version 2.318.0
Added
- Il calcolo delle formule ora valuta le funzioni finanziarie di obbligazioni e titoli di Stato:
COUPDAYBS,COUPDAYS,COUPDAYSNC,COUPNCD,COUPPCD,COUPNUM(primitive di conteggio dei giorni di cedola),PRICE/YIELD(prezzaggio standard delle obbligazioni con risolutore del rendimento per bisezione),PRICEDISC/YIELDDISC(titoli con sconto),PRICEMAT/YIELDMAT(basati sulla scadenza),DURATION/MDURATION(Macaulay e modificata),TBILLEQ/TBILLPRICE/TBILLYIELD(buoni del tesoro),DISC/INTRATE/RECEIVED(sconto e interesse),ACCRINTM(interessi maturati alla scadenza),DOLLARDE/DOLLARFR(conversione di dollari frazionari),EFFECT/NOMINAL(tassi effettivo e nominale),CUMIPMT/CUMPRINC(interessi e capitale cumulativi),FVSCHEDULE(valore futuro a tasso variabile) eAMORDEGRC/AMORLINC(ammortamento francese); tutte condividono un motore nidificato autonomo delle date di cedola con le cinque basi di conteggio dei giorni standard
Version 2.317.0
Added
- Il caricamento di cartelle di lavoro crittografate ora accetta file Agile Encryption che dichiarano l'algoritmo di hash SHA-256 (prodotti da alcuni writer di terze parti): la derivazione della chiave dalla password, il ciclo di iterazioni, il verificatore della password e gli IV e l'HMAC di integrità dei dati chiave/valore seguono tutti l'hash dichiarato, mentre i file che dichiarano hash non corrispondenti tra i dati della chiave e il crittografo della chiave vengono ancora rifiutati; il salvataggio continua a scrivere la variante SHA-512 predefinita di Excel’s
Version 2.316.0
Added
SortRangepreserva le formule su entrambi i motori di cartella di lavoro: le celle con formula viaggiano con le loro righe e i loro riferimenti relativi vengono ri-ancorati con la semantica di ordinamento di Excel (le parti assolute con $ rimangono, i riferimenti spostati fuori dalla griglia vengono ancorati in posizione), così le tabelle ordinate continuano a calcolare invece di ridursi a valori- Immagini di sfondo dei fogli:
SetBackgroundImagedispone un'immagine a mosaico dietro le celle di un foglio di lavoro XLSX (solo visualizzazione, come Excel), eseguendo il viaggio di andata e ritorno tramite l'elementopicturedel foglio di lavoro, la sua relazione multimediale e i tipi di contenuto del pacchetto
Fixed
- Il ricalcolo di una formula aritmetica che fa riferimento a una cella vuota mai toccata non termina più con un errore di conversione — gli operandi vuoti contribuiscono con 0 come in Excel
Version 2.315.0
Added
CopyToClipboardpubblica il formato nativo degli appunti Biff8 insieme a testo e HTML su entrambi i motori di cartella di lavoro, così gli intervalli incollati in Excel o in altre cartelle di lavoro HotXLS trasportano valori, formule, formati numerici, font, riempimenti, bordi, allineamento e celle unite invece di testo semplicePasteFromClipboardpreferisce il payload Biff8 quando presente: il testo incollato da Excel conserva i suoi valori originali senza un nuovo parsing di date e numeri dipendente dalle impostazioni locali, le formule ri-ancorano i loro riferimenti relativi alla destinazione dell'incolla e le aree unite vengono ricostruite nella destinazione; entrambi i motori incollano anche i blocchi dell'altro con formattazione completa
Changed
- Le formule incollate in Excel arrivano come valori calcolati (una limitazione del parsing Biff8 degli appunti di terze parti di Excel); tutto il resto — testo, numeri con formati, riempimenti, bordi e unioni — viene incollato senza perdite in Excel, e le formule sopravvivono completamente nelle direzioni da Excel a HotXLS e da HotXLS a HotXLS
Version 2.314.0
Added
- Oggetti fotocamera nei fogli di lavoro XLSX:
AddCameraposiziona un'immagine di istantanea live collegata a un intervallo di celle — l'immagine collegata dello strumento fotocamera di Excel — con l'associazione dell'intervallo scritta nell'estensione di disegno documentata e un'immagine segnaposto dimensionata sull'ancora; gli oggetti fotocamera creati da Excel vengono riaperti con l'associazione dell'intervallo preservata
Version 2.313.0
Added
- Patch sul posto dei fogli di lavoro per i pacchetti XLSX:
BeginPatchsul writer in streaming apre una cartella di lavoro esistente e riscrive esattamente un foglio di lavoro — ogni altra parte (stili, disegni, grafici, tabelle pivot, parti personalizzate) viene copiata con i suoi byte compressi verbatim, senza decomprimere o riscrivere nulla, così un modello di grandi dimensioni ottiene il suo foglio dati aggiornato in una frazione del tempo di una ricostruzione completa - La modalità patch può anche aggiungere un nuovo foglio di lavoro: il foglio viene registrato nell'elenco delle parti della cartella di lavoro, nelle relazioni e nei tipi di contenuto con una numerazione che non entra mai in collisione con le parti esistenti, seguendo la convenzione di relazione strict o transitoria del pacchetto stesso
- I pacchetti patchati eliminano automaticamente la catena di calcolo obsoleta (Excel la ricostruisce al caricamento), e le funzionalità che richiederebbero nuove parti del pacchetto (tabelle, grafici, immagini, commenti, nomi definiti) segnalano un errore chiaro invece di scrivere un pacchetto non valido
Version 2.312.0
Added
- Output Open XML strict: impostando
StrictOOXMLsu una cartella di lavoro XLSX il pacchetto viene salvato in conformità strict ISO/IEC 29500 — ogni dichiarazione di namespace e tipo di relazione passa dai vocabolari transizionali a quelli strictpurl.oclc.orgsu fogli di lavoro, stringhe condivise, stili, tema, disegni, grafici, commenti, proprietà del documento e parti preservate, mentre i tipi di contenuto, i nomi delle parti e i vocabolari VML restano come li condividono entrambe le classi di conformità - La lettura di cartelle di lavoro in conformità strict ora è completa: i tipi di relazione scritti in forma strict si risolvono verso le stesse destinazioni delle loro controparti transizionali, completando l'accettazione degli elementi-namespace strict così i file salvati in modalità "Strict Open XML Spreadsheet" di Excel si aprono come qualsiasi altra cartella di lavoro
- Il salvataggio con output strict abilitato segnala un errore chiaro per le funzionalità che esistono solo come estensioni Microsoft (progetti VBA, controlli di modulo, commenti in thread, metadati di array dinamici) invece di scrivere un pacchetto che non sarebbe valido
Fixed
- Le proprietà del documento personalizzate dichiaravano un namespace value-types scritto male, che poteva far fallire la convalida della parte delle proprietà negli strumenti esterni
Version 2.311.0
Added
- La lettura di una cartella di lavoro XLS preserva i record di foglio di lavoro non riconosciuti: qualsiasi record che il parser tipizzato non modella viene catturato verbatim e riprodotto al salvataggio, così i file con record specifici del fornitore o di specifiche più recenti viaggiano attraverso HotXLS senza perderli
Version 2.310.0
Added
- Forme a geometria predefinita nei fogli di lavoro XLSX:
AddPresetShapescrive uno qualsiasi dei 187 token predefiniti OOXMLST_ShapeType(rightArrow,flowChartDecision,star5, …) nel<a:prstGeom>del disegno verbatim, e la proprietàPrstTokenconsente alle forme esistenti di cambiare geometria — i token viaggiano attraverso salvataggio e riapertura
Version 2.309.0
Added
- Elaborazione dei modelli nei fogli di lavoro:
ApplyTemplatesostituisce i segnaposto{{key}}in tutte le celle — i valori mantengono i loro tipi nativi, i segnaposto di formula vengono sostituiti prima dell'analisi — eFillTemplateBandclona un blocco di modello una volta per record con traduzione delle righe di formula per clone, clonazione degli intervalli uniti e un campo#skipper i condizionali a livello di riga, trasformando qualsiasi foglio creato a mano in un generatore di report guidato dai dati
Version 2.308.0
Added
- L'esportazione PDF può allegare file:
AddAttachmenttrasporta i documenti grezzi nel PDF esportato come voci/EmbeddedFiles(specifica del file, flusso incorporato con sottotipo MIME opzionale e albero dei nomi del catalogo), così i report vengono distribuiti insieme ai loro dati di supporto in un unico file autonomo
Changed
- La lettura di una cartella di lavoro XLS con una parola di versione BIFF non riconosciuta non rifiuta più l'intero flusso: il lettore ripiega sul layout BIFF8 così i file provenienti da writer che emettono numeri di versione insoliti vengono comunque caricati quando i loro record vengono analizzati
Version 2.307.0
Added
- Gestione centralizzata dei file temporanei: ogni file temporaneo creato dalla libreria viene registrato e ripulito, così un'esportazione interrotta o un'eccezione tra creazione ed eliminazione non lascia più file temporanei orfani
VerifyEncryptedSaveriapre un contenitore crittografato appena scritto attraverso l'intera pipeline di decrittazione e fa fallire il salvataggio quando la password non riesce a sbloccarlo — i contenitori danneggiati emergono immediatamente invece che alla successiva apertura da parte dell'utente- L'esportazione di dataset genera un evento
OnExportLimitquando entra in gioco la suddivisione delle righe, e i limiti della griglia della cartella di lavoro per versione di formato sono esposti come costanti (65536×256 per BIFF8, 1048576×16384 per i formati 2007+) per la negoziazione delle capacità
Version 2.306.0
Added
- I fogli di lavoro XLSX acquisiscono la creazione di controlli di modulo:
AddFormButton,AddFormCheckBox,AddFormRadioButton,AddFormComboBoxeAddFormListBoxscrivono controlli pulsante / casella di controllo / radio / elenco a discesa / elenco con didascalie, celle collegate, stato selezionato e associazione di macro — il percorso di salvataggio emette le forme VML, le partictrlPropsper controllo, le loro relazioni e le voci dei tipi di contenuto, e i file con controlli fanno viaggiare le loro parti verbatim alla riapertura
Version 2.305.0
Added
- L'esportazione PDF acquisisce una modalità
UsePDFAopzionale che produce documenti identificati PDF/A-2b: il profilo sRGB IEC61966-2.1 viene incorporato come intent di output GTS_PDFA1, i metadati XMP trasportano l'identificazionepdfaiddi parte/conformità e l'intestazione annuncia PDF 1.7 — abbinala a un font TrueType incorporato (UnicodeFontFileo al font installato selezionato automaticamente) per un output archiviabile
Version 2.304.0
Added
- Valutazione live tra cartelle di lavoro:
RegisterExternalWorkbookassocia un oggetto cartella di lavoro a un nome di libro così formule come[Book.xlsx]Sheet!A1vengono compilate (il prefisso[Book]Sheet!Refora viene analizzato come un vero riferimento esterno) e leggono lo stato corrente dell'oggetto registrato a ogni ricalcolo; la rimozione della registrazione elimina il collegamento live e ripiega sulla cache dei collegamenti esterni
Version 2.303.0
Added
- Confronto tra cartelle di lavoro tramite
TXLSXWorkbookCompare: abbina i fogli per nome e segnala fogli aggiunti/rimossi, celle aggiunte/rimosse, valori modificati, formule modificate e intervalli uniti aggiunti/rimossi — come elenco di diff strutturato per gli strumenti e come una riga leggibile per differenza tramiteReport
Version 2.302.0
Added
- Il writer diretto in streaming acquisisce una fornitura di righe in modalità pull:
OnNeedRowviene attivato una volta per ogni riga potenziale e il fornitore scrive quella riga direttamente attraverso il writer, dichiarando la fine dei dati per fermarsi — le pipeline di dati possono guidare un'esportazione senza bufferizzare preventivamente gli elenchi di righe
Version 2.301.0
Added
- L'esportazione ODS scrive le formule delle celle: i riferimenti allo stesso foglio vengono tradotti nella grafia OpenFormula standard
of:=(riferimenti tra parentesi, separatori di argomenti con punto e virgola, stringhe letterali intatte), mentre i riferimenti qualificati dal foglio e quelli strutturati usano il passthroughmsoxl:che Excel stesso impiega per gli scambi tra suite: i pacchetti salvati si riaprono con il testo originale della formula di Excel
Version 2.300.0
Added
- I fogli di lavoro da destra a sinistra ora vengono renderizzati specchiati ovunque: l'esportazione PDF ribalta la geometria delle colonne sull'intera larghezza stampabile (colonna A a destra, contenuto delle celle intatto) ed entrambi gli esportatori HTML emettono
dir="rtl"sulla tabella, così il browser inverte l'ordine delle colonne: il flag del foglio fa già il viaggio di andata e ritorno attraverso XLSX e BIFF
Version 2.299.0
Added
- L'esportazione di dataset (
TDataToXLS) acquisisce una banda di titolo e una banda di piè di pagina:Titlerenderizza una riga unita con stile in grassetto sopra l'intestazione (conTitleFontdedicato eTitleColoropzionale), mentreFooteraggiunge una riga sotto l'ultima riga di dati o di riepilogo ForEachFormattedCellsu un foglio di lavoro scorre ogni cella valorizzata in ordine di riga/colonna e fornisce il suo testo visualizzato — con il formato numerico applicato — tramite un callback, pronto per l'indicizzazione e l'estrazione del testo
Version 2.298.0
Added
- L'esempio ApiTour ora si apre direttamente su una demo dal vivo: una dashboard di vendite in memoria con riquadri KPI, formule
SUMIF/COUNTIFtra fogli, barre dati, una scala di colori, un set di icone e due grafici viene renderizzata nel visualizzatore di cartelle di lavoro incorporato nel momento in cui l'esempio parte, ogni cella della griglia resta modificabile con ricalcolo immediato e formati condizionali aggiornati, e le azioni con un clic esportano la demo in PDF, HTML e CSV oppure la consegnano a Excel con tempi di creazione ed esportazione in tempo reale - L'esempio C++Builder ApiTour replica la nuova demo Delphi, il visualizzatore incorporato, la barra della formula, le azioni di esportazione e il registro delle attività
Changed
- Gli esempi ApiTour sostituiscono le finestre di dialogo modali dei risultati con un registro delle attività in finestra, mentre la procedura classica di creazione, modifica ed esportazione mantiene il proprio comportamento
Version 2.297.0
Added
- L'esportazione PDF acquisisce una modalità facoltativa
UseXRefStreamche produce file PDF 1.5 con flussi di oggetti compressi e un flusso di cross-reference binario: i piccoli oggetti dizionario viaggiano all'interno di un unico contenitore compresso con Flate e la classica tabella xref con trailer viene sostituita da un flusso compatto, riducendo i documenti esportati mentre il contenuto delle pagine resta byte-identico
Version 2.296.0
Added
- Lo scrittore diretto in streaming acquisisce una modalità facoltativa
AutoSplitRows: una riga oltre il limite del foglio di lavoro (1048576) chiude il foglio corrente e prosegue su un foglio appena creato<name>_2,<name>_3…, così le esportazioni illimitate non emettono mai un indice di riga non valido FillTableCalculatedColumnsu un foglio di lavoro applica la formula di colonna calcolata di una colonna di tabella a ogni riga di dati, tradotta riga per riga a livello di cella come fa l'autore di Excel stesso, e poi ricalcola in modo naturale
Version 2.295.0
Changed
- L'esportazione HTML di XLSX centralizza lo stile delle celle: le combinazioni di stile identiche vengono emesse una sola volta come classi
td.cNin un foglio di stile invece di un attributo inlinestyleripetuto su ogni cella, riducendo l'output HTML per le tabelle con stile uniforme; le sovrapposizioni visive dei formati condizionali restano inline per conservare il loro carattere per-cella
Version 2.294.0
Fixed
- I riferimenti strutturati in forma di riga corrente (
Table[@Col]) ora vengono valutati rispetto alla riga della cella della formula durante il ricalcolo, sia nel percorso di valutazione seriale sia in quello parallelo; in precedenza ogni formula di questo tipo leggeva la riga 1 della colonna — di solito il testo dell'intestazione — e il ricalcolo falliva del tutto con un errore di type-cast quando quella riga conteneva testo
Version 2.293.0
Changed
- La memo facoltativa
RecalcAggregateCacheora copre anche gli aggregati incondizionati su intervallo singolo —SUM,AVERAGE,MIN,MAX,COUNTeCOUNTAsu un semplice intervallo di un singolo foglio — così i totali ripetuti sullo stesso blocco riutilizzano il risultato del primo passaggio sotto lo stesso vincolo di stabilità dei riferimenti della famiglia condizionale
Version 2.292.0
Added
- Generatore da cartella di lavoro a codice (
TXLSCodeGen): scorre una cartella di lavoro ed emette le istruzioni sorgente che la ricostruiscono — creazione dei fogli, valori delle celle, formule, formati numerici, larghezze delle colonne e intervalli uniti — nei dialetti Delphi o C++Builder, così un file creato a mano diventa un esempio API già pronto - Validatore di importazione con regole per colonna (
TXLSImportCheck): regole per colonna di obbligatorietà, lunghezza del testo, pattern regex e unicità più un callback del chiamante eseguito sulle righe di dati di un foglio di lavoro; le violazioni possono essere annotate con un font rosso e un commento con il motivo, eKeepOnlyViolationscompatta il foglio all'intestazione più le righe non valide per una cartella di lavoro "correggere e restituire"
Version 2.291.0
Added
- L'importazione CSV accetta un record di opzioni: gli overload di
OpenCSVaccettano lo scarto delle righe iniziali (SkipRows, per i banner di titolo sopra la griglia) e la rimozione degli spazi bianchi (AutoTrim) oltre al separatore e agli interruttori di rilevamento del tipo FillMergedCellValuessu un foglio di lavoro copia il valore di ancoraggio di ogni intervallo unito in ogni cella membro coperta, così i fogli in stile report con etichette unite vengono letti come un'unica griglia piattaAddListValidationacquisisce un overload con array di stringhe che unisce gli elementi in un unico elenco a discesa con una singola chiamata- L'esportazione di dataset (
TDataToXLS) acquisisce la zebratura (AlternatingColor, applicata alle righe di dettaglio dispari) e una riga di totali (SummaryRow) che aggiunge formuleSUMreali per i campi numerici esportati o per un elenco di campi nominato dal chiamante, con una cella di didascalia in grassetto
Fixed
- L'esportazione di dataset ora applica lo sfondo
DetailColorconfigurato alle celle di dettaglio; in precedenza la proprietà veniva accettata ma mai disegnata
Version 2.290.0
Changed
- La memo facoltativa
RecalcLookupCacheora copre anche le scansioni esatte e approssimate diVLOOKUP,HLOOKUPe i tipi di corrispondenza 0 e 1 diMATCH, così le cartelle di lavoro che ripetono queste classiche ricerche sullo stesso intervallo riutilizzano l'esito della prima scansione durante un passaggio di ricalcolo, sotto lo stesso vincolo di sicurezza di stabilità dei riferimenti diXLOOKUP/XMATCH
Version 2.289.0
Added
- Lo scrittore diretto in streaming acquisisce una modalità facoltativa
TrackColumnWidths: il foglio di lavoro viene messo in scena in memoria mentre le righe scorrono in streaming, così il file salvato contiene l'hint<dimension>dell'intervallo usato e le larghezze per colonna dimensionate sul testo visualizzato più lungo visto (caratteri più padding, con tetto a 255), approssimando l'autofit per le esportazioni i cui dati sono noti solo mentre scorrono; le larghezze di colonna impostate esplicitamente hanno sempre la precedenza
Version 2.288.0
Added
- L'apertura dei pacchetti XLSX tollera i prefissi di namespace non canonici: i fogli di lavoro, i grafici, i disegni e le parti delle proprietà del documento che legano i propri elementi a un namespace con prefisso diverso (o strict ISO 29500) vengono normalizzati sul vocabolario standard durante l'analisi, così i file di generatori di terze parti e di salvatori in modalità strict vengono caricati correttamente
- I fogli di lavoro le cui celle omettono l'attributo di posizione
rposizionano ogni cella dopo il suo predecessore in ordine di scansione, e le righe senza attributorcontinuano la sequenza delle righe: la convenzione usata da diversi writer in streaming
Version 2.287.0
Added
Openlegge le cartelle di lavoro di Excel 2.0/3.0/4.0 (BIFF2-4): i flussi BIFF grezzi senza wrapper OLE vengono caricati con i loro numeri, testo, booleani, errori e risultati memorizzati in cache delle formule; i risultati stringa delle formule arrivano tramite il record String BIFF2-4 e il record della code page del flusso guida la decodifica del testo
Changed
- I documenti BIFF2-4 vengono letti per i valori: i formati numerici e gli stili di quelle generazioni non vengono modellati, quindi le date emergono come numeri di serie grezzi e le formule come i loro ultimi valori calcolati
Version 2.286.0
Added
- I formati numerici con sezioni di confronto (
[>=100],[<0], …) selezionano la sezione in base al valore ovunque venga renderizzato il testo visualizzato, rispecchiando il comportamento dei formati condizionali di Excel - Le sezioni di testo dei formati numerici (
"ID:"@) usano i valori stringa come modello invece di ignorare il formato SetCellFromHtmlriempie una cella da un frammento HTML leggero:<b>/<strong>,<i>/<em>,<u>,<br>e<font color=...>diventano sequenze di testo ricco; gli altri tag vengono scartati mentre il loro testo viene mantenuto- Il markup
TaggedTextaccetta interruzioni di riga<br>, gli alias<strong>/<em>, la forma ad attributo<font color=...>e le entità"/ - I blocchi di colonne da tenere insieme (
KeepColumnsTogether) impediscono le interruzioni di pagina verticali all'interno di un gruppo di colonne, rispecchiando la funzionalità a livello di riga nella paginazione, nell'anteprima e nell'output PDF - I controlli form classici Spinner e ScrollBar possono essere scritti nei file XLS con impostazioni Min/Max/Inc/Page e una cella collegata, emessi tramite il sottorecord OBJ FtSbs
WriteAutoValuericonosce le datem/d/yyyyed.m.yyyycon ore opzionali (AM/PM incluse) oltre alla forma ISO, rifiutando le date di calendario impossibiliConvertFormulasToValuesacquisisce una modalitàOnlyExternalche congela solo le formule che fanno riferimento ad altre cartelle di lavoro, e la facciata classica XLS acquisisce il metodo per l'intero foglio- L'adattamento automatico delle righe misura le celle unite rispetto alla loro larghezza di colonna combinata e distribuisce l'altezza necessaria sulle righe unite
Version 2.285.0
Added
- L'esportazione PDF disegna i grafici dei fogli di lavoro come grafica vettoriale nativa: colonne e barre raggruppate, impilate e impilate al 100%, grafici a linee con marcatori, grafici ad area, grafici a torta e a ciambella con etichette percentuali, grafici a dispersione e grafici radar: ciascuno con cornice con titolo, assi a scala automatica, etichette dei segni di graduazione, linee della griglia, legenda, etichette dati opzionali per punto, riempimenti pieni per serie e la palette di accenti predefinita di Excel; i tipi di grafico 3D vengono renderizzati come proiezione 2D
- I grafici ancorati oltre l'ultima cella ora estendono la superficie stampata, così un grafico posizionato sotto le righe di dati appare comunque nell'output PDF e di anteprima invece di essere ritagliato
Version 2.284.0
Added
- Le intestazioni e i piè di pagina PDF renderizzano i codici di stile di Excel:
&Bgrassetto,&Icorsivo,&U/&Esottolineatura singola/doppia,&Sbarrato,&X/&Yapice/pedice,&nndimensione del font,&Kcolore e parole chiave di peso&"Font,Style" - L'esportazione PDF rispetta la modalità di stampa in bianco e nero del foglio di lavoro riducendo riempimenti, font, bordi, barre dati e icone al grigio di luminanza
- Le intestazioni di riga e di colonna stampate (numeri di riga e lettere di colonna) vengono renderizzate accanto alla griglia quando il foglio le richiede
- Centratura di stampa:
CenterHorizontally/CenterVerticallyspostano la griglia stampata tra i margini mentre le bande di intestazione e piè di pagina restano al loro posto - I commenti delle celle vengono stampati o come indicatore rosso nell'angolo (modalità come visualizzato) o come pagina di elenco dei commenti dopo il foglio tramite la nuova proprietà di foglio
PrintCommentsAtEnd, che fa il viaggio di andata e ritorno del valore di impostazione paginacellComments="atEnd"di Excel - I collegamenti ipertestuali interni (destinazioni
Sheet!Cell) diventano link GoTo cliccabili all'interno del documento che saltano alla pagina del foglio di destinazione - L'esportatore espone una preferenza
PageLayoutper il visualizzatore e scrive un pacchetto di metadati XMP accanto al dizionario delle informazioni del documento - I font di raccolta TrueType (
.ttc) possono fungere da font Unicode incorporato; i tagli grassetto e corsivo del tipo incorporato vengono sintetizzati quando esiste solo un tipo regolare
Changed
- Le larghezze delle colonne vengono convertite tramite la formula di larghezza massima della cifra di Excel (metriche Calibri 11) invece di una stima fissa per carattere, così le larghezze PDF e di anteprima corrispondono alle larghezze in pixel memorizzate da Excel
- Le righe a capo vengono misurate nuovamente a partire dal primo carattere di ciascuna riga, correggendo le righe a capo che ignoravano la larghezza delle parole spostate in basso da un'interruzione precedente
Version 2.283.0
Added
- L'esportazione PDF va a capo nelle celle
WrapTextcon vera divisione in parole, allineamento orizzontale riga per riga, allineamento verticale del blocco e spaziatura giustificata o distribuita - L'esportazione PDF renderizza il testo ruotato delle celle tramite le matrici di testo PDF, incluso il testo verticale impilato, e rispetta
ShrinkToFitriducendo progressivamente la dimensione del font finché il valore non entra - Il testo PDF che esce da una cella ora si estende sulle celle vicine vuote e viene ritagliato alla prima cella occupata, rispecchiando il comportamento di stampa di Excel; l'allineamento generale allinea a destra i numeri come Excel
- L'esportazione PDF disegna le sequenze di testo ricco con stile, dimensione, colore, sottolineatura, barrato, apice e pedice del font per ogni sequenza; le righe a capo mantengono lo stile per sequenza
- L'esportazione PDF disegna i bordi diagonali delle celle e i veri bordi a doppia linea
- Il testo che attraversa le celle unite ora disegna, allinea, va a capo e ancora i collegamenti ipertestuali su tutto il rettangolo unito, e i membri di unione coperti non disegnano più il proprio sfondo
Changed
- Le larghezze del testo PDF derivano da tabelle di avanzamento calibrate per carattere invece di una larghezza media fissa del carattere, così allineamento, a capo e riduzione corrispondono alla pagina stampata
- Il rientro delle celle sposta il testo come Excel, e le celle con set di icone rientrano il proprio valore accanto all'icona
Version 2.282.0
Added
- L'esportazione PDF preserva la trasparenza PNG: le immagini con canale alfa ora emettono un piano di soft-mask invece di perdere la trasparenza, incluse le immagini a palette con un blocco tRNS
Changed
- I flussi di contenuto delle pagine PDF ora sono compressi con Flate, riducendo sostanzialmente i documenti esportati senza requisiti del visualizzatore oltre PDF 1.4
- L'esportazione PDF raggruppa le operazioni di testo consecutive in blocchi di testo condivisi e salta la selezione ridondante di font, dimensione e colore, riducendo sia le dimensioni dell'output sia il tempo di generazione
- Le celle adiacenti con lo stesso riempimento pieno vengono renderizzate come un unico rettangolo unito, e i segmenti di bordo collineari con lo stesso stile vengono tracciati come una singola sequenza invece che come bordi per cella
- Le immagini PNG vengono incorporate nel PDF senza decodifica e ricodifica, mantenendo il flusso compresso originale e i pixel esatti
- Le immagini con contenuto di byte identico vengono incorporate una sola volta e condivise, indipendentemente da quanti oggetti immagine vi facciano riferimento
Fixed
- Le annotazioni di collegamento ipertestuale ora vengono create anche per le celle di collegamento il cui testo viene renderizzato attraverso il percorso del font Unicode incorporato
- I byte di contenuto PDF non dipendono più dalla code page di sistema attiva, così il testo occidentale viene renderizzato in modo identico su qualsiasi impostazione locale di Windows
Version 2.281.0
Fixed
- I lettori degli appunti non troncano più l'handle dei dati a 32 bit, cosa che faceva restituire un valore vuoto a
XLSGetClipboardBiff8e al percorso di incolla del foglio di calcolo XML sulle applicazioni a 64 bit - Le operazioni sugli appunti riprovano ad aprire gli appunti fino a mezzo secondo quando un'altra applicazione li tiene occupati, invece di fallire al primo conflitto
Changed
- Le ricerche delle regole di formato condizionale (percorsi
FindAt/IndexOfCell) analizzano l'intervallo di celle di ciascuna regola una sola volta invece che a ogni cella interrogata, rispecchiando la cache della convalida dei dati - L'esportazione PDF costruisce un indice di collegamenti ipertestuali per foglio, sostituendo la scansione lineare per cella con una ricerca binaria
Version 2.280.0
Added
- Le funzioni definite dall'utente possono essere registrate per nome:
RegisterUserFunctionindirizza le formule che chiamano quel nome direttamente al proprio gestore (niente catena di if globale in un unicoOnUserFunction), con l'evento della cartella di lavoro che continua a servire i nomi non registrati ScanUnknownFunctionsverifica una cartella di lavoro per le funzioni di formula che il motore di calcolo non riesce a valutare, segnalando ogni cella e nome — ideale prima di abilitare il ricalcolo su file di terze partiRecoveryMode: una parte di foglio di lavoro strutturalmente danneggiata viene saltata con una diagnostica di avviso invece di interrompere l'intera apertura- Formato nativo degli appunti BIFF8:
XLSSetClipboardBiff8/XLSGetClipboardBiff8pubblicano e leggono il flussoBiff8che usa Excel stesso, così lo scambio tramite appunti conserva valori, formule e formattazione
Changed
- La verifica della convalida dei dati analizza l'intervallo di celle di ciascuna regola una sola volta invece che a ogni cella, accelerando
CheckDataValidationssu fogli di grandi dimensioni
Version 2.279.0
Added
- L'esportazione PDF incorpora le immagini dei fogli di lavoro: le bitmap PNG/GIF/BMP vengono convertite in XObject RGB compressi con Flate e i file JPEG passano intatti tramite DCTDecode (nessuna ricompressione); le immagini identiche su più pagine condividono un unico oggetto, e le immagini aggiunte senza una dimensione esplicita ora usano per impostazione predefinita le loro dimensioni in pixel a 96 DPI
- Blocchi da tenere insieme:
KeepRowsTogetherimpedisce alla paginazione di stampa/PDF di interrompere un blocco di righe che sta in una pagina, eXlsxAutoPageBreakstrasforma i confini di pagina naturali (che tengono conto dei blocchi) in interruzioni di riga esplicite, così Excel pagina come l'esportazione - Compressione XLSX configurabile:
ZipCompressionLevelseleziona il livello di deflate per i salvataggi (da -1 predefinito a 9) - Salvataggi riproducibili:
DeterministicOutputfissa i timestamp delle voci zip così da salvare due volte la stessa cartella di lavoro producendo file byte-identici
Fixed
- I file composti corrotti con catene FAT cicliche non bloccano più il caricatore classico .xls: le camminate delle catene di directory e di flusso portano protezioni contro i cicli
Version 2.278.0
Added
- L'esportazione PDF emette annotazioni di collegamento cliccabili per i collegamenti ipertestuali dei fogli di lavoro: le celle con un URL ricevono un rettangolo /Link invisibile con un'azione URI sull'area della cella
- L'esportazione PDF scrive una struttura del documento (segnalibri): ogni foglio di lavoro esportato diventa un segnalibro che punta alla sua prima pagina renderizzata
Version 2.277.0
Added
- La convalida dei dati acquisisce un'API di audit:
CheckDataValidationsesegue la scansione delle celle valorizzate rispetto alle regole del foglio (appartenenza agli elenchi, limiti interi/decimale/data/ora, lunghezza del testo, formule personalizzate tramite il calcolatore) e segnala ogni cella non conforme con l'indice della regola e un motivo - Le proprietà personalizzate del documento tipizzate fanno il viaggio di andata e ritorno tramite
docProps/custom.xml: voci di testo, numero, data e booleano suWorkbook.CustomProperties - Le parti di dati XML personalizzate fanno il viaggio di andata e ritorno tramite
Workbook.CustomXmlPartscon relazioni a livello di cartella di lavoro e tipi di contenuto - Le immagini accettano un compagno SVG:
AddImagePairmemorizza i byte SVG accanto al fallback raster, scrive l'estensionesvgBlipe la parte multimediale extra che Excel 2016+ consuma - I grafici possono prelevare il testo delle etichette dati da un intervallo di celle (“Value From Cells”) tramite
DataLabelsRange, emesso come estensione del grafico e recuperato all'apertura - Stili di tabella personalizzati:
Workbook.CustomTableStylesdefinisce stili con nome con sezioni colorate/in grassetto (riga di intestazione, riga di totale, strisce, colonne di bordo), scritti intableStylescon i propri stili differenziali così le tabelle possono riferirsi ad essi per nome
Version 2.276.0
Added
- Riempimenti sfumati delle celle: gradienti lineari per grado e gradienti di percorso con colori per arresto fanno il viaggio di andata e ritorno tramite
gradientFill, vengono renderizzati come gradienti CSS nell'esportazione HTML, come riempimenti interpolati a bande nell'esportazione PDF e nel visualizzatore di cartelle di lavoro, e sono offerti tramite la convenienzaTXLSXFills.AddLinearGradient - I formati numerici di tempo trascorso (
[h]:mm:ss,[mm]:ss,[s]) ora renderizzano totali progressivi invece di avvolgersi come un orologio, in ogni percorso di visualizzazione (FormattedText, HTML, PDF, valori dei formati condizionali) - I formati numerici di frazione (
# ?/?,# ??/??, denominatori fissi come0/8) vengono renderizzati con la migliore approssimazione razionale di Excel, inclusi il nascondimento della parte intera zero e la spaziatura di allineamento - Le parentesi di colore in stile
[Red]ora emergono tramiteTXLSXCell.GetFormattedTextColore ridipingono il testo della cella nell'esportazione PDF TXLSXWorkbook.ValidateNumberFormatverifica una stringa di formato personalizzata come fa la finestra di dialogo Formato personalizzato di Excel — numero di sezioni, bilanciamento delle virgolette e contenuto delle parentesi (colori, condizioni, unità di tempo trascorso, direttive di locale)- Lo stato dei riquadri congelati può essere riletto tramite
GetFrozenPanes, e la posizione di scorrimento del riquadro in basso a destra fa il viaggio di andata e ritorno tramiteSetPaneScroll/GetPaneScroll(scritta cometopLeftCell) - L'interruttore di visualizzazione delle intestazioni di riga/colonna
DisplayRowColHeadersfa il viaggio di andata e ritorno tramiteshowRowColHeaders - I grafici espongono
DispBlanksAs(gap / span / zero) ePlotVisibleOnlyinvece di codificarli fissi, e recuperano entrambi dal ChartML preservato all'apertura - I commenti trasportano una geometria della casella modificabile (
WidthPt/HeightPt, punti VML) più un'euristicaAutoSizeFromTextguidata dal testo
Version 2.275.0
Added
- Trova & sostituisci comprende i caratteri jolly di Excel:
*(qualsiasi sequenza di caratteri),?(esattamente un carattere) e~come escape per un*,?o~letterale — le stesse semantiche che Excel stesso applica in Trova & sostituisci, nei criteri della famigliaCOUNTIFe nei filtri automatici - Il
FindTextdel foglio di lavoro XLSX acquisisce un overload con opzioni: maiuscole/minuscole, corrispondenza sull'intero contenuto della cella, ricerca anche nel testo della formula oltre che nei valori, modalità caratteri jolly e scansione all'indietro, con un'ancora di partenza così le chiamate ripetute scorrono tra le corrispondenze ReplaceTextacquisisce lo stesso set di opzioni più un callback opzionale per corrispondenza che può accettare, riscrivere, saltare o annullare ogni sostituzione cella per cella- Il
FindText/ReplaceTextclassico del foglio di lavoro XLS acquisisce overload con caratteri jolly e intera cella, così entrambe le facciate condividono le semantiche di ricerca di Excel GetRangeStatisticsesegue la scansione di un rettangolo e segnala minimo, massimo, somma, media, conteggio dei valori numerici e conteggio delle celle valorizzate in un unico passaggioWriteAutoValuescrive il testo nel modo in cui la voce di cella di Excel stesso lo interpreta:TRUE/FALSEdiventano booleani, i letterali di errore come#N/Adiventano valori di errore, le date ISO non ambigue diventano date, i numeri semplici in formato invariante diventano numeri, e tutto il resto — inclusi gli zeri iniziali e i separatori delle migliaia — resta testo (entrambe le facciate)GetHtmlFromCellrenderizza una cella come frammento HTML con stile con markup escapato, completando l'esportazione HTML dell'intero foglioSortRangeaccetta un flag senza distinzione tra maiuscole e minuscole così le chiavi di testo vengono ordinate alfabeticamente indipendentemente dal caso (facciata XLSX)
Version 2.274.0
Added
- Le tabelle di Excel ora fanno viaggiare le tabelle senza intestazione e i commenti per tabella attraverso le nuove proprietà di tabella
HasHeaderRoweComment, scritte comeheaderRowCount="0"e attributocomment - I grafici possono selezionare uno stile della galleria di Excel tramite la nuova proprietà
ChartStyle(1–48 o l'intervallo esteso 101–148), fatto viaggiare attraverso l'elemento di stile della parte del grafico - I grafici combinati possono controllare la stratificazione dell'area del tracciato tramite una nuova proprietà
ZOrdersu ogni gruppo di tracciati, così una serie a colonne può essere renderizzata dietro o davanti a una serie a linee - I fogli di lavoro e le singole celle possono congelare le formule nei loro valori calcolati tramite
ConvertFormulasToValueseConvertFormulaToValue, mantenendo il risultato memorizzato nella cache mentre si elimina la formula, il collegamento della formula condivisa e i metadati dell'array - I nomi definiti ora trasportano un commento opzionale tramite la nuova proprietà
Commentdei nomi, fatto viaggiare attraverso il record classico nome-commento e l'attributocommentdei nomi definiti XLSX - L'esportazione PDF accetta dimensioni del foglio personalizzate in punti tramite le nuove proprietà
PaperWidthePaperHeight, sovrascrivendo l'enumerazione delle dimensioni del foglio per ogni foglio di lavoro renderizzato - L'esportazione PDF può sopprimere la banda di intestazione o piè di pagina tramite il nuovo set
HidePrintObjects - I codici di campo
&F(nome file) e&Z(percorso) di intestazione e piè di pagina PDF ora si espandono usando il percorso della cartella di lavoro di origine acquisito dalle esportazioni basate su file - Le barre dati supportano un colore di bordo indipendente per i valori negativi tramite le nuove impostazioni
NegativeBorderColoreNegativeBarBorderColorSameAsPositive, emesse nell'estensione delle barre dati di Excel 2010+ - Gli stili di cella predefiniti i cui identificatori non hanno uno slot di record legacy (Hyperlink, Title, Headings, Accents, Good/Bad/Neutral, …) ora risolvono i loro nomi di visualizzazione canonici al salvataggio, così la galleria Stili di Excel sopravvive a un viaggio di andata e ritorno
- Le cartelle di lavoro crittografate Agile ora trasportano un blocco
dataIntegrityreale: lo scrittore emette un HMAC conforme alla specifica sull'intero pacchetto crittografato, e l'apertura lo verifica, rilevando una password errata o un pacchetto manomesso; i file di writer senza il blocco si aprono comunque invariati - Le cartelle di lavoro classiche supportano la riserva di scrittura “password per la modifica” di Excel tramite
SetModifyPassword(flag consiglia sola lettura, hash legacy della password e nome utente riservante emessi come coppia di record WRITEPROT + FILESHARING);IsWriteReservedsegnala lo stato e una password vuota lo azzera - Una memo facoltativa
RecalcLookupCacheaccelera il ricalcolo con molte ricerche: le scansioni ripetute diXLOOKUP/XMATCHsullo stesso intervallo riutilizzano il risultato della prima scansione. La memo si attiva solo quando il grafo delle dipendenze è dimostrabilmente stabile rispetto ai riferimenti (nienteOFFSET/INDIRECTo riferimenti non risolvibili, niente catene circolari, niente tabelle dati What-If) e resta silenziosamente disattivata altrimenti, così i risultati sono sempre identici - Una memo complementare
RecalcAggregateCacheaccelera il ricalcolo degli aggregati condizionali: le scansioni ripetute diSUMIF/COUNTIF/AVERAGEIFsullo stesso intervallo e con gli stessi criteri riutilizzano il primo risultato, sotto lo stesso vincolo di stabilità dei riferimenti e con risultati identici - Le espressioni
LAMBDAvengono valutate con chiusure complete: un nome definito il cui RefersTo è unaLAMBDApuò essere chiamato per nome con argomenti (=MyFunc(5)), le chiusure si legano lessicalmente all'interno diLET(=LET(f, LAMBDA(x, x*2), f(21))), i parametri oscurano i riferimenti di colonna con lo stesso nome, e il testo della formula fa il viaggio di andata e ritorno verbatim; unaLAMBDAnuda memorizzata come risultato di cella mantiene il comportamento di salto senza valore LETora ha una semantica completa: ogni associazione è visibile alle associazioni successive e all'espressione del corpo, inclusa la composizione nidificata diLET— sostituendo la precedente implementazione parziale- Il testo della formula ora accetta la virgola come separatore di argomenti accanto al classico punto e virgola, corrispondendo alla sintassi canonica di Excel per le formule incollate e importate
- I riferimenti strutturati nelle formule ora vengono valutati:
Table[Column],Table[[Column]], gli intervalli di colonne e le forme di elemento[#Data]/[#All]/[#Headers]/[#Totals]si risolvono rispetto alle tabelle di Excel della cartella di lavoro al momento dell'analisi, così=SUM(Table1[Amount])calcola mentre il testo originale della formula continua a fare il viaggio di andata e ritorno verbatim; i riferimenti non risolvibili mantengono il precedente comportamento di salto senza valore e le forme di riga corrente ([@Column]) restano non supportate
Changed
- Quando una cartella di lavoro disabilita la precisione completa, i risultati ricalcolati ora vengono memorizzati arrotondati al numero di cifre decimali mostrato dal formato numerico di ogni cella, corrispondendo al comportamento “precisione come visualizzata” di Excel per i valori calcolati da HotXLS
- Le regole di formattazione condizionale scritte in XLSX ora ricevono priorità uniche per foglio, eliminando i file con priorità duplicate che facevano richiedere a Excel una riparazione
- I formati condizionali contrassegnati come con ambito PivotTable tramite la nuova proprietà
IsPivotvengono instradati al bucket delle estensioni invece del blocco principale di formattazione condizionale del foglio di lavoro, dove Excel li avrebbe eliminati o collocati male
Version 2.273.0
Changed
TXLSXWorkbook.PreserveRawPartsora copia le immagini dei fogli di lavoro invariate, le immagini di intestazione e piè di pagina e le parti dei grafici con i loro payload compressi originali, mentre le modifiche ai dati delle immagini e al modello dei grafici seguono il percorso di serializzazione- Un SaveAs su file riuscito ora accetta il pacchetto impegnato come nuova baseline di copia grezza, consentendo ai salvataggi successivi di riutilizzare dati opachi, VBA, connessioni, collegamenti esterni, immagini, grafici, temi e payload pivot appena serializzati senza riaprire il pacchetto sorgente precedente
Fixed
- Le relazioni sconosciute di fogli di lavoro e disegni da pacchetti con posizioni di parte non standard ora vengono riancorate rispetto ai loro proprietari canonici generati, inclusi i pacchetti solo-disegno i cui unici ancoraggi sono forme non supportate preservate
- Una copia di membro compresso non riuscita ora annulla l'intestazione locale parziale, i byte del payload, le voci della cartella padre e il conteggio della directory centrale prima del fallback sicuro di serializzazione, impedendo l'accumulo di dati non raggiungibili nell'archivio di output
Version 2.272.0
Changed
- Il SaveAs XLSX ora apre un unico archivio sorgente validato per l'intera operazione di salvataggio e copia ogni parte opaca raggiungibile tramite relazioni invariata con il suo payload compresso originale, evitando scansioni ripetute della directory centrale oltre a decompressione e ricompressione, mentre i payload modificati seguono ancora il percorso di serializzazione
Fixed
- Le relazioni sconosciute della cartella di lavoro da pacchetti la cui cartella di lavoro usa un nome di parte non standard ora vengono riancorate rispetto alla posizione generata della cartella di lavoro, impedendo che le loro parti di destinazione preservate diventino non raggiungibili dopo il SaveAs
- Le letture dirette con proiezione ora conservano le definizioni master delle formule condivise al di fuori del set di righe o colonne selezionato, così le celle follower selezionate ricevono ancora le loro formule correttamente tradotte senza ricostruire valori o testo ricco non selezionati
- La modifica di un grafico non rimuove più un formato numerico di asse non modellato soltanto perché la creazione dei formati numerici delle etichette dati usa un elemento con lo stesso nome locale
Version 2.271.0
Fixed
- L'esportatore HTML classico ora scrive UTF-8 e lo dichiara con un
<meta charset>più un doctype HTML5; in precedenza il flusso veniva scritto nella code page ANSI di sistema, corrompendo qualsiasi valore di cella non ASCII, e la dichiarazione di charset mancante lasciava la pagina in balia del browser
Version 2.270.0
Added
- Le etichette dati dei grafici ora possono trasportare un formato numerico esplicito e un posizionamento tramite le nuove proprietà di serie
LabelNumFmteLabelPos(con i loro flag*Set), emesse come<c:numFmt>e<c:dLblPos>sia nello scrittore standard sia in quello dei grafici combinati — consentendo testo di etichetta in percentuale o valuta e posizioni di etichetta come outside-end o center; anche una sola delle due impostazioni attiva il blocco delle etichette, e le serie non impostate restano byte-identiche
Version 2.269.0
Added
- Le serie di grafici a linee e a dispersione ora possono trasportare un simbolo e una dimensione di marcatore espliciti tramite le nuove proprietà
MarkerSymbol,MarkerSizeeMarkerSet, emesse come blocco<c:marker>della serie sia nello scrittore standard sia in quello dei grafici combinati; le serie non impostate mantengono i marcatori automatici - Gli assi dei valori con unità di visualizzazione ora possono mostrare l'etichetta dell'unità (“Thousands”, “Millions”, …) tramite la nuova proprietà di asse
ShowDispUnitsLabel
Version 2.268.0
Added
- Le linee di tendenza dei grafici XLSX ora supportano un'intercetta fissa più i periodi di previsione avanti e indietro tramite le nuove proprietà
Intercept/InterceptSet,ForwardeBackward, emesse come<c:intercept>/<c:forward>/<c:backward>; in precedenza solo il builder classico dei grafici BIFF offriva questi controlli, e le linee di tendenza non impostate restano byte-identiche
Version 2.267.0
Added
- Il calcolo delle formule ora valuta le funzioni a numeri complessi
IMCOS,IMSIN,IMTAN,IMSEC,IMCSC,IMCOT,IMLOG2eIMLOG10, completando la famiglia di ingegneriaIM*con la copertura di funzioni trigonometriche, reciproche e logaritmi in base 2/base 10 sugli operandi stringa complessi
Version 2.266.0
Changed
- Il lettore diretto in streaming ora applica la proiezione delle colonne prima di accumulare i valori delle celle: quando è configurato un set di colonne proiettate, le celle al di fuori di esso saltano la costruzione di valore, formula e stringa di testo ricco che in precedenza veniva eseguita per ogni cella e scartata a fine cella, accelerando le letture di fogli larghi che proiettano solo poche colonne
Version 2.265.0
Added
- I gruppi di tracciati dei grafici a barre e a colonne ora espongono una modalità di raggruppamento configurabile (
clustered,stacked,percentStacked), una larghezza del gap tra i cluster e una sovrapposizione delle serie tramite le nuove proprietàBarGrouping,GapWidtheOverlap; in precedenza ogni grafico a barre/colonne era codificato fisso suclusteredsenza controllo di gap o sovrapposizione, e i gruppi non impostati restano byte-identici mentre l'elenco di unione modifica-dopo-apertura tratta i nuovi elementi come posseduti
Version 2.264.0
Fixed
- I bordi delle celle PDF ora riflettono lo stile e lo spessore dei bordi del foglio di lavoro invece di disegnare ogni bordo come una linea continua identica da 0.75 pt: le celle XLSX renderizzano gli spessori sottile, medio, spesso, capello e doppio e i pattern tratteggiato, puntinato, tratto-punto, tratto-punto-punto e tratto obliquo-punto, e le celle BIFF renderizzano gli stili sottile, medio e tratteggiato/puntinato
Version 2.263.0
Added
- L'esportazione PDF ora può incorporare i metadati del documento tramite le nuove proprietà
DocumentTitle,DocumentAuthor,DocumentSubjecteDocumentKeywords; quando ne è impostata una, il PDF trasporta un dizionario/Infocon questi campi più un'identitàCreator/Producere unaCreationDate, mentre le esportazioni predefinite senza metadati restano byte-identiche
Version 2.262.0
Fixed
- L'esportazione CSV non racchiude più in eccesso tra virgolette i campi: uno spazio interno non forza più le virgolette, così valori come
John Smithvengono scritti senza virgolette, corrispondendo a RFC 4180 e Excel; i campi con il delimitatore, un doppio virgoletta, un'interruzione di riga o spazi bianchi iniziali o finali restano racchiusi tra virgolette come prima
Version 2.261.0
Added
- Ogni serie di grafico ora può trasportare un colore di riempimento pieno tramite la nuova proprietà
SolidFillHex, emessa come proprietà di forma<c:spPr>della serie; l'assegnazione di un colore hex timbra la serie con un colore di brand o di palette invece del colore di tema automatico di Excel, mentre le serie non impostate restano byte-identiche e l'elenco di unione modifica-dopo-apertura trattaspPrcome posseduta così la sostituisce invece di duplicarla
Version 2.260.0
Changed
- Il back-end di archiviazione sparsa delle celle ora fa crescere geometricamente (raddoppiando) il buffer di ogni blocco da 256 righe invece di riallocare a ogni cella aggiunta, eliminando il costo di copia quadratico durante il caricamento di fogli di lavoro densi
Version 2.259.0
Fixed
- I record BIFF8 di protezione degli oggetti del foglio di lavoro (
OBJECTPROTECT) e di protezione degli scenari (SCENARIOPROTECT) ora vengono riletti nello stato di protezione del foglio, così i flag di blocco sopravvivono a un viaggio di andata e ritorno invece di essere scritti ma persi al ricaricamento - I record BIFF8 dei globali della cartella di lavoro
MMS,RefreshAlleUseSelFSora vengono preservati attraverso il viaggio di andata e ritorno invece di essere scartati silenziosamente
Version 2.258.0
Added
- Il testo di visualizzazione formattato ora riconosce le direttive di colore
[Cyan]e[Magenta]e le direttive di palette indicizzata[Color1]fino a[Color8], così l'output formattato in stile HTML applica questi colori invece di eliminarli
Version 2.257.0
Added
- Il calcolo delle formule ora valuta le funzioni di ingegneria e matematiche
FACTDOUBLE,SQRTPI,DELTA,GESTEP,SERIESSUMeCONVERT, conCONVERTche copre le unità di massa, distanza, tempo, pressione, forza, energia, potenza, magnetismo, temperatura e volume e rifiuta le categorie di unità non corrispondenti
Version 2.256.0
Fixed
- Il testo di visualizzazione formattato ora renderizza correttamente i minuti nelle maschere di tempo come
hh:mm,mm:sse[h]:mm:ss; in precedenza veniva usatomm(mese) di Delphi, così i campi dei minuti mostravano il numero del mese - Le direttive di locale e valuta come
[$-409]e[$$-1009]ora vengono rimosse dall'output formattato invece di fuoriuscire come prefisso letterale$-409, mentre un simbolo di valuta presente nella direttiva viene preservato
Version 2.255.0
Added
- La lettura dei pacchetti ZIP ora comprende gli archivi ZIP64, analizzando il campo extra di informazioni estese e il record e il localizzatore ZIP64 di fine directory centrale, così le cartelle di lavoro le cui parti o offset superano i limiti classici di 4 GB / 65535 voci si aprono correttamente invece di fallire il controllo di sanità della fine della directory centrale
Version 2.254.0
Security
- La verifica della password delle cartelle di lavoro crittografate ora confronta l'hash del verificatore in tempo costante sia per la crittografia Agile sia per quella Standard, chiudendo un canale laterale temporale che poteva rivelare quanti byte iniziali dell'hash della password corrispondono
- La crittografia Agile non ripiega più su un generatore pseudocasuale seminato dal tempo per sali, verificatori e chiavi intermedie quando il CSPRNG di sistema non è disponibile; ora fallisce in modalità fail-closed invece di emettere materiale di chiave prevedibile
Version 2.253.0
Added
- Il calcolo delle formule ora valuta le funzioni di rimodellamento degli array di Excel 365
VSTACK,HSTACK,TOROW,TOCOL,WRAPROWS,WRAPCOLS,TAKE,DROP,CHOOSECOLS,CHOOSEROWS,EXPAND,RANDARRAYeTEXTSPLIT, facendo fuoriuscire i loro risultati tramite il meccanismo esistente degli array dinamici - Il calcolo delle formule ora valuta le moderne funzioni di testo
TEXTBEFOREeTEXTAFTERcon gestione del numero di istanza, della distinzione tra maiuscole e minuscole, della corrispondenza a fine stringa e del valore non trovato - Il calcolo delle formule ora valuta
RANDBETWEEN,ISEVEN,ISODDe l'aliasFORECAST.LINEARdiFORECAST
Version 2.252.0
Added
- I nomi definiti trasportano un commento opzionale, fatto viaggiare come record BIFF8 NAMECMT e come attributo
commentdeldefinedNameOOXML - Le destinazioni dei collegamenti ipertestuali a file locale vengono normalizzate (conversione da backslash a barra, prefissi
file://efile:///, codifica percentuale dei caratteri riservati) così Excel le memorizza verbatim - I tipi di riempimento di forme, immagini e caselle di testo (pieno, immagine, sfumato, nessuno, automatico) ora sono tipizzati sulla proprietà grezza del tipo di riempimento e fanno il viaggio di andata e ritorno in modo fedele
- Le barre dati della formattazione condizionale supportano colori di bordo indipendenti per i valori negativi di Excel 2010+
- I campi della cache pivot fanno viaggiare i collegamenti di raggruppamento su più livelli per date e numeri
- I callback delle funzioni definite dall'utente ricevono un descrittore del tipo di argomento così i gestori possono distinguere valori letterali, riferimenti a celle o intervalli e costanti di array
- La compilazione delle formule accetta nomi di funzione localizzati (tedesco, francese, spagnolo), riscritti in inglese canonico prima dell'analisi lessicale
- Gli helper di password e crittografia espongono costanti di codice di ritorno con nome
Changed
- I salvataggi di pacchetti e XLSX ora passano attraverso buffer deflate più grandi con un livello di memoria di compressione più alto e saltano un passaggio ridondante di checksum sui byte già compressi, riducendo la CPU di salvataggio e il tempo a muro
- La crescita interna di string-builder, liste e tabelle hash ora usa l'allocazione geometrica (raddoppio) insieme a un punto di ridimensionamento dell'hash anticipato, riducendo il churn di allocazione e il costo di ricerca quando una cartella di lavoro trasporta molti stili, nomi, intervalli definiti o stringhe condivise
- Le ricerche nelle tabelle di stringhe condivise ora confrontano direttamente i byte memorizzati prima di materializzare una stringa completa, riducendo le allocazioni di ricerca sulle tabelle di stringhe condivise di grandi dimensioni
Version 2.251.0
Fixed
- L'apertura e il salvataggio XLSX ora conservano le dichiarazioni di namespace esterne della radice della cartella di lavoro, gli attributi di compatibilità del markup, i payload completi
<extLst>a livello di cartella di lavoro e le loro relazioni sconosciute mentre rigenerano lo stato tipizzato della cartella di lavoro; i riferimentir:idpreservati seguono la riassegnazione degli ID di relazione invece di diventare obsoleti quando entrano in conflitto con le relazioni generate dei fogli di lavoro o della cartella di lavoro
Version 2.250.0
Changed
- Le voci di riga sparse XLSX ora memorizzano solo la loro colonna e l'handle di cella stabile, eliminando i tag di payload inutilizzati oltre alla classificazione ridondante e a una seconda ricerca dell'indice di riga ogni volta che un valore di cella, una formula o un oggetto di testo ricco cambia
Version 2.249.0
Added
- Gli overload di
TXLSRTFImport.LoadFromRTFeTXLSWorksheet.OpenRTFpossono importare tabelle o elenchi di paragrafi a una riga e colonna di destinazione esplicite con base uno, mentre gli overload originali continuano a partire da A1
Changed
- Gli scrittori di righe tipizzate XLSX ora aggiungono batch rigorosamente in avanti direttamente ai vettori di riga sparsi pre-dimensionati, e la ricerca delle celle sparse risolve le corrispondenze di prima e ultima colonna senza ricerca binaria, mentre le scritture in sovrapposizione mantengono il loro percorso di sostituzione esistente e gli handle di cella stabili
Fixed
- La copia grezza delle parti XLSX basate su file e il caricamento selettivo dei fogli ora usano un'identità privata dell'archivio sorgente con convalida di dimensione e timestamp, così un'apertura successiva del flusso o un'assegnazione pubblica di
FileNamenon può reindirizzare le parti preservate verso un'altra cartella di lavoro RefreshPivotCacheora commuta le cache aggiornate alla serializzazione tipizzata così i record ricostruiti non possono essere sovrascritti da byte grezzi obsoleti del pacchetto durante il salvataggio- La copia grezza dei membri ZIP compressi ora richiede che il flusso sorgente contenga esattamente il conteggio dichiarato di byte compressi, rifiutando sia le voci troncate sia quelle troppo lunghe prima della registrazione nella directory centrale
- Il riutilizzo di un singolo importatore RTF ora azzera lo stato del parser della code page e dei formati di carattere tra i documenti così grassetto, corsivo, sottolineato, barrato e dimensione del font non possono fuoriuscire nell'importazione successiva
- Le aperture XLSX
MetadataOnlyora evitano i payload opachi di stringhe condivise, persone, relazioni dei fogli di lavoro, commenti, disegni, grafici, tabelle, tabelle di query, pivot e quelli raggiungibili dal foglio di lavoro, mantenendo proprietà della cartella di lavoro, nomi, stati dei fogli, stili, tema, connessioni e collegamenti esterni
Version 2.248.0
Changed
- Il SaveAs XLSX ora copia grezzamente le parti
connections.xmlinvariate dal pacchetto sorgente quando il modello di connessione analizzato è invariato, preservando la fedeltà XML sorgente ed evitando decompressione e ricompressione inutili, mentre riscrive comunque le connessioni modificate dal modello tipizzato
Version 2.247.0
Changed
- Il SaveAs XLSX ora copia grezzamente le parti XML e di relazione dei collegamenti esterni invariate dal pacchetto sorgente quando il modello analizzato è invariato, preservando l'XML delle estensioni sconosciute ed evitando decompressione e ricompressione inutili, mentre riscrive comunque i collegamenti modificati dal modello tipizzato
Version 2.246.0
Added
- Gli overload di
TXLSHTMLImport.LoadFromHTMLpossono importare a una riga e colonna di destinazione con base uno, selezionare una tabella di livello superiore con base zero o tutte le tabelle, e analizzare i numeri con un separatore decimale esplicito senza modificare le impostazioni globali del formato
Changed
- Il caricamento degli stili XLSX ora risolve ogni stile di cella tramite un array cellXf immutabile condiviso invece della costruzione ripetuta di chiavi stringa e delle ricerche lineari nella mappa, riducendo il tempo di apertura delle cartelle di lavoro stilizzate e le allocazioni temporanee
Fixed
- I byte modificati del progetto VBA ora bypassano la copia grezza delle parti preservate così il salvataggio di una cartella di lavoro con macro modificata non può ripristinare il payload originale
vbaProject.bin - La copia grezza dei membri ZIP ora rifiuta metodi di compressione diversi da STORE e DEFLATE invece di emettere un'intestazione di compressione non corrispondente, consentendo ai chiamanti di usare percorsi di fallback sicuri di decompressione e riscrittura
- L'importazione HTML ora ignora i tag di riga e di cella al di fuori delle tabelle di livello superiore e preserva il comportamento consolidato su tutte le tabelle degli overload originali
Version 2.245.0
Added
- Celle
TXLSWorkbookViewermodificabili con input consapevole delle celle protette, immissione e ricalcolo delle formule, selezione rettangolare degli intervalli, scelta dei riferimenti di formula e cronologia circolare limitata di annulla e ripeti TXLSPivotDesignerfornisce un modello riutilizzabile non visivo di elenco campi con zone di righe, colonne, filtri e valori, movimento deterministico dei campi, selezione dell'aggregazione, convalida del layout e applicazione dei risultati- Le cartelle di lavoro classiche XLS ora forniscono la diagnostica
CalculateAndVerifycon record di disallineamento condivisi contenenti l'identità del foglio di lavoro, le coordinate di cella con base uno, i valori memorizzati in cache e quelli appena calcolati e il testo della formula - I fogli di lavoro classici XLS e XLSX ora forniscono scrittori tipizzati di righe e colonne numerici, stringa e variant con coordinate con base uno, ritaglio ai limiti della griglia, scritture dirette nel modello di cella e un conteggio di scritture restituito
Changed
- Il disegno del visualizzatore XLSX ora preserva i fogli di lavoro sparsi evitando la materializzazione delle celle vuote durante il ridisegno e la risoluzione degli stili
TXLSXWorksheet.ReplaceTextora visita direttamente le celle memorizzate in tempo lineare senza copiare e ordinare l'intera raccolta di celle
Fixed
- La lettura e la scrittura classiche XLS RC4 e RC4 CryptoAPI ora preservano ogni corpo di record in chiaro richiesto da
[MS-XLS], mantengonoBoundSheet8.lbPlyPosnon crittografato, consumano posizioni corrispondenti del flusso di chiavi e attivano la decrittazione prima di leggere il primo record crittografato dopoFILEPASS - La serializzazione SpreadsheetML ora applica il codec simmetrico
_xHHHH_solo ai campi Xstring, mentre le formule e la sintassi dei riferimenti usano l'escaping XML ordinario così i letterali a forma di token mantengono il loro esatto significato di formula
Version 2.244.0
Added
- Importazione dagli appunti multiformato:
XLSPasteFromClipboardRichpreferisce il formato XML Spreadsheet degli appunti (che trasporta formule, stili e unioni) al testo Unicode semplice, conXLSClipboardHasXmlSpreadsheet,XLSGetClipboardXmlSpreadsheeteXLSParseXmlSpreadsheetper il rilevamento del formato, l'estrazione e l'analisi SpreadsheetML 2003
Version 2.243.0
Added
- Nomi definiti esterni:
TXLSXExternalLinkora analizza, memorizza e fa viaggiare le voci<definedNames>(nome + refersTo) dai collegamenti a cartelle di lavoro esterne, conAddDefinedName,FindDefinedNamee accesso indicizzatoDefinedNames[] - Stato di errore di aggiornamento per foglio: ogni
TXLSXExternalSheetDatatrasporta un flagRefreshErrorche registra se l'ultimo tentativo di aggiornamento è fallito, analizzato dall'attributorefreshErrore a esso emesso
Version 2.242.0
Added
TXLSXWorkbook.PreserveRawPartscopia la rappresentazione compressa delle parti invariate (tema, progetto VBA, tabelle pivot e cache pivot) direttamente dall'archivio sorgente durante il SaveAs, evitando la decompressione e la ricompressione delle voci opache preservate
Version 2.241.0
Added
- La proprietà
TXLSXWorkbook.SelectedSheetsabilita il caricamento selettivo dei fogli di lavoro: Open analizza l'XML delle celle solo per i fogli nominati nell'elenco, mentre gli altri fogli mantengono i loro nomi e stati di visibilità con zero celle. ChiamaLoadSheet(Index)per materializzare a richiesta un foglio saltato dall'archivio originale
Version 2.240.0
Added
- La modalità di apertura
TXLSXWorkbook.MetadataOnlyanalizza le proprietà della cartella di lavoro, i nomi definiti, i nomi dei fogli e gli stati di visibilità, gli stili, il tema, le connessioni e i collegamenti esterni, ma salta tutto l'XML delle celle dei fogli di lavoro e le parti satellite per una rapida scoperta di proprietà e nomi dalle cartelle di lavoro di grandi dimensioni
Version 2.239.0
Added
- Archiviazione compatta delle celle a blocchi da 256 righe con handle pubblici stabili, serializzazione per righe amica della cache e compattazione degli stili in tutti i pool della cartella di lavoro prima di ogni salvataggio
- Le sovrapposizioni di stile a intervalli consentono alla formattazione di righe, colonne e rettangoli di restare compatta senza materializzare oggetti di cella vuoti, si risolvono pigramente all'accesso della cella, sopravvivono alle modifiche strutturali e fanno il viaggio di andata e ritorno come voci di cella compatte per colonna, riga e solo stile
Changed
- Il salvataggio normale della cartella di lavoro ora trasmette in streaming ogni riga del foglio di lavoro direttamente nel flusso deflate del pacchetto, così la memoria di picco segue la singola riga più grande invece dell'intero XML del foglio di lavoro
- Le stringhe condivise e le parti XML ausiliarie ora scorrono in streaming una voce alla volta attraverso un unico serializzatore UTF-8 riutilizzabile, limitando la memoria di picco alla voce più grande invece dell'intera parte
Version 2.238.0
Added
TXLSPaginationModelcostruisce pagine logiche riutilizzabili per intervalli, fogli di lavoro e cartelle di lavoro XLS e XLSX con geometria della carta, margini, intestazioni, piè di pagina, bande di righe e colonne, titoli ripetuti, ordine delle pagine, politica delle linee della griglia e posizionamenti dei disegniTXLSWorkbookViewerora fornisce l'anteprima di stampa a modello condiviso, la navigazione tra le pagine con tastiera e rotella di scorrimento, l'accesso in cache aPaginationModel,RefreshPaginationesplicito e l'output EMF della pagina selezionataTXLSPDFExport.CreatePaginationModelespone l'esatto modello di pagina posseduto usato dal conteggio e dal rendering PDF per tutti e sei i tipi di input XLS e XLSX
Changed
- L'esportazione PDF e il conteggio delle pagine ora consumano un unico motore di paginazione invece di mantenere cicli di pagina separati per XLS e XLSX
- L'adattamento a larghezza e altezza ora risolve rispetto alle bande di pagina effettive, incluse le interruzioni manuali e i titoli ripetuti, nell'intervallo di scala di Excel dal 10% al 400%
Version 2.237.0
Added
TXLSFormulaDebuggercrea una sessione interattiva posseduta contenente l'albero delle espressioni analizzato, gli intervalli sorgente, gli operatori, i nodi e i valori degli operandi, i risultati intermedi, l'ordine di valutazione deterministico e lo stato navigabile del passo corrente- Le sessioni di debug delle formule espongono le dipendenze di celle e intervalli con coordinate di foglio risolte, segnalano i rami selezionati e saltati per
IF,IFERROR,IFNA,CHOOSE,IFSeSWITCH, e preservano gli errori interni recuperati con il loro nodo di origine
Changed
Calculatedi cartella di lavoro e foglio di lavoro ora restituisce i fallimenti delle formule di Excel come valori di erroreVariantstandard invece di convertirli inNullTXLSFormulaTracerora registra gli stack di operandi esatti prima e dopo per i passi di push e di riduzione
Version 2.236.0
Added
TXLSXWorksheet.StructuralEditRegistryora consente ai metadati del foglio di lavoro di proprietà dell'applicazione di partecipare a inserimenti o eliminazioni di righe e colonne tramiteIXLSXStructuralEditParticipant
Changed
- Le modifiche strutturali XLSX ora completano il loro lavoro sensibile ai riferimenti in un'unica transazione protetta che copre formule, nomi, convalide, formati condizionali, commenti, collegamenti ipertestuali, disegni, tabelle, query, scenari, tabelle dati, impostazioni di stampa, sparkline, cache e viste pivot ed estensioni del foglio di lavoro
Fixed
- Le righe e le colonne inserite o eliminate ora aggiornano gli intervalli protetti, gli ancoraggi dei commenti a thread, il VML riaperto dei commenti classici, i riferimenti alle sparkline locali e tra fogli, le sorgenti e gli ancoraggi pivot tipizzati, le formule pivot calcolate e i riferimenti riconoscibili all'interno dell'XML preservato delle estensioni del foglio di lavoro
Version 2.235.0
Added
TXLSDirectWriterora aggiunge commenti classici, immagini ancorate ai fogli di lavoro, grafici a colonne, barre, linee, aree, torta, ciambella e a dispersione basati su formule e ChartML completo fornito dal chiamante senza costruire un modello a oggetti completo della cartella di lavoro- Le immagini possono essere fornite come byte, flussi cercabili con trasferimento opzionale della proprietà o percorsi di file e possono usare contenuto PNG, JPEG, GIF, BMP, EMF o WMF
Changed
- Le parti ricche dello scrittore diretto usano descrittori di canale laterale del foglio corrente, assegnano gli identificatori di relazione del foglio di lavoro prima che il foglio si chiuda e trasmettono in streaming i media e le parti XML correlate dopo l'XML del foglio di lavoro per mantenere la memoria delle righe indipendente dalla dimensione del foglio
Version 2.234.0
Added
TXLSDirectReaderora espone eventi opzionali di dimensione, formato del foglio, colonna, riga, riquadro e intervallo unito con record di layout tipizzati- Gli eventi di colonna e riga segnalano larghezze o altezze, stato di nascosto e compresso, livelli di struttura e indici di stile sorgente senza costruire oggetti di cella del foglio di lavoro
Changed
- I callback di layout assegnati usano un passaggio di metadati a memoria limitata prima della consegna delle celle, garantendo che gli intervalli uniti e gli altri dati di layout arrivino prima delle celle che ne dipendono, mentre le scansioni ordinarie di sole celle mantengono il percorso originale a passaggio singolo
- Le letture dirette parallele mantengono i callback di layout sul thread chiamante e completano i metadati del foglio selezionato prima di svuotare le code ordinate delle celle dei worker
Version 2.233.0
Added
TXLSXChartTextStyleora fornisce nomi di font tipizzati per titolo del grafico, legenda, titolo degli assi ed etichette degli assi, dimensioni in punti, colori RGB, enfasi e rotazione del testoTXLSXChartLayoutora fornisce posizionamento manuale normalizzato di area del tracciato, titolo del grafico, titolo degli assi e legenda con modalità esplicite di bordo o fattore e destinazioni del tracciato interne o esterne- I grafici ora espongono controlli tipizzati di visibilità, posizione, sovrapposizione, stile del testo e layout della legenda insieme alle impostazioni di sovrapposizione del titolo del grafico
Changed
- I layout manuali serializzano sempre gruppi completi di x, y, larghezza e altezza usando modalità predefinite compatibili con Office così Excel non scarta coordinate parziali o in conflitto
Fixed
- La modifica di font o layout tipizzati dei grafici preserva gli elenchi di estensioni non correlate e il contenuto dei namespace personalizzati, mentre la cancellazione di una proprietà nota di colore o enfasi non ripristina più il valore importato durante l'unione strutturale
Version 2.232.0
Added
TXLSXImageora espone bordi di ritaglio in percentuale, trasparenza, luminosità, contrasto, rotazione in gradi e modalità di riempimento per allungamento o affiancamentoTXLSXImage.HasPreservedXmlsegnala se il DrawingML importato è disponibile, mentreClearPreservedXmlfa optare una singola immagine per una rigenerazione pulita del modello tipizzato
Changed
- I valori degli effetti delle immagini usano un'archiviazione compatta a virgola fissa e scrivono unità DrawingML native senza allocare oggetti helper per effetto
Fixed
- La modifica di una proprietà supportata su un'immagine importata ora preserva le estensioni non correlate, le scelte di compatibilità del markup, gli attributi personalizzati, gli effetti di forma e il contenuto qualificato da namespace
Version 2.231.0
Added
- I grafici XLSX importati ora preservano il loro ChartML originale mentre
TXLSXWorkbook.PreserveUnsupportedPartsè abilitato, mantenendo namespace sconosciuti, alternative di compatibilità del markup, elenchi di estensioni, stili personalizzati e formattazione non modellata TXLSXChart.HasPreservedXmlsegnala se il ChartML originale è disponibile, eClearPreservedXmlconsente alle applicazioni di far optare un singolo grafico per una rigenerazione pulita del modello tipizzato
Changed
- Il salvataggio di un grafico importato non toccato riproduce il suo ChartML originale, mentre le modifiche alle proprietà supportate sovrappongono strutturalmente solo i nodi del grafico modellati e mantengono il contenuto non correlato al suo posto
Fixed
- La modifica di un titolo del grafico, di una serie, di un asse o di un'altra proprietà supportata non scarta più le estensioni non correlate create da Excel, il contenuto alternativo, gli stili o la formattazione della parte del grafico
Version 2.230.0
Added
TXLSXChart.AddPlotGroupora costruisce grafici combinati ordinati le cui famiglie di grafici e serie mantengono assegnazioni indipendenti di asse primario o secondario- I grafici ora espongono assi di categoria e valore primari e secondari più un asse delle serie, con impostazioni tipizzate di categoria, valore, data e asse delle serie incluse posizioni, identificatori, incroci, unità di data, intervalli delle etichette e visibilità
- I grafici a colonne, barre, linee, torta e aree ora hanno tipi di grafico 3D dedicati con rotazione, altezza, profondità, prospettiva, assi ad angolo retto e profondità del gap configurabili
- Le serie ora espongono cache tipizzate stringa e numeriche per nomi, categorie, valori e dimensioni delle bolle, inclusi indici di punti sparsi e codici di formato numerico
Changed
- Le API di compatibilità
ChartType,AddSerieseSeriespiatte continuano a indirizzare il gruppo di tracciati primario, mentre il modello del grafico mantiene ogni gruppo di tracciati ordinato
Fixed
- L'apertura e il risalvataggio dei grafici combinati non li comprime più in un'unica famiglia di grafici né perde gli assi secondari, di data o delle serie
- I riferimenti di formula dei grafici e i valori delle serie memorizzati in cache ora sopravvivono alle copie delle cartelle di lavoro e ai cicli di apertura/salvataggio senza essere appiattiti o scartati
- Gli ancoraggi dei grafici ora vengono abbinati alle loro parti di grafico tramite l'identificatore di relazione, così le applicazioni che riordinano le voci di relazione non scambiano più i contenuti dei grafici tra le posizioni dei fogli di lavoro
Version 2.229.0
Added
TXLSXWorksheet.HeaderFooterImagesora crea, individua, sostituisce e rimuove slot di immagine tipizzati per ogni posizione sinistra, centrale e destra di intestazione o piè di pagina sulle pagine dispari, pari e prima pagina- Le immagini di intestazione e piè di pagina espongono i loro dati grezzi, il formato, il titolo, le dimensioni in punti e i margini in punti, con caricamento diretto da file PNG, JPEG, GIF, BMP, EMF e WMF
Changed
- Le immagini delle pagine pari e della prima pagina abilitano automaticamente le varianti di pagina corrispondenti e mantengono i codici di campo immagine richiesti quando il testo dell'intestazione o del piè di pagina viene modificato
Fixed
- I commenti del foglio di lavoro e le immagini di intestazione o piè di pagina ora mantengono relazioni VML indipendenti quando condividono un singolo foglio di lavoro
- Gli slot di immagini di intestazione e piè di pagina creati da Excel ora conservano i loro byte di immagine, formati, titoli, dimensioni, margini e relazioni attraverso i cicli di apertura e salvataggio
Version 2.228.0
Added
- I fogli di lavoro XLS classici e le raccolte di forme ora creano e individuano controlli tipizzati
TXLSButtoneTXLSRadioButtoninsieme a caselle di controllo, caselle combinate e caselle di riepilogo - I controlli dei moduli ora espongono nomi di macro, celle collegate, intervalli di input, stati di selezione, aspetto piano o 3D e collegamenti di gruppi di opzioni tramite proprietà tipizzate
- I nomi definiti espongono
IsMacroin modo che le associazioni di macro conservino i metadati del nome di cartella di lavoro richiesti
Fixed
- La modifica e il risalvataggio dei controlli dei moduli classici non elimina più gli stati di selezione, le associazioni di macro, le formule delle celle collegate, gli intervalli di origine o i metadati dei gruppi di opzioni supportati
- La cancellazione di un intervallo di origine di una casella combinata o di una casella di riepilogo ora rimuove la formula di input serializzata invece di ripristinare l'intervallo precedente alla successiva apertura
Version 2.227.0
Added
LINESTeLOGESTora restituiscono array di coefficienti multivariabili completi e matrici statistiche opzionali a cinque righeTRENDeGROWTHora restituiscono array di previsione modellati per input a variabile singola e multivariabile
Changed
- L'aritmetica degli array, i confronti, la concatenazione, la negazione unaria e le operazioni percentuali ora trasmettono scalari e righe o colonne singleton mantenendo i risultati per cella
- Le dipendenze di calcolo ora espandono i nomi nidificati di cartella di lavoro e foglio di lavoro, i nomi definiti da formula e i riferimenti multi-area con protezione dei cicli sensibile all'ambito
Fixed
- Un errore in un elemento di un array non fa più collassare il risultato completo né ricade erroneamente nella valutazione scalare
- I nomi definiti da formula le cui dipendenze possono essere risolte staticamente non forzano più un ricalcolo completo volatile non necessario
Version 2.226.0
Added
- Le cache pivot XLSX esistenti e le viste delle tabelle pivot ora si caricano nel modello tipizzato tramite relazioni del pacchetto, inclusi record di cache, campi, elementi condivisi, raggruppamento, filtri, formati, definizioni calcolate ed estensioni
TXLSPivotTable.Makeora valuta i campi di cache calcolati, gli elementi calcolati e i membri di dati calcolati con associazione di nomi sensibile alle dipendenze- Le modalità
ShowDataAsestese aggiungono percentuali padre, percentuali progressive e classifiche crescenti o decrescenti con markup di estensione XLSX valido
Changed
- La generazione dei risultati pivot ora applica la visibilità degli elementi, le selezioni di pagina e i filtri per didascalia, data, aggregato e valore prima di costruire i domini raggruppati
- I gruppi numerici, di data e discreti, l'ordinamento per etichetta o valore di dati, i subtotali configurati e le righe o colonne di totale generale materializzate opzionali ora partecipano alla generazione dei risultati
Fixed
- I filtri pivot ora utilizzano markup di filtro a livello radice valido per lo schema e tipi di filtro simbolici anziché valori numerici ambigui
- Il caricamento basato sulle relazioni non presume più nomi convenzionali o sequenziali di parti di cache pivot, record di cache o tabella pivot
Version 2.225.0
Added
TXLSXWorkbook.ConnectionseTXLSXWorksheet.QueryTablesoffrono ora creazione e modifica tipizzate per i metadati di database esterni, web, testo e risultati di query- I parametri di connessione conservano il loro tipo esatto Boolean, intero, a virgola mobile, stringa o riferimento di cella, inclusi i valori espliciti zero, false e stringa vuota
Changed
- L'apertura e il salvataggio XLSX ora risolvono e scrivono le parti di connessione e di tabelle di query tramite le relazioni proprietarie, sincronizzano le tabelle dei risultati e i nomi definiti e preservano attributi sconosciuti, nodi figlio ed elenchi di estensioni
- Le modifiche a righe e colonne mantengono allineati gli intervalli dei risultati delle query, mentre le copie dei fogli di lavoro all'interno della stessa cartella di lavoro e tra cartelle di lavoro preservano la proprietà delle query e rimappano gli identificatori di connessione e i nomi in conflitto
Fixed
- Le tabelle di query possono coesistere con tabelle standard, commenti in thread e tabelle pivot senza collisioni di identificatori di relazione del foglio di lavoro o della cartella di lavoro
Version 2.224.0
Added
- I fogli di lavoro XLS classici e i fogli di lavoro XLSX moderni espongono ora
AddDataTableeDataTablesper le tabelle di dati What-If a una variabile per riga, una variabile per colonna e a due variabili
Changed
- Il ricalcolo della cartella di lavoro valuta ogni risultato della tabella di dati con un contesto di input isolato, incluse le dipendenze indirette delle formule, e preserva le definizioni più i risultati memorizzati nella cache attraverso apertura, salvataggio, copia del foglio di lavoro e modifiche strutturali di righe o colonne
Fixed
- Le celle di input What-If eliminate producono ora risultati
#REF!e il ricalcolo classico della cartella di lavoro visita ogni foglio di lavoro invece di omettere il primo foglio - L'inserimento di righe nella parte superiore di un foglio di lavoro classico non rischia più una violazione di accesso su Win64
Version 2.223.0
Changed
- L'annullamento del lettore diretto parallelo ora si propaga attraverso le letture attive dei membri ZIP e ogni fase di decompressione invece di attendere il prossimo pull XML
Fixed
- L'interruzione di una scansione parallela del foglio di lavoro non attende più il completamento di una grande lettura XML compressa prima che i worker bloccati vengano rilasciati
Version 2.222.0
Added
TXLSDirectReader.ParallelBufferMemoryLimitlimita il payload aggregato della coda delle celle grezze per la scansione parallela del foglio di lavoro, mentreParallelPeakBufferedBytesespone il picco misurato per diagnostica e test di capacità
Changed
- Le letture dirette parallele ora trasmettono in streaming le voci ZIP del foglio di lavoro nei lettori XML locali al worker e in code produttore-consumatore limitate invece di trattenere l'intero XML del foglio di lavoro decompresso e i buffer di celle completi per foglio
- I fogli di lavoro attivi ricevono budget di coda indipendenti e vengono elaborati in finestre delle dimensioni del worker, preservando l'ordine di callback senza consentire ai fogli successivi di far morire di fame il foglio attualmente emesso
Fixed
- Le interruzioni di cella, gli errori di callback e gli errori del worker ora svegliano i produttori e i consumatori bloccati, interrompono cooperativamente i pull XML, uniscono tutti i worker e lasciano il lettore diretto riutilizzabile
Version 2.221.0
Changed
- L'apertura di XLSX multi-foglio ora trasmette in streaming ogni voce ZIP del foglio di lavoro direttamente nel suo decompressore e lettore XML locali al worker invece di trattenere l'XML del foglio di lavoro decompresso prima dell'analisi
- I lettori simultanei dei fogli di lavoro serializzano solo brevi letture posizionate dall'origine del pacchetto, così la decompressione e l'analisi XML rimangono parallele mentre la memoria di input transitoria del foglio è limitata dal numero di worker attivi
Version 2.220.0
Added
- La generazione dei risultati della tabella pivot esegue ora tutte e nove le modalità classiche
ShowDataAs, inclusi differenza, percentuale di un elemento di base, differenza percentuale, totale progressivo, percentuale di riga, percentuale di colonna, percentuale del totale e calcoli di indice xlPivotBaseItemPreviousexlPivotBaseItemNextforniscono selettori tipizzati per gli elementi di base adiacenti nei calcoli di confronto
Changed
- Le percentuali pivot e i valori di indice utilizzano i totali di riga, colonna e generali aggregati direttamente dai record di origine, preservando la corretta semantica di Average, Product, Count, varianza e deviazione standard senza rianalizzare l'origine
- I totali progressivi seguono l'ordine degli elementi pivot, si reimpostano indipendentemente per ogni gruppo omologo e conservano un'archiviazione sparsa dei risultati per le pivot ad alta cardinalità
Fixed
- I record BIFF8
SXDIora usano il layout fisso standard di 14 byte e preservanoShowDataAs, il campo di base, l'elemento di base, il formato numerico e il nome visualizzato tramite letture tipizzate, mentre i record HotXLS legacy rimangono leggibili - I campi dati XLSX ora scrivono gli indici dei campi pivot, mappano i selettori precedente e successivo ai valori OOXML richiesti ed emettono gli attributi di base solo per le modalità che li utilizzano
- Le celle di confronto mancanti rimangono vuote, mentre i denominatori zero presenti restituiscono
#DIV/0!invece di essere confusi con dati mancanti
Version 2.219.0
Fixed
VDBora applica l'ammortamento a saldi decrescenti variabile su periodi frazionari, passa all'ammortamento lineare quando vantaggioso e onorano_switch- Fattori zero, limiti di valore residuo, periodi di inizio frazionari e intervalli di periodi non validi ora seguono risultati compatibili con Excel invece di arrotondare i periodi e restituire un'approssimazione semplificata di ammortamento a saldi decrescenti
Version 2.218.0
Added
TXLSXWorksheet.Scenariosora fornisce la creazione tipizzata del gestore scenari What-If con scenari denominati, indici attivo e mostrato, intervalli di celle variabili, metadati utente e commento, stati bloccato e nascosto, e valori delle celle di input di proprietà- Le definizioni di scenario ora seguono le copie del foglio di lavoro e le modifiche strutturali di riga o colonna, mentre i limiti di compatibilità Excel vengono convalidati prima che metadati non validi possano essere scritti
Fixed
- L'apertura e il salvataggio di scenari creati da Excel ora preservano gli attributi radice e le celle di input nidificate invece di appiattire la gerarchia in XML raw con perdita
- Gli elementi del foglio di lavoro Scenario, AutoFilter, consolidamento dati, celle unite e fonetici ora usano l'ordine dello schema in modo che i consumer rigorosi di fogli di calcolo non richiedano un passaggio di riparazione
Version 2.217.0
Added
TXLSXWorksheet.IgnoredErrorsfornisce ora la creazione tipizzata per ogni categoria di errore ignorato standard con riferimenti multi-area, supporto per la copia del foglio di lavoro, aggiornamenti di modifica strutturale e cicli di apertura/salvataggioTXLSXWorkbookespone ora la modalità di riferimento, il ricalcolo al salvataggio, la precisione completa, il calcolo simultaneo e le impostazioni di concorrenza manuale insieme alle opzioni di calcolo esistenti
Fixed
- Ogni impostazione di calcolo del workbook non predefinita produce ora indipendentemente e mantiene in un ciclo di andata e ritorno un elemento
calcPrordinato in base allo schema, inclusi i limiti di iterazione configurati prima dell'attivazione dell'iterazione - Le modalità di calcolo, le modalità di riferimento, i limiti di iterazione, gli identificatori di calcolo e i conteggi di concorrenza manuale ora rifiutano o normalizzano i valori non validi invece di scrivere uno stato ambiguo del workbook
Version 2.216.0
Changed
XMATCHeXLOOKUPora eseguono ricerche binarie logaritmiche ascendenti o discendenti quando richiesto, inclusi i limiti di duplicati e di corrispondenza approssimata compatibili con ExcelXIRRora onora la propria stima con un solver protetto in grado di trovare radici alte e sensibili alla stima, mentreXNPVusa una sommatoria compensata e input di data e tasso validati- La ricerca dei nomi definiti XLSX ad alta cardinalità ora usa un indice hash pigro consapevole dell'ambito conservando l'ordine serializzato, la precedenza dei nomi locali e il comportamento di prima corrispondenza
- Le parti di pacchetto XLSX preservate ora allocano la propria dimensione non compressa dichiarata una sola volta conservando la verifica completa di lunghezza e CRC
Fixed
- Le modalità di ricerca non valide, le ricerche binarie con caratteri jolly, gli intervalli di ricerca bidimensionali e i vettori di ritorno di
XLOOKUPnon corrispondenti ora segnalano errori di formula invece di produrre risultati ambigui XIRReXNPVora respingono segni di flusso di cassa, tassi, stime e date non validi, troncano i seriali di data frazionari e segnalano la non convergenza invece di restituire un punto medio non verificato
Version 2.215.0
Added
FREQUENCYora restituisce una matrice verticale con un risultato per fascia più il secolo di overflow
Changed
SORTora usa un ordinamento stabile e scalabile per righe o colonne, conservando l’ordine sorgente delle chiavi ugualiUNIQUEora usa una corrispondenza stabile indicizzata tramite hash per righe o colonne, inclusi i risultatiexactly_oncee il testo senza distinzione tra maiuscole e minuscolePERCENTRANK.INC,PERCENTRANK.EXCeMODE.MULTora scalano in modo efficiente su input ad alta cardinalità invece di affidarsi a scansioni quadratiche
Fixed
- L’opzione
by_coldiSORTeUNIQUEora opera sulle colonne invece di ricadere sul comportamento per righe
Version 2.214.0
Added
- L’apertura degli XLSX ora accetta parti XML UTF-16 in streaming little-endian e big-endian con byte-order mark o con la dichiarazione obbligatoria specifica dell’endian, inclusi i caratteri al di fuori del Basic Multilingual Plane
Changed
- I refresh della cache PivotTable ad alta cardinalità ora usano indici hash deterministici per i valori condivisi e allocano la matrice dei record una sola volta, conservando l’ordine degli elementi al primo rilevamento ed evitando ricerche lineari ripetute e crescita riga per riga
- Le letture dirette proiettate scartano le celle al di fuori delle righe e delle colonne selezionate prima di copiare valori raw, formule e testo formattato nei buffer per foglio
Fixed
- L’XML malformato con byte-order mark duplicati, dichiarazioni di codifica non supportate o contraddittorie, firme UTF-32, lunghezze di byte UTF-16 dispari o coppie surrogate non valide viene ora rifiutato
- I worker paralleli del direct-reader ora inizializzano tutto lo stato dei job prima di avviarsi, smettono di accettare nuovi job di foglio dopo un fallimento, sollevano di nuovo l’errore del job con indice più basso in modo deterministico e puliscono ogni worker creato se la costruzione del pool fallisce
Version 2.213.0
Added
T.TESTora valuta i campioni indipendenti con varianza uguale pooled o varianza disuguale di Welch in aggiunta ai campioni appaiati, incluse le probabilità una-coda e due-code
Changed
- L’apertura degli XLSX ora segue le destinazioni delle relazioni di workbook, worksheet e drawing per fogli, stringhe condivise, stili, temi, macro, collegamenti esterni, commenti, commenti in thread, VML, disegni, immagini, grafici, tabelle e PivotTable, inclusi i pacchetti validi che usano percorsi di parte rinominati o non contigui
Fixed
- I pacchetti malformati con identificatori di relazione duplicati non permettono più a una relazione successiva non supportata di sostituire la prima destinazione utilizzabile durante il recupero di compatibilità
Version 2.212.0
Changed
- Il tracciamento delle dipendenze delle formule ora scala meglio sui fogli di grandi dimensioni indicizzando le dipendenze di cella e di intervallo prima delle ricostruzioni e dell’invalidazione delle celle sporche
- Le formule statistiche e di regressione di grandi dimensioni ora valutano ogni valore numerico negli intervalli forniti invece di fermarsi al precedente buffer a dimensione fissa
Fixed
- Le celle XLSX al di fuori della griglia del foglio vengono rifiutate in modo coerente, così le coordinate non valide non possono più fare da alias per celle valide
- La modifica delle formule non azzera più la modalità di calcolo del workbook, i limiti di iterazione, i flag di full-calculation o altre impostazioni di calcolo
- Le letture da elenco di blob ora convalidano in modo esplicito gli intervalli richiesti e permettono slice vuote valide alla fine dello stream
Security
- La cifratura XLS classica ora copre gli stream della cache pivot insieme ai dati del foglio
- Le code di estensione SST malformate e i record della central-directory ZIP vengono rifiutati prima che allocazioni oversized, letture troncate o record di directory falsi incorporati nei commenti possano influenzare il caricamento
Version 2.211.0
Added
TXLSPivotTable.Makeora materializza ogni campo dati configurato con la propria aggregazione ed espande i valori su righe o colonne in base aDataFieldAxisIsRow
Changed
- La generazione del risultato pivot riutilizza i domini di chiave di riga e di colonna indicizzati su hash per tutti i campi dati, seleziona l’accumulatore dense o sparse in base alla forma del risultato, conserva l’ordine degli elementi della cache oltre le nove chiavi ed emette etichette combinate leggibili per gli assi a più campi
Fixed
Countora include valori di cache di testo non vuoto, booleani, di errore, di data e numerici, mentreCountNumsinclude solo valori numerici e di data;Productrestituisce zero per le intersezioni senza valori numerici, i blank non vengono più contati come elementi e i pivot solo valori possono materializzare i propri totali generali senza campi riga o colonna
Version 2.210.0
Added
TXLSWorkbookViewerora rende i riempimenti condizionali XLSX, il colore e l’enfasi del font, i formati numerici, le barre dati direzionali positive e negative, i gradienti, i bordi, gli assi, i valori nascosti e tutte le famiglie di set di icone integrateTXLSWorkbookViewer.RefreshConditionalFormatsricostruisce lo stato aggregato e di soglia preparato dopo che i chiamanti modificano sul posto un workbook XLSX collegato
Changed
- Il visualizzatore memorizza in cache un valutatore di formato condizionale preparato per ogni foglio attivo, lo riutilizza tra operazioni di scorrimento, selezione e repaint e lo rilascia quando il workbook o il foglio cambia
Fixed
- Gli assi delle barre dati al limite più a destra vengono ora ritagliati all’interno della cella proprietaria invece di essere disegnati nella cella adiacente
Version 2.209.0
Added
- I fogli XLSX ora espongono un valutatore di formato condizionale preparato che risolve la priorità delle regole,
StopIfTrue, le formule relative, gli stili differenziali, il ranking Top/Bottom, i test sopra/sotto la media, i valori duplicati e univoci, i periodi di data relativi, le scale a due e tre colori, le barre dati e i set di icone per qualsiasi cella
Changed
- L’export HTML e PDF ora rende i riempimenti condizionali corrispondenti, l’enfasi e il colore del font, i formati numerici, le scale di colore, le barre dati direzionali positive e negative, gli assi espliciti, i glifi della famiglia di icone, i valori nascosti e i colori del tema con risoluzione della tinta
- I domini di formato condizionale di grandi dimensioni ora riutilizzano le formule relative compilate senza allocazione dell’albero sintattico per ogni cella, elaborano in stream le statistiche di media, deviazione, minimo e massimo, conservano i valori ordinati solo per le regole di ranking o percentile, ordinano in batch le chiavi duplicate Unicode e usano indici candidato a banda di riga per evitare la scansione di regole non correlate
Fixed
- Le regole condizionali classiche ora caricano correttamente i tipi di espressione e valutano in modo coerente l’inversione tra i limiti, i predicati di testo case-insensitive, le celle vuote e i predicati di errore
Version 2.208.0
Changed
- Il motore di cella storage packed ora scrive payload nativi tagged per stringa, booleano, errore e blank, itera le celle in ordine row-major e applica run-length encoding alle celle consecutivi di tipo uguale per un uso di memoria inferiore e un output sequenziale più rapido
- Le stringhe condivise dei workbook classici ora mantengono i byte dei caratteri in un’unica allocazione e creano i valori di stringa decodificati in modalità lazy, riducendo l’overhead di allocazione per le grandi tabelle di stringhe univoche
Added
- Le tabelle pivot ora possono calcolare una matrice di risultato completa dai record della cache con raggruppamento di chiave di riga e di colonna e con tutte e 11 le funzioni di aggregazione supportate
- I grafici dei workbook classici ora espongono informazioni tipizzate su serie, assi, legenda e gruppo-grafico per i flussi di conversione e di ispezione
Version 2.207.0
Added
TXLSPivotCache.RefreshFromSourcecostruisce una cache pivot da un intervallo di celle di un foglio di origine: legge la riga di intestazione per assegnare i nomi dei campi, distilla i valori distinti di ogni riga di dati nel dominio degli elementi condivisi per campo, fissa il tipo di campo dal primo valore non vuoto e registra l’indice dell’elemento condiviso per ogni coppia (record, campo) — così una tabella pivot può essere creata tramite programma da un intervallo di dati invece di affidarsi alrefreshOnLoaddi Excel. Un lettore di valori basato su callback mantiene l’unità pivot priva di una dipendenza diretta dal foglio di lavoro
Version 2.206.0
Added
- Il nuovo
TlxCellMMU(unitàlxCellMMU) implementa un motore di archiviazione celle compatto, row-major, con codifica run-length delle serie di celle vuote o di tipo uguale e un codice di tipo a byte etichettato che funge anche da selettore della larghezza dei dati — così una colonna di piccoli interi costa un byte per cella invece di otto. Il motore codifica i numeri nella larghezza minima che conserva il valore (int8 / int16 / int32 / interi scalati a 2 / 4 decimali / IEEE double), archivia in modo compatto le celle stringa-indice, booleane, di errore e vuote ed espone un’APIGetValue/SetNumber/SetStringpiù un iteratore in avanti. Si tratta del back-end di nuova generazione, dietro un feature flag, per l’APITXLSXCellsesistente, con l’obiettivo di una riduzione del working set del 10–25× sui fogli densi
Version 2.205.0
Added
TXLSCustomChart.GetChartInfonow decodes a semantic summary from the raw BIFF chart record stream — chart type family (bar, line, pie, area, scatter, radar, doughnut, surface, bubble), the series count, e legend presence — so a BIFF chart’s type can be queried programmatically e a BIGH-to-XLSX chart conversion can pick the right target family. The byte-passthrough storage that guarantees round-trip fidelity is unchanged
Version 2.204.0
Changed
- La tabella delle stringhe condivite del classico
.xlsscrive ora le stringhe solo ASCII nella codifica Latin-1 compressa ([MS-XLS] §2.5.294fHighByte=0, un byte per carattere) invece di usare sempre UTF-16, riducendo all’incirca a metà la dimensione della SST — e quindi del file.xls— per i workbook ricchi di ASCII
Version 2.203.0
Added
- New
TlxCompoundFilereads e writes the Compound File Binary (OLE2) container format directly in pure Pascal, with noole32.dll/ COMIStoragedependency — opening the door to in-memory e cross-platform.xlshandling. The reader covers the v3 layout HotXLS meets in the wild (header + in-header DIFAT + FAT chain walk + MiniFAT e the mini-stream for streams under 4096 bytes + the directory tree); the writer emits a minimal-but-valid v3 container sufficient for HotXLS’s output
Version 2.202.0
Added
- The autofilter sort state now has a typed model (
TXLSXSortStatewithTXLSXSortConditionchildren) covering sort-by value / cell color / font color / icon, sort method (none / stroke / pinYin), case sensitivity, column sort, e per-condition custom lists — so applications can build sort states programmatically instead of editing raw XML, while the legacy opaqueSortStateXmlpassthrough still wins for files HotXLS did not author - I filtri dinamici sono ora letti e scritti come
TXLSXDynamicFilterTypetipizzato (sopra/sotto la media e deviazione standard, oggi/ieri/domani, questa/scorsa/prossima settimana, mese, trimestre e anno, anno fino a oggi, Q1–Q4, M1–M12) con limiti opzionalival/maxVal— l’apertura di un workbook che usa un filtro dinamico non lo scarta più al salvataggio
Version 2.201.0
Added
- Surface e 3-D surface charts (
xlsxChartSurface/xlsxChartSurface3D) are now first-class chart types — written, read, e round-tripped like the other chart families - L’API di creazione delle autoshape copre un sottoinsieme pratico della lista delle geometrie predefinite OOXML — triangoli, rombi, parallelogrammi, esagoni, ottagoni, frecce, chevron, callout, nodi di diagramma di flusso, stelle, cuori, sole, luna, parentesi e graffe — ciascuno mappato al token
prstcorretto e all’id di shape di[MS-ODRAW], così le shape create vengono renderizzate correttamente in Excel (la lista completa di 187 preset era già preservata nel round-trip tramite il passthrough raw-anchor)
Version 2.200.0
Fixed
- Opening a workbook whose autofilter uses a color filter o an icon filter no longer drops that filter on save —
colorFiltereiconFilterare now read into typed columns (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) e re-emitted verbatim, instead of being lost as unrecognised filter-column children
Version 2.199.0
Added
TCondFormatRule.Evaluateanswers whether a conditional-formatting rule fires for a given cell, covering cell-value comparisons, formula expressions, text contains/begins/ends, blanks, e error rules — the foundation for querying which cells a rule currently highlights e for rendering CF results outside Excel
Changed
FACTe the internal factorial helpers now use a precomputed 0!..170! table instead of recomputing an O(n) product on every call, speeding upFACT, multinomial coefficients, e the Poisson/Binomial/chi-square distribution paths
Version 2.198.0
Changed
- Il salvataggio di un foglio di lavoro raggruppa ora le celle in righe con un singolo passaggio di tipo conta-riempi invece di far crescere l’indice di ciascuna riga con una realloc per cella, eliminando una copia nascosta O(celle × celle-per-riga) sui fogli di grandi dimensioni
- The formula dependency graph now indexes its reference ranges by (sheet, row) so seeding a dirty cell binary-searches the candidate band instead of scanning every formula on every changed cell — the bigger the workbook e the more sheets it has, the larger the speedup on recalculation
- Row-major, column-sorted cell traversal is now exposed as
TXLSXWorksheet.BuildRowMajorCellOrderso save, clipboard, autofilter e other row-ordered consumers share one traversal instead of re-deriving it
Version 2.197.0
Fixed
- I grafici radar, stock e pie-of-pie/bar-of-pie non vanno più persi quando un workbook
.xlsxche li contiene viene aperto e risalvato — il chart reader ora riconosce gli elementi contenitorec:radarChart,c:stockChartec:ofPieChartche già scrive, ripristinando una copertura simmetrica di lettura/scrittura SUBTOTALcon codici di funzione 101–111 ora esclude i valori sulle righe nascoste, eAGGREGATEonora ora i suoi codici di opzione ignore-hidden-row (2, 3, 6, 7), allineandosi a Excel invece di trattare le varianti include-hidden e ignore-hidden come identiche- Chiamare una funzione built-in ad arietà fissa con più argomenti di quelli dichiarati (per esempio
=SIN(1,2)) ora solleva#VALUE!centralmente invece di essere accettata dal dispatcher
Version 2.196.0
Fixed
- Row e column insertion o deletion now partitions cell-value e expression conditional formats plus data validations when edited target areas require different relative formula anchors, while preserving rule settings, assigning unique conditional-format priorities, e keeping aggregate conditional-format domains intact
Version 2.195.2
Changed
- L’esportazione PDF esegue ora il subsetting del font TrueType incorporato tramite l’API
CreateFontPackagedella libreria Windowsfontsub.dll, conservando solo i glifi effettivamente renderizzati dal documento invece di incorporare l’intero.ttf— riducendo tipicamente il PDF dell’8–20× per i fogli ricchi di Unicode; in caso di indisponibilità del subsetting ricade sull’incorporamento completo
Version 2.195.1
Fixed
- Inserting o deleting rows e columns on the classic
.xlsengine now rewrites every affected formula reference (cell formulas e defined names) to match Excel semantics — references below an insertion shift, references fully inside a deletion become#REF!, e partially overlapping areas shrink — instead of leaving stale coordinates
Version 2.195.0
Changed
- L’eliminazione di colonne di tabella converte ora ogni token di riferimento strutturato interessato in
#REF!nelle formule del foglio di lavoro, nelle formule di tabella, nei nomi definiti e nelle serie del grafico, preservando i riferimenti non correlati e i letterali stringa
Fixed
- L’eliminazione di un’intera tabella non lascia più riferimenti strutturati qualificati che puntano a una tabella che non esiste più
- Le convalide dei dati clonate mantengono ora la loro modalità di input IME
Version 2.194.0
Changed
- Row e column edits now keep Excel table column identifiers, names, calculated formulas, totals formulas, filter columns, filter ranges, e sort conditions aligned with the edited table
Fixed
- Conditional-format e data-validation formulas now rebase relative e mixed references when deletion removes their first target area
- Worksheet e table sort states now write valid attributes e discard conditions whose ranges were deleted
Version 2.193.0
Changed
- Row e column edits now update complex e cross-scope defined-name formulas, bubble-chart data ranges, e formula-based visual conditional-format thresholds
- Bubble e scatter charts now restore their X-axis, Y-axis, e bubble-size series ranges when reopened
Fixed
- Multi-area conditional-format e data-validation targets now shift each surviving area independently instead of leaving the complete target list unchanged
- Text box e WordArt anchors now move o resize with inserted e deleted rows e columns
Version 2.192.0
Added
- Streaming direct reads e row-cursor traversal can opt into structured rich strings with complete run formatting, phonetic runs, e phonetic properties while retaining bounded shared-string storage
TXLSDirectWriter.WriteRichStringwrites formatted e phonetic text as inline o deduplicated shared strings
Changed
- Rich shared-string deduplication now distinguishes run formatting e phonetic metadata while keeping ordinary string interning on its existing fast path
Fixed
- Il testo fonetico nelle stringhe inline non è più incluso nel valore cella visualizzato
Version 2.191.0
Added
TXLSXRange.SetDynamicArrayFormulacrea ora formule matrice dinamiche native con la completa catena di metadati XLDAPR di Excel
Changed
- Dynamic-array roots now share one deduplicated workbook metadata record e cross-workbook worksheet o range copies remap that record into the destination workbook
- I metadati matrice dinamica supportati restano disponibili quando la preservazione delle package-part non supportate è disabilitata, mentre i metadati di valore non correlati vengono comunque rimossi
Fixed
- Dynamic-array spill cells are no longer modelled as legacy CSE followers, e replacing o clearing the root no longer leaves stale metadata indexes
- Removing the final dynamic-array root now removes the unused metadata part, workbook relationship, e content-type entry
Version 2.190.0
Changed
- Streaming direct reads e row-cursor traversal now expand shared-formula followers into complete cell-relative formulas while retaining projection e bounded-memory behaviour
Fixed
- Dynamic-array workbooks now preserve cell e value metadata indexes, formula recalculation attributes, metadata package relationships, e unchanged future-funzione prefixes during open e save cycles
- La disabilitazione della preservazione delle parti non supportate non lascia più indici di metadati del foglio di lavoro orfani dopo la rimozione della parte di metadati
Version 2.189.0
Added
- Opening XLSX workbooks now expands shared-formula followers into complete per-cell formulas with correct relative, absolute, mixed, range, e sheet-qualified references
Fixed
- Self-closing shared-formula followers no longer capture later value o formula XML, e their cached results survive open e save cycles
- CSE array formulas now retain their anchor e follower relationships through row o column structure edits, complete-range copies, worksheet duplication, e cross-workbook sheet copies
- Assigning a normal formula o clearing a cell now removes stale CSE array membership so calculation cannot be redirected to an old array anchor
- La copia di solo una parte di una matrice CSE non crea più riferimenti follower orfani nella destinazione
- Range copies now snapshot overlapping sources e shift relative formula references, preventing source cells o array anchors from being overwritten before they are copied
- Row o column edits that intersect only part of a CSE array are rejected instead of silently resizing o detaching the array
Version 2.188.0
Added
TXLSDirectReader.SharedStringMemoryLimitbounds decoded shared-string memory e automatically migrates larger tables to delete-on-close indexed temporary storage with a fixed-size value cacheTXLSRowCursor.SharedStringMemoryLimitespone lo stesso controllo di archiviazione limitato delle stringhe condivite per la traversal di riga solo in avanti
Changed
- Direct shared-string parsing now preserves whitespace-only values, CDATA, XML entities, non-BMP characters, empty items, e rich-text run order while excluding phonetic guide text from the displayed value
Fixed
- Opening XLSX workbooks now retains every shared-string item in document order, preventing duplicate text o differently formatted rich strings from collapsing later cell indexes
- Saving XLSX workbooks now deduplicates rich strings by run boundaries e formatting properties instead of visible text alone, preserving distinct formatting for cells with the same displayed value
Version 2.187.0
Added
TXLSDirectReader.FirstRoweLastRowrestrict streaming reads to a 1-based row range e stop worksheet parsing after the requested rangeTXLSDirectReader.IncludeColumneClearColumnProjectionprovide constant-time column projection that skips unselected cells before value decoding e callback dispatch
Version 2.186.0
Added
TXLSDirectWriter.UseSharedStringscan deduplicate repeated text into an OOXML shared-strings part with accurate total e unique counts, reducing package size for repetition-heavy dataTSimpleDomReaderprovides a compact single-pass XML tree for random-access queries of workbook metadata e package parts, with case-sensitive QName e local-name lookup
Changed
- Direct XLSX reading now uses hash-assisted exact element dispatch, single-pass attribute harvesting, e constant-time current-row column lookup while preserving streaming memory behaviour
- La generazione XML delle stringhe condivise usa ora un buffer a crescita lineare per evitare copie ripetute dell’intera stringa su tabelle di stringhe distinte di grandi dimensioni
Fixed
- L’esportazione CSV delle formule non aggiunge più un secondo segno di uguale quando il testo della formula ne contiene già uno
- L’esportazione PDF XLSX non tronca più il testo della cella usando una stima basata sul conteggio caratteri prima del layout
- XML reader name hashes now track processing instructions, attributes, e moves back to their owning elements without exposing stale element state
Version 2.185.1
Fixed
- Inserting o deleting rows e columns now adjusts local e cross-sheet formula references exactly once while preserving funzione names e text literals
Version 2.185.0
Added
TXLSPDFExportnow provides one-basedFirstPageeLastPageoutput selection, a complete logicalPageCount, e sixCalculatePageCountoverloads for classic e XLSX ranges, worksheets, e workbooks without constructing PDF page objectsTXLSXWorkbook.SaveWorkbookAsHTMLpublishes visible worksheets in one navigable HTML document with stable per-sheet anchors, escaped titles e sheet names, e an option to include hidden o very hidden sheetsTDataToXLS.BeforeRecordcan skip records before row output eBeforeValuecan transform o suppress field values with dataset, detail-level, source-field, e export-column contextTXLSWorkbookViewerexposes selected-cell comments e hyperlinks, raises an application-controlled hyperlink event, paints comment indicators e XLSX fonts, fills, e alignment, e normalises selection e rendering across merged ranges
Changed
- The ConversionWorkbench example can now produce PDF output e publishes all visible XLSX worksheets for HTML targets, while the WorkbookViewer example demonstrates merged-cell navigation, comments, e hyperlink activation
Version 2.184.0
Added
- Gli intervalli XLS classici e XLSX possono copiare testo tabulare Unicode e HTML stilizzato negli appunti di Windows attraverso
CopyToClipboard, preservando formule, celle unite, collegamenti, formattazione di visualizzazione, e tab, interruzioni di riga e virgolette incorporati citati in sicurezza TXLSXWorkbookora preserva le parti di pacchetto personalizzate raggiungibili da relazioni sconosciute a livello di package root, workbook, foglio di lavoro o disegno, inclusi la gestione delle collisioni di relationship ID, i content type, le relazioni figlio, la scelta della compressione e i byte esatti del payload;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartByteseClearUnsupportedPartsespongono controllo e diagnostica- I salvataggi XLS classici espongono callback di begin, work e end con annullamento attraverso
OnProgressEx, mentreIXLSWorkbookProgressfornisce diagnostica strutturata con codici stabili, gravità, operazione, contesto del foglio, valori di ritorno nativi e dettagli delle eccezioni TXLSXWorkbookespone ora le stesse superfici strutturateDiagnostics,LastDiagnosticeOnDiagnosticper salvataggio, apertura, ricalcolo, annullamento e riporto delle eccezioni- I moduli VBA analizzati supportano ora la modifica di
SourceCodee la riscrittura dello stream di modulo compresso aggiornato attraverso salvataggi XLS classici, storage VBA autonomi e OOXML con macro, preservando i prefissi di stream e il contenuto intatto del progetto - I fogli di lavoro classici e le raccolte di forme espongono ora i controlli di form tipizzati
TXLSCheckBox,TXLSComboBoxeTXLSListBoxcon helper di creazione, etichette, ispezione del tipo di controllo, ancore di cella, eliminazione e scoperta in apertura/salvataggio TXLSXRange.ApplyFormatPatchpuò copiare selettivamente i componenti di font, riempimento, bordo, formato numerico, allineamento e protezione con tiling del pattern sorgente preservando i valori di destinazione e la formattazione non selezionataTDataToXLSpuò esportare ricorsivamente dataset master-detail collegati attraversoReadDetailTableseIndentDetailTables, preservando i collegamenti dati attivi, accodando ogni tabella di dettaglio sotto il suo record master, ed ereditando opzioni di campo, titolo e formattazione a ogni livelloTXLSXWorksheet.AddWordArtcrea testo DrawingML ancorato alle celle con warping preimpostato più colori di testo e contorno configurabili, e il percorso di preservazione raw delle ancore di disegno conserva la forma WordArt completa nei cicli successivi di apertura/salvataggioTXLSWorkbookVieweraggiunge un visualizzatore VCL di fogli di lavoro per oggetti workbook classici e moderni con caricamento di file XLS, XLSX, XLSM, template e ODS, testo formattato delle celle, stili classici, dimensionamento di righe e colonne, intestazioni, rendering di griglia e selezione, barre di scorrimento, selezione col mouse, navigazione da tastiera, posizionamento delle celle, cambio di foglio di lavoro, ed eventi di selezione o del foglio di lavoro- I nuovi esempi Delphi
FeatureShowcaseeWorkbookViewerdimostrano stampa PDF stilizzata, titoli di stampa, interruzioni manuali, controlli di form classici, patch di formato selettive, WordArt, diagnostica, creazione del visualizzatore a runtime, caricamento di file, navigazione delle celle, cambio di foglio ed eventi del visualizzatore, con guide in inglese corrispondenti e argomenti di riferimento per lo sviluppatore
Changed
- L'export PDF di workbook, fogli di lavoro e intervalli XLS classici e XLSX moderni ora scrive ogni foglio di lavoro visibile in un unico documento, salta i fogli nascosti e i fogli grafico, renderizza riempimenti pieni, colori e dimensioni dei font, enfasi grassetto e corsivo, allineamento orizzontale e verticale, bordi di cella espliciti e linee di griglia opzionali del foglio, segue area di stampa, formato carta, orientamento, margini, zoom, impostazione adatta alla larghezza, larghezze di colonna, altezze effettive delle righe, interruzioni di pagina manuali di riga e colonna, righe e colonne di titolo ripetute e intestazioni e piè di pagina in tre parti con campi pagina, pagine totali, nome foglio, data e ora, impagina gli intervalli larghi e alti su entrambi gli assi, emette sintassi numerica PDF indipendente dalla localizzazione e incorpora un font TrueType idoneo più una mappa ToUnicode per il testo fuori da WinAnsi
- Le callback di avanzamento estese XLSX ricevono ora stati begin, work e end affidabili per salvataggio, apertura e ricalcolo, mentre la callback legacy resta limitata a work e ogni operazione azzera lo stato di annullamento precedente
- La serializzazione XLS classica ora propaga i fallimenti di commit di foglio di lavoro, grafico, estensione di stile, VBA, control stream, storage e output invece di riportare successo, e i salvataggi su file preparano il compound file completo prima di sostituire atomicamente la destinazione
- I salvataggi su file XLSX e ODS costruiscono ora un pacchetto temporaneo fratello completo e sostituiscono atomicamente la destinazione solo dopo una finalizzazione riuscita, lasciando i file esistenti invariati dopo annullamento o fallimento
Version 2.183.0
Added
TXLSDirectWritersupporta ora handle di stile cella riutilizzabili a livello di pacchetto e la clonazione di stili senza bufferizzare le righe del foglio di lavoro; lo stesso indice di stile può essere applicato a un numero qualunque di celle o riusato tra fogli di lavoro- Gli stili di cella diretti forniscono 30 capacità di formattazione che coprono nome, dimensione e colore BGR del font, grassetto, corsivo, barrato, contorno, ombra, cinque modalità di sottolineatura, 19 pattern di riempimento con colori di primo piano/sfondo, cinque lati di bordo colorati indipendentemente con 14 stili di linea e direzioni diagonali, formati numerici built-in o personalizzati, allineamento orizzontale e verticale, a capo automatico, riduzione per adattare, rientro, rotazione del testo, prefissi di virgoletta e protezione bloccato/nascosto
- Gli overload con stile sono disponibili per stringhe, numeri, booleani, date, formule, errori e ogni tipo di risultato di formula in cache, permettendo agli esportatori ad alto volume di selezionare uno stile predefinito per indice intero durante le scritture sequenziali
Changed
- Il writer diretto deduplica i componenti font, riempimento, bordo e formato numerico uguali durante la costruzione di
styles.xml, preservando gli indici di stile cella stabili già scritti nei flussi del foglio di lavoro - Le tabelle di stile del direct writer generate ora includono i riempimenti predefiniti standard
noneegray125prima dei riempimenti personalizzati, per una compatibilità OOXML più rigorosa
Version 2.182.0
Added
TXLSDirectWriterscrive ora la formattazione condizionale mantenendo il suo profilo di memoria indipendente dal numero di righe, con otto operatori su valore di cella, regole a espressione, regole di testo contains/not-contains/begins-with/ends-with, regole su valori e percentuali top/bottom, regole sopra/sotto la media, valori duplicati e univoci, celle vuote e non vuote, celle con errore e senza errore, barre dati, scale a due e tre colori e tutte le 17 famiglie base di set di icone- Le regole dirette della formattazione condizionale supportano priorità esplicite, valutazione stop-if-true, opzioni di deviazione standard ed eguaglianza della media, sostituzione delle soglie delle icone, visualizzazione solo icone e invertita, visibilità dei valori delle barre dati, colori BGR e stili differenziali di riempimento, colore font, grassetto e corsivo
Changed
- Il direct writer deduplica gli stili differenziali equivalenti tra i fogli di lavoro e memorizza solo regole e stili della formattazione condizionale, così l'uso di memoria scala col numero di regole anziché col numero di righe del foglio di lavoro
- Le soglie minima e massima automatiche delle barre dati vengono normalizzate ai token standard
minemaxnell'elemento OOXML di base per un'ampia compatibilità con i fogli di calcolo
Version 2.181.0
Added
TXLSDirectWriternow writes worksheet e workbook protection without buffering worksheet data, including 15 fine-grained worksheet permissions, legacy password verifiers, modern hash metadata, editable protected ranges with optional passwords o security descriptors, workbook structure e window locks, raw verifier assignment, e protection clearing
Fixed
- Unsupported drawing anchors now retain every closing element when reconstructed for round-trip output, so shape-only drawings remain well-formed after open e save
- I permessi di protezione del foglio XLSX seguono ora la definizione OOXML del flag locked, così le azioni consentite scrivono
0, quelle proibite scrivono1e gli attributi omessi vengono riaperti con i valori predefiniti dello schema - Legacy XLSX worksheet, protected-range, e workbook passwords now use the Excel-compatible 16-bit verifier algorithm with ANSI conversion e the 15-byte limit
Version 2.180.0
Added
- Il modello del foglio di lavoro XLSX esegue ora il round-trip degli elementi What-If Scenario Manager (
<scenarios>) e Data Consolidation (<dataConsolidate>). Le nuove proprietà raw-XMLScenariosXmleConsolidateXmlsuTXLSXWorksheettrasportano il contenuto interno verbatim — il writer emette gli elementi contenitore, il reader rianalizza i figli scenario/consolidamento dati. I file di modellazione finanziaria che definiscono scenari o definizioni di consolidamento non li perdono più nel round-trip
Version 2.179.0
Added
- Una nuova funzione helper
XlsxBuildNumFmtcostruisce codici di formato numerico OOXML da proprietà semantiche —Decimals,Thousands(separatore),NegativeRed(negativi in rosso),CurrencySymbolePercent. I chiamanti non devono più scrivere a mano stringhe di formato come"$#,##0.00;[Red]-$#,##0.00"— il builder le produce da parametri semplici. Progettata per l'uso conCell.NumberFormatoWorkbook.NumberFormats.Add
Version 2.178.0
Added
- Il modello del foglio di lavoro XLSX esegue ora il round-trip del nome codice VBA (
<sheetPr codeName="..."/>), essenziale per l’interoperabilità VBA dove il progetto VBA fa riferimento ai fogli di lavoro tramite nome codice. Nuova proprietàCodeNamesuTXLSXWorksheet - I commenti supportano ora un interruttore di visibilità
AlwaysShowsuTXLSXComment— quando è True il fumetto del commento è sempre visibile (l’interruttore “Mostra/Nascondi commento” di Excel per singolo commento), non solo al passaggio del mouse - La validazione dei dati esegue ora il round-trip dell’attributo IME mode (
imeMode) suTXLSXDataValidation. L’enum a 11 valori controlla il comportamento del metodo di input CJK quando si entra in una cella (noControl / off / on / hiragana / fullKatakana / ecc.). Essenziale per i file con localizzazione giapponese/coreana/cinese - The worksheet model gains a
PaneStateproprietà for the pane-state attribute on<pane>beyond the existing frozen-mode handling — supportsfrozenSplit(frozen-then-scrollable) esplitstates
Version 2.177.0
Added
- Tre funzioni del foglio di lavoro già registrate ma non implementate hanno ora un dispatch completo:
DOLLAR(testo formattato come valuta),FIXED(testo a decimali fissi con soppressione opzionale della virgola) eAREAS(conteggio delle aree in un riferimento). In precedenza queste erano registrate inInitFuncHashma non avevano alcun case nel motore di calcolo — la valutazione di=DOLLAR(...)restituiva silenziosamente risultati errati - Il modello del foglio di lavoro XLSX esegue ora il round-trip delle scale di zoom per tipo di vista (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), del colore della griglia (sheetView color) e dei flag di visualizzazione della vista del foglio (showFormulas/showZeros). Nuove proprietà suTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - La direzione dei totali della struttura esegue ora il round-trip. Le nuove proprietà
SummaryBelow,SummaryRighteShowOutlineSymbolssuTXLSXWorksheetcontrollano se le righe/colonne di totale compaiono sotto/a destra dei dettagli e se i simboli della struttura sono visibili. Il writer emette<outlinePr>dentro<sheetPr>; il reader lo rianalizza - Il calcPr del workbook ora trasporta gli attributi
forceFullCalcecalcCompletedaccanto al trio esistentecalcId/fullCalcOnLoad/calcMode/iterate
Version 2.176.0
Added
- Il motore delle formule XLSX risolve ora i riferimenti strutturati alle tabelle prima della compilazione. Un nuovo metodo
ResolveStructuredRefssuTXLSXWorkbookanalizza il testo della formula in cerca dei patternTableName[ColumnSpec]e li sostituisce con riferimenti di intervallo A1 concreti usando la raccoltaTXLSXTabledel workbook. Le specifiche supportate includono l’intervallo dati della colonna (Sales[Qty]), la colonna riga-corrente (Sales[@Total]), l’intero dato (Sales[#Data]/Sales[#All]), le intestazioni (Sales[#Headers]) e la riga dei totali (Sales[#Totals]). La risoluzione viene eseguita automaticamente all’interno diGetCompiledFormula— le formule esistenti non sono interessate dato che gli identificatori non di tabella vengono lasciati invariati. In precedenza i riferimenti strutturati causavano il fallimento della compilazione della formula
Versione 2.175.0
Added
- Il motore di formule supporta ora la compilazione di formule in stile riferimento R1C1. Un nuovo metodo
GetCompiledFormulaR1C1suTXLSCalculator(eGetCompiledR1C1suTXLSFormula) accetta una formula scritta in notazione R1C1 (R2C3per l'assoluto,R[-1]C[2]per il relativo,RCper la cella corrente) e la compila convertendola prima in notazione A1 usando riga/colonna della cella della formula. Una funzione autonomaR1C1ToA1esegue la conversione — rileva i marcatoriR/Cisolati (non parte di un nome di funzione come ROUND), analizza gli offset opzionali tra parentesi e produce la referencia A1 equivalente. I letterali stringa e gli identificatori vengono ignorati. In precedenza potevano essere compilate solo formule in stile A1
Version 2.174.0
Added
TXLSDirectWriterAutoFilter output now supports worksheet e table filter columns, value filters, blank filters, date-group filters, custom comparison filters, dynamic filters, top/bottom filters, filter button flags, sort states, sort conditions, XML escaping, e duplicate worksheet/table filter range suppression while streaming XLSX files
Version 2.173.0
Added
TXLSDirectWritertable output now supports table comments, totals row counts, column totals-row labels, column totals-row functions, calculated-column formulas, totals-row formulas, e XML escaping for table-column metadata while streaming XLSX files
Version 2.172.0
Added
TXLSDirectWriternow writes Excel table parts while streaming XLSX files, including worksheet table relationships, table part content types, table ranges, column names, header-row e totals-row flags, e built-in table style display flags without building a full workbook object model
Version 2.171.0
Added
TXLSDirectWriterscrive ora le validazioni dei dati del foglio di lavoro durante lo streaming dei file XLSX, inclusi elenco, numero intero, decimale, data, ora, lunghezza testo, formula personalizzata,sqrefarbitrario, prompt, avviso di errore, consenti vuoto, menu a discesa e flag dei messaggi di input/errore senza costruire un model object completo del workbook
Version 2.170.0
Added
TXLSDirectWriternow writes workbook e sheet-local defined names while streaming XLSX files, including hidden names, comments, generated absolute ranges, print areas, print title rows, print title columns, combined print titles, quoted sheet-name references, XML escaping, e replacement semantics for repeated print-name setters without building a full workbook object model
Version 2.169.0
Added
TXLSDirectWriternow writes worksheet hyperlinks while streaming XLSX files, including external URL, mailto, e file relationships, internal sheet locations, display text, tooltips, single-cell o multi-cell hyperlink ranges, barewww.URL normalization, XML escaping, e percent-encoded relationship targets without building a full workbook object model
Version 2.168.0
Added
TXLSDirectWriternow writes print e sheet-view metadata while streaming XLSX files, including gridline e row/column header display toggles, page margins, odd header/footer text, print gridlines e headings, page centering, paper size e landscape orientation, fit-to-page dimensions, e manual row o column page breaks without building a full workbook object model
Version 2.167.0
Added
TXLSDirectWriternow writes worksheet layout metadata while streaming XLSX files, including default column e row sizes, custom column widths, hidden rows e columns, merged ranges, AutoFilter ranges, frozen panes, sheet tab colors, e right-to-left sheet views without building a full workbook object model
Version 2.166.0
Added
- Streaming XLSX workflows now include sheet-name listing without worksheet scans, name-based row-cursor sheet selection, raw numeric date streaming, direct writer reuse, error-cell writing, e cached formula-result writers for number, string, Boolean, date, e error values
Version 2.165.0
Fixed
TXLSDirectReader.ReadStreamnow restores the caller's stream position after direct scanning, matching the documented stream contract e allowing applications to reuse the same stream after a direct read pass
Version 2.164.0
Added
TDataToXLSdataset exports now supportIncludeFieldseExcludeFieldsstring lists. Applications can whitelist exported fields, omit sensitive columns, e keep headers, data rows, column widths, e export callbacks aligned with the selected field set
Version 2.163.0
Added
- CSV export gains configurable text quoting across the XLS e XLSX engines.
TXLSWorkbooknow exposesCSVEmitFormulaseCSVQuoteAllStrings, eTXLSXWorkbookaddsCSVQuoteAllStrings. When enabled, formula export writes formula text e string fields are quoted while numeric, date, Boolean, Null, e Empty fields keep the normal quoting rules
Version 2.162.0
Added
- Il motore XLSX ottiene un sistema di eventi di progresso interrompibile. Una nuova callback
OnProgressExsuTXLSXWorkbookviene attivata insieme allaOnProgressesistente con tre miglioramenti: (1) un parametroTXLSXProgressState(ppsBegin/ppsWork/ppsEnd) che delimita ogni fase in modo che le UI sappiano quando un’operazione inizia e finisce; (2) un parametro varAbort: Booleanche permette alla callback di annullare l’operazione corrente a metà flusso — i cicli di lettura/scrittura/calcolo controllanoWorkbook.Aborteded escono in modo pulito; (3) una nuova fasexlsxProgressExportingper le operazioni di esportazione (HTML/RTF/CSV/ODS). Un metodo helperFireProgresscentralizza il dispatch a doppia callback. Il flagFAbortedviene azzerato all’inizio di ogni operazione di livello superiore (Open / SaveAs / Recalculate)
Version 2.161.0
Added
- Il model chart di XLSX supporta ora quattro nuovi elementi grafico per una migliore compatibilità con Excel. Tabella dati del grafico (
c:dTable):TXLSXChartottiene gli interruttoriShowDataTable+ShowDataTableKeys— quando abilitati il writer emette l’elemento data-table dentro l’area del grafico così Excel renderizza i dati di origine come griglia sotto l’asse del grafico. Barre up/down + linee hi-low (elementi dei grafici azionari/OHLC):TXLSXChartottieneHasUpDownBars+UpDownGapWidtheHasHiLowLines— il writer emettec:upDownBarsec:hiLowLinesdentro l’elemento chart (grafici a linee/azionari). Controlli vista 3D:TXLSXChartottieneRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— il writer emettec:view3Dal livello chart quando una qualunque proprietà 3D differisce dal valore predefinito. In precedenza nessuno di questi elementi veniva emesso, quindi i grafici costruiti con tabelle dati, elementi di grafico azionario o viste 3D li perdevano nel round-trip
Version 2.160.0
Added
- Formula references now adjust automatically when rows o columns are inserted o deleted in the XLSX engine. The
ShiftSheetGeometrymethod — called byInsertRows/DeleteRows/InsertCols/DeleteCols— now walks every surviving formula cell e rewrites its A1 references to reflect the structural change. A newXlsxAdjustFormulaRowColRefstext-scanner detects single-cell refs (A1,$B$2) e range refs (A1:B3), shifts their row/column components past the insertion point, e converts deleted references to#REF!. Both relative e absolute references are shifted (matching Excel's behaviour). Previously formulas were silently left pointing at the wrong cells after a structural edit
Version 2.159.0
Added
- Lo stato di ordinamento dell'autofilter esegue ora il round-trip attraverso il motore XLSX.
TXLSXWorksheetottiene una proprietàSortStateXmlche trasporta l'XML interno raw dell'elemento OOXML<sortState>(direzione di ordinamento delle colonne, sensibilità alle maiuscole, metodo di ordinamento e ogni<sortCondition>con il suo flag descending + ref). Il writer emette l'elemento dopo<autoFilter>; il reader rianalizza attributi e condizioni di ordinamento. In precedenza lo stato di ordinamento veniva scartato silenziosamente in lettura e mai scritto - Le impostazioni fonetiche/ruby CJK eseguono ora il round-trip attraverso il motore XLSX.
TXLSXWorksheetottienePhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) ePhoneticAlignment(left / center / distributed). Il writer emette<phoneticPr>dopo<sheetData>; il reader rianalizza gli attributti. In precedenza l’elemento fonetico veniva scartato silenziosamente in lettura — i file del mercato giapponese perdevano le impostazioni di aiuto alla lettura furigana
Version 2.158.0
Added
- Il motore XLSX esegue ora il round-trip della tabella degli stili cella denominati (
<cellStyles>). Una nuova classeTXLSXNamedStyle+ la raccoltaTXLSXNamedStylessuTXLSXWorkbooktrasporta l’intera superficie:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Il writer emette un<cellStyle>per voce quando la raccolta non è vuota; il reader rianalizza. In precedenza il writer hardcodava una singola voce"Normal"e il reader scartava tutti gli stili denominati, quindi i file con stili “Good”/“Bad”/“Total”/personalizzati perdevano quei nomi nel round-trip
Version 2.157.0
Added
- Il motore XLSX esegue ora il round-trip dell'intero elemento
<calcPr>, non solo degli interruttori del calcolo iterativo.TXLSXWorkbookottieneCalcId(l'identificatore del motore di calcolo che Excel usa per decidere se i valori in cache sono stantii),FullCalcOnLoad(obbliga Excel a un ricalcolo completo all'apertura — critico per i workbook prodotti da un motore non Excel) eCalcMode(auto / manual / autoNoTable). Il writer emette gli attributi corrispondenti su<calcPr>; il reader li rianalizza. In precedenza venivano gestiti soloiterate/iterateCount/iterateDelta, e il resto veniva scartato silenziosamente
Version 2.156.0
Added
- Il valutatore di formule implementa ora 37 funzioni del foglio di lavoro precedentemente registrate (ptg assegnato in InitFuncHash) ma prive di implementazione del dispatch — ricadevano su
#NAME?. Le nuove implementazioni coprono cinque famiglie di funzioni: Regressione (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Ammortamento (SLN,SYD,DB,DDB,VDB), Statistica descrittiva (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Array a coppie (SUMXMY2,SUMX2MY2,SUMX2PY2) e Combinatoria/Matematica (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Le funzioni di regressione usano un solver ai minimi quadrati; quelle di ammortamento implementano i metodi a linea retta, somma-delle-anni-cifre e saldo decrescente; le funzioni di statistica descrittiva calcolano deviazione media assoluta, curtosi, asimmetria, medie geometrica/armonica/trimmata; le funzioni a coppie calcolano la somma dei quadrati delle differenze tra due intervalli di uguale dimensione. Un nuovo helperCollectRangeValuessuTXLSCalculatorestrae i valori numerici dagli argomenti di intervallo per le funzioni statistiche
Version 2.155.0
Added
- The formula evaluator now supports five additional statistical e engineering compatibility names:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RT, eF.TEST.ERFCcomplements the existing error-funzione series,BINOM.INVsearches the binomial CDF threshold,CHI.INV.RTaliases the right-tail chi-square inverse, eF.TESTreturns the two-tailed sample-variance p-value
Version 2.154.0
Added
- Il valutatore di formule risolve ora i riferimenti tra workbook tramite una nuova callback
OnGetExternalValuesuTXLSCalculator. Quando un riferimento di intervallo 3D punta verso un workbook esterno ([1]Sheet1!A1), il valutatore instrada attraverso la callback invece di restituire#REF!. Il motore XLSX collega questa callback aGetExternalCellValue, che mappa l'indice SupBook + l'indice del foglio sulla cache<sheetDataSet>delTXLSXExternalLinkcorrispondente e decodifica il valore di cella in cache secondo il suo attributo di tipo OOXML (numeric / boolean / string / error). In precedenza le formule tra workbook restituivano sempre#REF!; l'infrastruttura di callback ora permette a qualunque motore (BIFF8, XLSX o un host di calcolo personalizzato) di fornire valori esterni - Il valutatore di formule esegue ora il broadcasting array element-wise sugli operatori binari (
+/-/*///^). Quando uno degli operandi è un array variant 1D o 2D (ad es. il risultato di una funzione matrice, un intervallo spillato o un operando matrice CSE), l’operatore viene applicato elemento per elemento; un operando scalare viene trasmesso a ogni elemento dell’operatore array. Il nuovo helperApplyArrayBinaryOpgestisce la validazione della forma, il broadcast scalare e la propagazione della divisione per zero. L’aritmetica scalare legacy resta invariata — il path array si attiva solo quando almeno un operando è un array variant - Il valutatore di formule riconosce ora la funzione
TABLE(DataTable dell'analisi What-If). Excel memorizza le tabelle dati come formule matrice CSE il cui corpo èTABLE(rowRef, colRef); in precedenzaTABLEnon veniva riconosciuta e ricadeva su#NAME?. La funzione è registrata con un ptg sintetico (ftabTABLE = 4232) così esegue il round-trip attraverso la codifica delle formule BIFF8, e alla valutazione restituisce un valore segnaposto (0) — i risultati reali sono precalcolati da Excel e memorizzati come valori di cella in cache, così HotXLS non rivaluta la logica di sostituzione
Version 2.153.0
Added
- Il modello tipizzato di PivotTable porta ora le proprietà tipizzate dell’asse pagina (Hier / Caption / Name), l’ambito di ordinamento automatico e gli hook di round-trip raw-XML per
<formats>e<extLst>necessari per una maggiore compatibilità con Excel.TXLSPivotFieldottienePageHier/PageCaption/PageName(F16 — nome gerarchia OLAP + didascalia asse pagina + nome visualizzato) eAutoSortScope(F20 — riferimento di intervallo A1 che fissa le celle che Excel usa per ordinare automaticamente gli elementi del campo);TXLSPivotTableottieneFormatsXml/ExtLstXml(F17 — round-trip inner-XML raw per il blocco override CF / formato numerico di<formats>e il blocco slicer / timeline / x14 di<extLst>, emesso verbatim quando impostato così il round-trip è sicuro anche tra versioni del motore). Il writer XLSX emette gli attributi<pageField hier=... cap=... name=.../>corrispondenti, il figlio<autoSortScope>di<pivotField>e i blocchi<formats>+<extLst>prima della sentinella di chiusura - Il tracer delle formule registra ora snapshot dello stack degli operandi per ogni passo, abilitando un vero debugger “Valuta formula” passo-passo.
TXLSFormulaStepottieneStepKind(push / reduce / funzione),StackBefore/StackAfter(snapshot separati da virgola dello stack degli operandi al momento in cui ciascun passo iniziava / finiva) eTokenStart/TokenEnd(intervallo di caratteri 1-based che riconduce il passo alla formula di origine).TXLSFormulaTracerottieneTraceReversed(restituisce gli stessi passi nell’ordine di valutazione inverso — utile per una UI di tipo step-back che procede dal risultato finale verso gli operandi di origine) e una proprietàStepCount. In precedenza il tracer registrava solo Depth / Source / Expression / Value senza stato dello stack - HTML export now embeds per-cell images via a new
OnCellImagecallback onTXLSHTMLExporte a newxhImagesoption. When the option is set e the callback is wired, the exporter asks the implementor for each cell's<img>fragment (typically a Base64 data-URI) e appends it after the cell text. This decouples the exporter from the XLS engine's BIFF8 image storage (which lives in the per-sheet MsoDrawing record) so the exporter doesn't have to parse anchors itself. The XLSX engine's HTML export already embedded images; this closes the gap for the XLS engine - L’importazione RTF applica ora le proprietà dei caratteri (grassetto / corsivo / sottolineato / barrato / dimensione) dalle control word RTF al font della cella di destinazione.
TXLSRTFImporttraccia\b/\i/\ul/\strike/\fsattraverso il documento e applica la formattazione della run dominante nell’XF della cella al momento del commit. Una nuova proprietàImportCharFormat(predefinito True) commuta il comportamento; impostare a False ripristina la legacy di importazione solo testo. Le celle multi-run collassano a un singolo XF (vince l’ultima run attiva) dato che l’API delle celle del motore XLS è a livello cella, non per frammento — ma questo è di gran lunga meglio che scartare tutta la formattazione, come faceva l’importer legacy - Una nuova classe
TXLSHTMLImportanalizza le tabelle HTML in celle del foglio di lavoro. Percorre la prima<table>nella sorgente, emettendo una riga di foglio di lavoro per<tr>e una cella per<td>/<th>. Onoracolspan/rowspan(merge in stile Excel), rimuove i tag dentro una cella (collassando la formattazione annidata a testo semplice), decodifica le cinque entità di carattere standard (&/</>/"/'/ ) e le forme numeriche&#NNN;/&#xNN;, e converte le stringhe numeriche pulite in Double così le tabelle importate restano calcolabili. Progettato per l’output che HotXLS stesso produce (SaveAsHTML) e per tabelle HTML di qualità da copia-incollo generico; non è un parser HTML5 completo
Version 2.152.0
Added
- XLSX tables now retain column-level totals metadata e table formulas.
TXLSXTableexposesColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[], eColumnTotalsRowFormulas[];SaveAsemits the matchingtotalsRowFunction,totalsRowLabel,calculatedColumnFormula, etotalsRowFormulatable-column XML,Openreads them back, e table clones preserve them
Version 2.151.0
Added
- Il modello tipizzato di PivotTable porta ora la raccolta filtri per campo, l’interruttore di selezione multipla, la superficie fieldGroup discretePr + groupItems e il modello calculated items / calculated members necessari per una maggiore compatibilità con PivotTable.
TXLSPivotFieldottiene una raccolta tipizzataTXLSPivotFilters(ogni voce portaFilterTypeattraverso l’enum OOXMLST_FilterTypeda 80 membri — famiglie count / percent / sum / caption / value / date — piùValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), un interruttoreMultipleItemSelectionAllowed(F9) e una raccoltaTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldottieneDiscreteIndices[]+AddDiscreteIndexeGroupItemLabels[]+AddGroupItemper i blocchi fieldGroup discretePr + groupItems (F13).TXLSPivotTableottiene una raccoltaTXLSPivotCalculatedMember(F14). Il writer XLSX emette i corrispondenti<pivotField multipleItemSelectionAllowed="1">, il blocco<filters><filter .../>per campo, l’elemento<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, il blocco<calculatedItems>per campo e il blocco<calculatedMembers>a livello di tabella — così le pivot costruite da programma con filtri / multi-select / raggruppamento / calculated items eseguono il round-trip
Version 2.150.0
Added
- I nomi definiti mantengono ora valido il testo della loro formula quando il foglio di lavoro a cui fanno riferimento viene eliminato o rinominato. Eliminare un foglio riscrive ogni qualificatore
SheetN!dentro la formula di un nome definito in#REF!(corrispondendo al comportamento di Excel); rinominare un foglio riscrive il qualificatore con il nuovo nome. In precedenza il testo della formula continuava a puntare a un nome di foglio inesistente, che Excel avrebbe poi segnalato come link interrotto alla riapertura - Il modello tipizzato di PivotTable porta ora l’ordine di ordinamento a livello di campo e gli interruttori di layout, più gli attributi di layout / visualizzazione a livello di tabella necessari per una maggiore compatibilità del layout PivotTable.
TXLSPivotFieldottieneSortType(manual / ascending / descending),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableottieneCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonespiùRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissinge la coppia di layout dell’asse paginaRowPageCount/ColPageCount. Il writer XLSX emette gli attributi<pivotField sortType=... compact=... outline=...>e<pivotTableDefinition indent=... outline=... showEmptyRow=...>corrispondenti e l’elemento<location rowPageCount=... colPageCount=.../>così le pivot costruite da programma portano il layout scelto dall’utente invece dei valori predefiniti di Excel - Un nuovo metodo
FormulaIsVolatilesuTXLSWorkbookriporta se una formula forzerebbe un ricalcolo a ogni passaggio di calcolo — cioè se chiama una funzione volatile (NOW / RAND / TODAY / OFFSET / INDIRECT) o porta un riferimento irrisolvibile. La sonda condivide lo stesso estrattore di dipendenze che usa il motore di ricalcolo, così la risposta corrisponde a ciò cheRecalculatefa realmente. I chiamanti possono usarlo per contrassegnare celle per una UI di verifica, per popolare un insieme volatile della catena di calcolo su un workbook nuovo di zecca, o per saltare il caching del risultato di una formula appena inserita
Version 2.149.0
Added
- Le cache PivotTable possono ora essere aggiornate dal loro intervallo di origine tramite programma. Un nuovo metodo
RefreshPivotCache(ACacheId)suTXLSXWorkbookrianalizza l’intervallo di origine della cache, ricostruisce il dominio degli elementi condivisi per campo (riededuplicando i valori e riderivando i limiti per tipo) e riscrive gli indici degli elementi per record. In precedenza HotXLS si affidava al flag hardcodedrefreshOnLoad="1"e demandava tutto il lavoro di refresh a Excel alla prossima apertura; ora le pipeline programmatiche possono aggiornare in-process
Version 2.148.0
Added
InsertColssul motore XLSX eredita ora la larghezza di colonna dal vicino di sinistra, corrispondendo al comportamento predefinito di Excel per “inserisci colonna”. In precedenza la colonna inserita prendeva la larghezza predefinita del workbook, producendo un evidente scarto di fedeltà dopo una riapertura- The XLSX engine gains convenience outline-collapse helpers
ToggleColGrouped/ToggleRowGroupedonTXLSXWorksheet, which walk the outline tree e collapse o expand the group at a given level. The collapse flags themselves already round-tripped; this adds the missing walk-the-tree convenience API
Version 2.147.0
Added
- L’esportazione HTML emette ora ancore
<a name>sulle celle che sono destinazioni di hyperlink interni, così i hyperlink#SubAddresssi risolvono correttamente quando il lettore vi clicca. In precedenza i link venivano emessi ma le destinazioni non avevano ancore, quindi i salti interni non portavano da nessuna parte - CSV export gained a
CSVEmitFormulasproprietà onTXLSXWorkbook. When True, formula cells export their formula text (=SUM(A1:A2)) instead of the calculated value — useful for debugging e for pipelines that re-import into a different engine - Gli URL dei hyperlink esterni sono ora percent-encoded in scrittura (
XlsxEncodeHyperlinkUrl): spazio, parentesi angolari, virgolette, graffe, pipe, backslash, accento circonflesso e backtick vengono codificati come%XXnell’attributo<Relationship Target="..."/>così il file si apre correttamente in ogni browser. Le sequenze già percent-encoded (%20) vengono preservate invariate - Le informazioni di stile di PivotTable portano ora la superficie completa di
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnsuTXLSPivotTable. Il writer XLSX emette l’elemento corrispondente così le pivot costruite da programma portano lo stile di bandeatura scelto dall’utente invece del valore hardcoded predefinito - A new
CalculateAndVerifymethod onTXLSXWorkbookre-evaluates every formula cell e compares the computed result against the cell's cached value. Returns the count of mismatches (0 = all cached values match the engine's fresh computation; volatile formulas are excluded). Useful for QA when porting workbooks between engines o validating that a writer didn't corrupt cached values
Version 2.146.0
Added
- Il motore XLSX supporta ora il calcolo iterativo dei riferimenti circolari (la modalità di calcolo iterativo di Excel). Una nuova triade di proprietà
Iterate/IterateCount/IterateDeltasuTXLSXWorkbookcontrolla il comportamento: quandoIterate=Truee viene rilevato un ciclo di riferimenti duranteRecalculate, il motore rivaluta le celle membri del ciclo fino aIterateCountvolte (predefinito 100) o finché la variazione di ogni cella è< IterateDelta(predefinito 0.001), invece di restituire#REF!. Le impostazioni eseguono il round-trip attraverso l’elemento OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. I modelli finanziari con riferimenti circolari intenzionali (interessi su interessi, allocazioni circolari) ora convergono invece di dare errore - I campi della cache PivotTable portano ora un modello di raggruppamento per il raggruppamento di intervallo numerico e gerarchia di date.
TXLSPivotCacheFieldottieneHasGroup+GroupStartNum/GroupEndNum/GroupInterval(intervallo numerico) eGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(data). Il writer XLSX emette l’elemento<fieldGroup><rangePr groupBy="range|days|months|..."/>così le pivot costruite da programma con campi raggruppati corrispondono all’output di Excel - L'export HTML emette ora note di coda per i commenti. Quando
xhCommentsè tra le opzioni di export, ogni cella commentata riceve un collegamento in apice[n], e il testo completo del commento (autore + corpo) viene elencato come sezione di note di coda dopo la tabella con un'ancora di ritorno alla cella. In precedenza i commenti erano disponibili solo attraverso l'attributotitle=della cella, invisibile in stampa o copia-incolla
Version 2.145.0
Added
- I letterali di errore delle formule BIFF8 (token
tErr) ora vengono decodificati in un elemento di sintassi tipizzatoSA_ERRORinvece di far fallire il parsing della formula. Una cella che memorizza=#N/A(o una qualsiasi delle sette costanti di errore di Excel) causava in precedenza l'eliminazione dell'intera formula in lettura; il byte di errore ora esegue il round-trip attraverso lettura → valutazione → scrittura e si ricostruisce nella sua forma testuale (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) tramite un nuovo helperXlsErrorToString - Il token BIFF8
tIsect $0F(operatore di intersezione implicita) viene ora decodificato nel traduttore di formule binarie, costruendo lo stesso nodoSA_ISECTche il parser testuale produce per@. In precedenza una formula binaria contenentetIsectnon sarebbe riuscita a essere analizzata - La formattazione condizionale a barre di dati emette ora il blocco di estensione
x14di Excel 2010+ nell’extLstdel foglio di lavoro quando il modello porta un qualunque campo x14 non predefinito (colore riempimento negativo, gradiente disattivato, colore asse, direzione, bordo). Un nuovoBuildDataBarExtXmlcostruisce l’elementoextdi<x14:conditionalFormattings>con la priorità corrispondente, coppia cfvo, colori di riempimento + negativo + asse e gli attributi gradient/border/direction/negativeBarColorSameAsPositive
Version 2.144.0
Added
- Il motore XLSX può ora scrivere cartelle di lavoro crittografate Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), colmando un’importante lacuna di compatibilità di lettura/scrittura. Agile è ciò che Excel 2010+ scrive per impostazione predefinita per i file .xlsx protetti da password; HotXLS poteva in precedenza leggere Agile ma scrivere solo Standard Encryption (AES-128). La nuova pipeline di scrittura rispecchia il percorso di decrittazione esistente: hash SHA-512 della password con un conteggio di iterazioni di 100000, crittografia AES-256-CBC per segmento del pacchetto, una chiave intermedia generata casualmente incapsulata secondo le tre chiavi di blocco fissate dalla specifica, e un XML descrittore<encryption>completo che trasporta i blob crittografati di verifier + key. L’output è fedele byte per byte a ciò che produce Excel e si riapre correttamente tramiteXlsLoadAgileEncryptedFile(verificato da test: la password corretta decritta, quella errata viene rifiutata) - Nuove primitive crittografiche sorreggono il percorso di scrittura Agile:
XlsHMACSHA512(RFC 2104, necessario per l'elementodataIntegrity),XlsBase64Encode(encoder RFC 4648 a specchio del decoder esistente) eAESEncryptCBC(cifratura AES-CBC per qualunque dimensione di chiave 128/192/256, l'inverso delAESDecryptCBCesistente). L'unità AES importa oraaes_encrypt_key192/aes_encrypt_key256dall'obj Gladman (in precedenza era disponibile solo la cifratura a 128 bit)
Version 2.143.0
Added
- The formula evaluator now parses e evaluates the explicit intersection operator
@(Excel 365 dynamic-array syntax, e.g.=A2:A4 @ B2:B4). The lexer emits a newLT_ISECTtoken for the@symbol, the precedence parser builds anSA_ISECTnode (binding tighter than^, looser than%), e a newIntersectRangesevaluator resolves both operands as ranges e returns the value of the single crossing cell — Excel's implicit-intersection rule. The BIFF token serializer emitstIsect $0Fso the operator round-trips through XLS, e the formula-text reconstruction path emits the implicit-space form. Previously such formulas failed to parse - Un encoder Base64 standard (
XlsBase64Encode) è ora disponibile, a specchio dell’esistenteXlsBase64Decode. Questo è il prerequisito per il path di scrittura della crittografia Agile, che emette saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue come valori di attributo Base64 - The workbook's
OnProgressevent now also fires during full recalculation (Recalculate), with a newxlsxProgressCalculatingphase. Previously the event only fired during reading e writing, so long full-recalcs gave the UI no heartbeat. The event fires roughly every 4% of cells to avoid flooding - Le proprietà estese del documento (
docProps/app.xml) eseguono ora il round-trip di altri tre campi che Excel scrive per i documenti protetti da password / basati su modello:Manager,TemplateeDocSecurity(un campo di bit: 1=protetto da password, 2=sola lettura consigliata, 4=sola lettura imposta, 8=bloccato per annotazione)
Version 2.142.0
Added
- Il modello tipizzato di PivotTable porta ora la superficie di metadati, origine, campi calcolati, “mostra valori come” e limiti degli elementi condivisi che il turno precedente di analisi aveva segnalato come lacune.
TXLSPivotCacheottieneRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDatapiù una forma tipizzata di origine foglio di lavoro (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldottieneFormula/DatabaseField/MemberPropertyField(campi calcolati) e i limiti degli elementi condivisi (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldottieneShowDataAs/BaseField/BaseItemper le trasformazioni “mostra valori come” (percent-of / difference / running-total / index). Il writer XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) onora tutti questi così una pivot costruita da programma (AddPivotTable) emette unpivotCacheDefinition+pivotTableDefinitionpiù ricco — refreshOnLoad / triade di versione / refreshedBy / origine named-range / formula cacheField calcolata / limiti sharedItems / subtotale dataField + showDataAs. Le tabelle pivot lette da un file continuano a eseguire il round-trip del loro XML raw verbatim - Il comportamento dell'ancoraggio delle immagini esegue ora il round-trip attraverso una nuova proprietà
AnchorTypesuTXLSXImage(xaTwoCell= sposta e ridimensiona con le celle,xaOneCell= sposta ma non ridimensiona,xaAbsolute= non spostare né ridimensionare). Il writer sceglie l'elemento di ancoraggio corrispondente (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor); il reader rianalizza il nome dell'elemento + l'attributoeditAs. Corrisponde alla finestra di dialogo clic destro → Dimensione e proprietà → Proprietà di Excel - Intestazione/piè di pagina esegue ora il round-trip della differenziazione pagine pari/prima pagina.
TXLSXWorksheetottieneEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextpiù i quattro interruttori<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). I file in cui l'utente ha abilitato "Pagine pari e dispari diverse" o "Prima pagina diversa" non perdono più le sezioni pari/prima pagina nel round-trip - L'impostazione pagina esegue ora il round-trip degli attributi estesi
<pageSetup>che Excel scrive per le configurazioni di stampa non predefinite:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(displayed/blank/dash/NA),UsePrinterDefaults <sheetFormatPr>esegue ora il round-trip dicustomHeight,zeroHeight,outlineLevelRoweoutlineLevelCol, così i file in cui l'utente ha fissato un'altezza di riga predefinita personalizzata, righe nascoste per impostazione predefinita o un livello di struttura predefinito non perdono più quel comportamento- La formattazione condizionale a barre dati esegue il round-trip dell'attributo standard
gradient(gradiente o riempimento pieno), eTXLSDataBarSpecottiene i campi di estensionex14di Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorcon theme/tint,Direction,Border) sul modello, così chi usa l'API può impostarli - I fumetti dei commenti eseguono il round-trip del loro disegno VML verbatim. Il reader cattura
xl/drawings/vmlDrawingN.vmlcosì com'è e il writer lo riemette al salvataggio (invece del template incorporato del fumetto giallo), così posizione / dimensione / colore di riempimento / visibilità impostati dall'utente di ogni fumetto sopravvivono - I corpi dei commenti eseguono il round-trip della formattazione per run.
TXLSXCommentottiene un payload lazyRichText: TXLSXRichText(riusando il modello di run delle shared strings); il writer emette un<r><rPr>...</rPr><t>...</t></r>per run quando RichText porta formattazione, e il reader rianalizza<b/>,<i/>,<sz val=N/>,<color rgb=.../>così grassetto / corsivo / dimensione / colore sopravvivono - Il valutatore di formule implementa ora
SUBTOTAL(tutti gli undici aggregatori: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, più le varianti 101–111 che ignorano le celle nascoste) eAGGREGATE(diciannove aggregatori con i flag option-code 0–7 che selezionano il salto di errore/nascosto, inclusa la famiglia LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE con il loro argomentok). In precedenza entrambe ricadevano sul path di funzione non supportata;SUBTOTALera registrata ma senza implementazione,AGGREGATEnon era registrata affatto - Le funzioni del foglio di lavoro
CELLeINFOsono ora valutate:CELLsupportaaddress,col,row,type,contents,filename,format, e iinfo_typedi stato GUI (color,parentheses,prefix,protect,width) restituiscono valori predefiniti neutri;INFOsupportaosversion,system,recalc,memavail,numfile,release,origin. Entrambe erano registrate ma ricadevano su#NAME? - La formattazione condizionale esegue ora il round-trip degli attributi
cfRulestopIfTrue,stdDev,equalAverageetimePeriod, più l'intera famigliatimePerioddi dieci membri (yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Venivano scartati silenziosamente in lettura; Excel li scrive abitualmente sulle regole sopra-la-media e sulle fasce di date, e scartarli cambiava come la regola veniva rivalutata alla riapertura - L’esportazione CSV ha ottenuto una proprietà
TXLSCsvEncodingsuTXLSCSVSavercon tre modalità:ceSystemAnsi(predefinito legacy),ceUtf16(la modalità Unicode storica) eceUtf8che scrive un file UTF-8 con il byte-order mark EF BB BF — il valore predefinito moderno, amichevole per Excel, che si riapre senza la procedura guidata di importazione testo su qualunque localizzazione - L'importazione CSV ha ottenuto una proprietà
LocaleTolerantNumberssuTXLSCSVLoader. Quando abilitata, un campo numerico che non riesce a fare il parsing con.come separatore decimale viene ritentato con,(e vice versa), così un3,14europeo viene importato come numero 3.14 su una macchina USA. La modalità strict (predefinita) resta invariata così il testo con zeri iniziali, i codici postali e gli altri token con virgola restano testo
Fixed
- L’inferenza numerica in strict-mode del motore XLSX non converte più i campi di testo con la virgola (ad es.
3,14) in numeri tramite laTryStrToFloatdi Delphi, che tollera una virgola come separatore delle migliaia anche quandoThousandSeparatorè impostato a#0. Tali campi restano ora testo a meno che non sia abilitata la nuova opzioneLocaleTolerantNumbers
Version 2.140.0
Changed
- Il motore XLSX compatta ora le sue sei pool di stile per attributo (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) prima di ogni salvataggio: un nuovo passaggio
CompactStylePoolsanalizza gli indici di stile di ogni cella e scarta le voci di pool non più referenziate da nessuna cella — le voci che si accumulano quando le celle vengono svuotate, eliminate o riformattate dopo che la voce di pool è stata aggiunta. Le pool compattate producono una tabella<cellXfs>più piccola nel file di output (tipicamente 30–70% più piccola per documenti passati attraverso diversi cicli di modifica), corrispondendo alla compattazione che il motore XLS già fa tramiteCreateAllReferredList
Version 2.139.0
Added
- Drawing-layer shapes, connectors, group shapes, e non-chart graphic frames now round-trip verbatim: when the XLSX reader encounters a
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>, o non-chart<xdr:graphicFrame>anchor that the typed model (images / charts / text boxes) does not cover, it captures the complete anchor XML e replays it unchanged on save — so drawings authored in Excel (arrows, callouts, grouped shapes, smart art frames) survive a read→write cycle without loss. Each worksheet exposesRawDrawingAnchorCount/RawDrawingAnchor(i)for inspection
Version 2.138.0
Added
- I valori di cella cached dei link esterni eseguono ora il round-trip sul motore XLSX: un nuovo model
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatapende da ciascunTXLSXExternalLinktramiteAddSheetData/AddRow/AddCell, il writer emette il blocco<sheetDataSet>corrispondente dentroexternalLinkN.xmle la riapertura ripristina ogni valore cached.FindCachedCell(sheetIdx, row, col)recupera l’ultimo valore noto di una cella referenziata esternamente — i dati che Excel stesso mostra quando il workbook remoto è offline
Version 2.137.0
Added
- Il flag
quotePrefixdel cellXf OOXML — il meccanismo di Excel per marcare il testo archiviato come letterale così sopravvive alla coercizione numerica (codici importati da CSV come00123, numeri di conto lunghi, qualunque cosa l’utente abbia prefissato con un apostrofo) — esegue ora il round-trip sul motore XLSX:TXLSXAlignmentottiene una proprietàQuotePrefix, la pool di alignment la conta nella dedup, il writer emettequotePrefix="1"sull’<xf>corrispondente e la riapertura lo ripristina sia che il cellXf portasse un figlio<alignment/>sia che fosse un<xf quotePrefix="1"/>bare self-closing
Version 2.136.0
Added
- Gli assi del grafico sono ora completamente programmabili: un nuovo model
TXLSXChartAxissulCategoryAxiseValueAxisdi ciascun grafico esponeLogBase(scala logaritmica, es. 10 per log in base 10),Orientation(normal / reversed),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = auto),MajorUnit/MinorUnit,CrossesAt,TickLblPoseDispUnits(unità di visualizzazione: centinaia / migliaia / milioni / miliardi / biliardi). Tutti i valori predefiniti corrispondono al comportamento auto di Excel, quindi i grafici esistenti emettono lo stesso XML di prima; il writer aggiunge<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>e<c:dispUnits>solo quando il chiamante imposta un valore non predefinito, e riaprire tale grafico ripristina ogni impostazione
Version 2.135.0
Added
- Le barre di errore del grafico sono ora programmabili e con round-trip sul motore XLSX: ciascun
TXLSXChartSeriesottieneAddErrorBar(dir)che restituisce unTXLSXChartErrBarconValueType(fixed / percentage / stdDev / stdErr / custom),Value,PlusValue/MinusValue(custom) eNoEndCap; viene archiviato uno slot di barra di errore per direzione (X / Y), il writer emette il blocco<c:errBars>corrispondente e la riapertura ripristina direzione, tipo e magnitudo così i grafici scientifici / ingegneristici mantengono i loro indicatori di incertezza
Version 2.134.0
Added
- Le etichette dati del grafico sono ora programmabili e con round-trip sul motore XLSX: ciascun
TXLSXChartSeriesottiene le proprietàShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeeSeparatorche emettono il blocco<c:dLbls>corrispondente con i suoi figli<c:show*/>; riaprire tale grafico ripristina gli interruttori così le impostazioni ‘mostra valore’ / ‘mostra percentuale’ sopravvivono a un ciclo di salvataggio-modifica-salvataggio
Version 2.133.0
Added
- Vector image formats EMF e WMF are now first-class image types on the XLSX engine:
TXLSXImageFormatgainsxlsxImageEmf/xlsxImageWmf, the writer emits the matchingimage/x-emf/image/x-wmfcontent types e.emf/.wmfextensions, e the format sniffer recognises EMF (01 00 00 73), placeable WMF (D7 CD C6 9A), e standard WMF headers — so images pasted from Word o PowerPoint that Excel embeds as vector data now round-trip instead of being dropped
Fixed
- I substream grafico BIFF8 il cui record GELFRAME (
$1066) oltrepassa il limite di continuation di 8224 byte non perdono più la geometria di riempimento/linea: il reader accetta ora la self-continuation di GELFRAME (Excel scrive un altro$1066invece dello CONTINUE standard$003C) e inoltre consente ai record CONTINUE standard di essere cuciti dentro il contesto grafico, corrispondendo all’esistente dispatch multi-chunk del writer - Le immagini di sfondo intestazione/piè di pagina BIFF8 (
$0866) il cui payload oltrepassa i record di continuation non si corrompono più: ciascun segmento di continuation ripete un header MSO di 14 byte che il reader ora rimuove prima della concatenazione, così i dati immagine incorporati non sono più shiftati di 14 byte per segmento
Version 2.132.19
Fixed
- Legacy XLS e encrypted XLSX storage cleanup now releases compound-file streams deterministically, preventing temporary files from staying locked after save, load, VBA, o encrypted-package operations
- La visualizzazione formattata dei valori variant interi estesi applica ora il formato numerico richiesto in modo coerente, corrispondendo al comportamento esistente per i valori interi standard
- Shared strings, data validation, chart sheets, ZIP archives, PNG drawing, e repeated text formulas now clean up temporary buffers more defensively during error paths e large text operations
Version 2.132.18
Fixed
- Internal string builder value assignment now clears previous text when assigned an empty string, preventing reused XML e text buffers from retaining stale content
Version 2.132.17
Fixed
- XLS chart sheet creation now accepts quoted source sheet names that contain an exclamation mark, rejects oversized row references before they can wrap into a valid BIFF row, e caps trendline legend names to the BIFF short-text limit so generated chart records stay well formed
Version 2.132.16
Fixed
- Internal string-key e object-key lists now remove stale lookup keys when an existing slot is overwritten, preventing old keys from resolving to replacement entries
- Internal object-list replacements e transformed unique-key caches now release owned entries on overwrite, clear, e destruction, preventing leaks during repeated workbook e style operations
Version 2.132.15
Fixed
- Direct XLSX streaming reads now decode boolean cells that store OOXML literal values such as true e false
- Gli aggiornamenti dell’indice della lista di stringhe interna rimuovono ora le chiavi stantì quando uno slot esistente viene sovrascritto, impedendo ai vecchi nomi di risolversi nel nuovo valore
Version 2.132.14
Fixed
- BIFF8 data-validation prompt e error messages whose first character is NUL now preserve record boundaries instead of writing a mismatched DV length
Version 2.132.13
Fixed
- L’analisi del testo XML rifiuta ora gli inizi di entità annidate come && invece di scartare silenziosamente l’entità non terminata
- Le formule decompilate scrivono ora le costanti numeriche con un separatore decimale a punto invariante così il testo della formula resta portabile tra le impostazioni regionali
Version 2.132.12
Fixed
- La trasparenza PNG con palette ignora ora i colori trasparenti non presenti nella palette dell’immagine invece di marcare un indice di palette arbitrario come trasparente
- Le formule SUMPRODUCT smettono ora di analizzare le righe rimanenti dopo la prima riga fuori used-range negli argomenti di intervallo lunghi, evitando letture di celle non necessarie pur preservando il risultato calcolato
Version 2.132.11
Fixed
- TEXT formulas now return #VALUE! when an invalid o oversized number format cannot be applied instead of being swallowed as a blank successful result
- Shared-string table truncation now frees the correct tail blocks e keeps the table reusable after large delete cycles
Version 2.132.10
Fixed
- MATCH exact lookups now honor Excel wildcards, e classic XLS row-offset metadata now ignores out-of-block rows instead of corrupting saved workbook structure
- I metadati di testo compresso PNG rilasciano ora i buffer temporanei in modo sicuro se l’elaborazione dei chunk solleva un’eccezione
Version 2.132.9
Fixed
- PNG compressed text metadata, chunk-list insertion, e CRC byte-order handling now remain stable across supported Windows platforms
Version 2.132.8
Fixed
- LEFT e RIGHT formulas now report #VALUE! when num_chars cannot be converted to a valid integer
Version 2.132.7
Fixed
- SEARCH formulas now support Excel-style ?, *, e ~ wildcards
- La validazione del nome del foglio di lavoro rifiuta ora i caratteri non validi per i nomi di foglio Excel durante la ridenominazione dei fogli
- L’eliminazione manuale delle interruzioni di pagina funziona ora dopo aver inserito un’interruzione prima delle interruzioni esistenti
Version 2.132.6
Fixed
- DATE formulas now match Excel-compatible month e day rollover behavior, including calls such as DATE(2008,14,2)
- Le letture Hidden su intervallo di colonne riportano ora la visibilità di ciascuna colonna invece di mescolarla con lo stato di visibilità delle righe
- I metadati di riga BIFF al limite di righe Excel 97-2003 si caricano ora correttamente così le impostazioni per la riga 65536 vengono preservate
Version 2.132.5
Fixed
- BIFF workbook loading now tolerates malformed worksheet tab colors, truncated pivot labels, e invalid pivot-cache date fragments without raising exceptions
- Workbook package e stream loading now cleans up failed archive e storage setup paths more consistently, avoiding leaked resources on malformed input o failed stream-backed storage opens
Version 2.132.4
Fixed
- ZIP archive handling now finalizes the current package before reusing the same archive object for another package, e file-based archive opening now allows concurrent shared readers
Version 2.132.3
Fixed
- La scrittura del pacchetto workbook preserva ora i nomi di entry ZIP non ASCII con metadati UTF-8, prevenendo il mojibake quando i nomi delle parti del pacchetto contengono testo Unicode
- XML output now writes raw text e attribute values as UTF-8 bytes when escaping is disabled, matching the declared document encoding
- Formula evaluation now clears its in-progress state after callback exceptions e correctly handles large-number cancellation on Unicode Delphi builds
- L’estrazione matrice dalle formule matrice rispetta ora i limiti inferiori non nulli degli array Variant invece di sollevare un’eccezione per array validi one-based
Version 2.132.2
Changed
- L’ordinamento di intervalli usa ora un passaggio di ordinamento stabile O(n log n) per intervalli ordinati di grandi dimensioni, pur preservando il comportamento esistente di round-trip del contenuto delle righe
- ODS e XLSX numeric parsing e formatting now reuse invariant formatting state instead of creating it repeatedly in hot paths
Fixed
- XML parsing now accepts valid CDATA blocks e UTF-8 processing instructions without corrupting text o failing on valid markup
- Formula parsing now accepts signed scientific notation e rejects malformed o truncated formula bytes cleanly
- Classic workbook open e save paths now release streams e storages reliably after errors, preventing temporary files from remaining locked
- Binary buffer handling now validates copy e read bounds, grows destination buffers before copying, e rejects malformed VBA compression back-references cleanly
Version 2.132.1
Fixed
- Corretto il messaggio di errore sollevato quando un workbook crittografato usa uno schema di crittografia non supportato: in precedenza dichiarava che la crittografia ECMA-376 Agile non poteva essere letta, sebbene la decrittografia Agile (AES-128/192/256) sia supportata dalla 2.119.0. Il messaggio elenca ora gli schemi effettivamente supportati
- Open indirizza ora i chiamanti a TXLSXWorkbook.OpenEncrypted quando rifiuta un pacchetto OOXML crittografato, invece di affermare che i workbook crittografati non sono supportati
Version 2.132.0
Changed
- XLSX loading is substantially faster: the XML reader now interns repeated element names e converts text e attribute values straight from its scan buffer, cutting per-cell memory allocations by more than half. Multi-threaded opening (2.128.0) benefits the most — the allocations removed were the ones serializing the worker threads — with multi-sheet workbooks now opening close to twice as fast as the single-threaded path on multi-core machines; single-threaded opening also gains a few percent
Version 2.131.0
Added
- Worksheet extension blocks that HotXLS does not model —
<ext>entries in a worksheet's<extLst>other than sparklines, as written by Excel for features like x14 conditional formatting o slicers — are now preserved verbatim when a workbook is opened e written back on save, so opening e resaving a file no longer strips those extensions. The captured blocks are visible read-only throughWorksheet.RawWorksheetExtse travel with the sheet when it is copied to another workbook
Version 2.130.0
Added
- I workbook salvati che contengono formule portano ora la parte della catena di calcolo
xl/calcChain.xml, consentendo a Excel di avviare il suo motore delle dipendenze dall’ordine registrato invece di ricostruirlo al caricamento. Dopo una chiamata aRecalculatela catena segue l’ordine topologico del grafo delle dipendenze; altrimenti le celle formula sono elencate in ordine di documento (un hint valido che Excel rifinisce al volo). La parte, il suo content type e la sua relazione di workbook sono emessi insieme e sopravvivono ai round-trip di apertura/salvataggio
Version 2.129.0
Added
- New
Workbook.ParallelParseThreadsproprietà tunes the worker count for the multi-threaded Open path introduced in 2.128.0 (0 = automatic, one worker per CPU core). Worksheet parsing allocates heavily e memory allocation is serialized across threads, so on some workloads a small explicit cap performs as well as — o better than — the full core count; the proprietà lets integrators pick what measures best for their files
Version 2.128.0
Added
- Multi-threaded XLSX loading: opening a workbook now parses each worksheet's XML — the dominant cost on large files — on worker threads, so multi-sheet workbooks open faster on multi-core machines. Sheet parts are extracted from the package up front e each worker touches only its own sheet, so the loaded workbook is identical to the serial result
- New
Workbook.ParallelParseproprietà (defaultTrue) switches back to single-threaded parsing when set toFalsebeforeOpen— a one-line opt-out for constrained environments
Changed
- La callback di lettura
OnProgresscontinua a innescarsi una volta per foglio di lavoro sul thread chiamante, ora mentre ciascun foglio viene inviato per l’analisi invece che strettamente tra i fogli
Version 2.127.0
Added
- Incremental recalculation on the XLSX engine: the new
Workbook.Recalculatemethod builds a formula dependency graph, evaluates every formula cell once in dependency order, e stores each result in the cell's cached value. Subsequent calls re-evaluate only the cells affected by value changes since the last pass — on chained models (financial sheets, report cascades) editing one input recomputes just its downstream formulas instead of the whole workbook - Le funzioni volatili (
NOW,TODAY,RAND,OFFSET,INDIRECT) ricalcolano a ogni passaggio, come pure le formule i cui riferimenti non possono essere risolti staticamente (nomi multi-area, workbook esterni) — il motore sovra-ricalcola piuttosto che rischiare un risultato stantìo - Reference cycles are detected instead of looping:
Recalculatereturns an error code when formulas form a circular chain, skips the cycle members, e still evaluates every formula outside the cycle. Cross-sheet references, named ranges, e CSE array formulas (results spilled across the anchored range) participate fully in the dependency graph
Changed
- The existing on-demand
Calculatepath is unchanged;Recalculateis a separate opt-in API e workbooks that never call it behave exactly as before
Version 2.126.0
Added
- Sparklines sul motore XLSX: i fogli di lavoro portano ora gruppi di sparkline — i mini grafici in-cell che Excel renderizza da un intervallo di dati — con i tre tipi di Excel (linea, colonna, win/loss impilata). Creane uno con
Worksheet.AddSparklineGroupo costruisci i gruppi manualmente tramite la nuova raccoltaWorksheet.SparklineGroups, aggiungendo un numero qualunque di sparkline per gruppo con un intervallo di origine e una cella di visualizzazione ciascuno - I gruppi di sparkline espongono l'intero set di opzioni che Excel offre: spessore della linea, marcatori dei punti dati, interruttori di evidenziazione dei punti alto/basso/negativo/primo/ultimo, otto slot colore ARGB (serie, negativo, asse, marcatori, primo, ultimo, alto, basso), scalabilità dell'asse verticale per gruppo o per singola sparkline, e gestione di gap/zero/span per le celle sorgente vuote
- Le sparkline sopravvivono a un round-trip completo salvataggio→apertura: il salvataggio emette il blocco di estensione
extLstdel foglio di lavoro ([MS-XLSX] §2.3.6) così Excel 2010 e successivi renderizzano le sparkline, e l'apertura di tale workbook — scritto da HotXLS o da Excel — ricostruisce ogni gruppo, opzione e intervallo così persistono attraverso i cicli di modifica. Copiare un foglio in un altro workbook clona anche i suoi gruppi di sparkline
Version 2.125.0
Added
- Sette funzioni di testo con conteggio byte DBCS sono ora valutate su entrambi i motori:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBeREPLACEB. Ciascuna tratta il proprio input come una stringa di byte sotto la code page ANSI di sistema così i caratteri CJK (cinese/giapponese/coreano) occupano 2 byte mentre l’ASCII ne occupa 1; le operazioni che dividerebbero una coppia di byte lead/trail DBCS scattano indietro al confine di carattere più vicino, corrispondendo al comportamento di Excel
Version 2.124.0
Added
- Cinque funzioni di test di ipotesi e distribuzione sono ora valutate su entrambi i motori:
Z.TEST(probabilità right-tail one-tailed che la media campionaria sia almenoxsotto l’ipotesi nulla),T.TEST(p-value del t-test a due campioni accoppiato; i tipi non accoppiati a varianza uguale/diversa sono differiti),CHISQ.TEST(p-value goodness-of-fit tramite la CDF chi-square upper-tail),HYPGEOM.DIST(PMF/CDF ipergeometrica con il flag cumulativo) eNEGBINOM.DIST(PMF/CDF binomiale negativa). La matematica del p-value riusa gli helper CDF normal/Student-t/chi-square esistenti del motore tramite routine annidate autosufficienti, così nessun metodo Calc esistente cambia
Version 2.123.0
Added
- Quattordici funzioni formula provenienti da una revisione delle lacune di compatibilità sono ora valutate su entrambi i motori:
AVERAGEIF(media a criterio singolo, la sorella di SUMIF/COUNTIF che mancava al motore),WORKDAY.INTLeNETWORKDAYS.INTL(maschere weekend personalizzate tramite i codici numerici 1-17 o una stringa di 7 caratteri Lun-Dom),XIRReXNPV(tasso interno di rendimento e valore attuale netto per flussi di cassa a date irregolari, risolti per bisezione a bracketing),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(arrotondamento agnostico al segno),PERCENTRANK.INC/PERCENTRANK.EXC(rank percentile con la corrispondente interpolazione inclusiva/esclusiva),MODE.MULT(spillano ogni valore in parità per la frequenza più alta),ERF.PRECISE(funzione degli errori di Gauss tramite la sua serie alternata),ACCRINT(interesse maturato) eISPMT(interesse di periodo per ammortamento a capitale costante)
Version 2.122.0
Added
- I commenti threaded (Excel 365) eseguono ora il round-trip sul motore XLSX:
AddThreadedCommenteAddThreadedReplysu un foglio di lavoro costruiscono un albero di risposte genitore→figlio ancorato a una cella, registrano automaticamente ogni autore in una nuova listaPersonsa livello di workbook e emettono la parte dedicataxl/threadedComments/threadedCommentN.xmlper foglio più laxl/person/person.xmla scope di workbook; riaprire tale pacchetto ricostruisce l’albero della conversazione e la lista dei partecipanti da quelle parti, così le catene di risposte, gli identificatori e i nomi visualizzati sopravvivono a un completo ciclo di lettura→scrittura
Version 2.121.0
Added
- Il valutatore di formule calcola ora le funzioni matrice dinamiche di Excel 365
XMATCH,SORT,UNIQUEeSEQUENCE, unendosi alle già supportateXLOOKUPeFILTER; i risultati spillano come array 2D cosìSEQUENCE(3;2;1;1)restituisce una griglia 3×2,SORTriordina le righe per una qualunque colonna chiave ascendente o discendente,UNIQUEcollassa le righe duplicate conservando la prima occorrenza eXMATCHriporta la posizione 1-based di un valore di lookup con le stesse modalità di corrispondenza esatta/wildcard/più-piccola/più-grande diXLOOKUP
Version 2.120.0
Added
- Il nuovo metodo
PasteFromClipboardsui fogli di lavoro di entrambi i motori legge dagli appunti di Windows testo delimitato da tab — il payload che Excel vi depone quando un intervallo viene copiato, o una selezione qualunque proveniente da un'altra applicazione — e lo scrive nelle celle a partire dalla riga e colonna indicate, con la stessa promozione di tipo numero/data/booleano che il loader CSV usa già; il testo che inizia con=diventa una formula attiva, come fa Excel stesso quando incolla
Version 2.119.0
Added
- Lettura di ECMA-376 Agile Encryption — la protezione con password che Excel 2010 e successivi applicano per impostazione predefinita:
OpenEncryptedora analizza il descrittore XML di crittografia, deriva le chiavi con hashing spin-count SHA-512, verifica la password e decrittta il pacchetto segmentato AES-CBC (AES-128/192/256), così i workbook protetti da password direttamente in Excel si aprono senza Excel installato OpenEncryptedgestisce tutti e tre i casi attraverso un unico punto di ingresso:.xlsxsemplice non crittografato, Standard Encryption (il round trip del nostroSaveAsEncrypted) e Agile Encryption; una password sbagliata solleva lo stesso errore chiaro in ogni schema
Fixed
- Il salvataggio di un workbook
.xlsxil cui XML di foglio di lavoro superava all’incirca i 116 KB — circa 3.000 righe di tipici dati stringa — crashava con uno stack overflow; il checksum CRC-32 del writer ZIP ora processa i dati in slice di 64 KB, il che tiene il backend di compressione lontano dal suo path di codice a input grande che alloca un buffer scratch oversized sullo stack. Il risultato del checksum è invariato
Changed
- La deduplicazione delle stringhe condivise gira ora attraverso una hash table invece di scansionare la lista di stringhe, e la parte
sharedStrings.xmlè assemblata tramite il string builder pre-cresciuto invece che per concatenazione ripetuta — insieme all’indice di cella a tempo costante questo porta il salvataggio di 120.000 celle stringa da decine di secondi a circa un terzo di secondo
Version 2.117.0
Changed
- XLSX cell access is now constant-time: the worksheet cell collection carries a hash index over (row, column), replacing the previous linear scan — so populating, reading back, o loading a large sheet scales linearly with the cell count instead of quadratically; filling 100,000 cells now takes well under a second where it previously took minutes
- The speedup applies across the engine:
Cells[r, c],HasCell, workbook loading, saving, cross-workbook copies, auto-fit, e every helper that touches cells by position all benefit; row e column insertion o deletion rebuilds the index in a single pass
Version 2.116.0
Added
- PDF export in the classic XLS engine: new
SaveAsPDFmethods on the worksheet e workbook render the used range (o a caller-supplied range throughTXLSPDFExport) as a paginated grid — cell display text through the number format, gridlines, column widths derived from the Excel widths e scaled to fit the page, e automatic multi-page pagination - Output is a self-contained PDF 1.4 file with no external dependencies, using the built-in Helvetica font with WinAnsi text encoding; portrait o landscape A4 orientation, page margin, e font size are configurable on the exporter
- This is a data-presentation export alongside HTML e RTF: it reproduces tabular content e layout for reports e document handoff rather than full per-cell styling
Version 2.115.0
Added
- Creazione di grafici con una sola chiamata da un intervallo di dati nel motore XLSX: il nuovo
AddChartFromRangecostruisce un grafico completo e deriva automaticamente le sue serie da un blocco di dati rettangolare — l'equivalente di "inserisci grafico dalla selezione" di Excel — con un layout a serie in colonne o trasposto a serie in righe - Le scorciatoie nominate
AddColumnChart,AddBarChart,AddLineChart,AddPieCharteAddAreaChartscelgono un tipo di grafico per nome sullo stesso flusso a chiamata unica, leggendo i nomi delle serie dalla riga di intestazione e le etichette delle categorie dalla prima colonna - I riferimenti delle serie sono qualificati con il nome quotato del foglio sorgente, così un grafico generato continua a funzionare quando viene piazzato su qualunque foglio e sopravvive a salvataggio e ricaricamento
Version 2.114.0
Added
- Importazione RTF nel motore XLS classico, l'inverso dell'export
SaveAsRTFesistente: i nuovi metodiOpenRTFsu foglio di lavoro e workbook leggono la tabella di un documento RTF nelle celle del foglio —\cellavanza di colonna,\rowavanza di riga — partendo da A1 - Recupera dati tabulari dai file prodotti da
SaveAsRTF, Word o WordPad: il testo numerico viene memorizzato come numeri così le formule continuano a funzionare, gli escape esadecimali (\'hh) e Unicode (\uN) vengono decodificati correttamente, e i gruppi di intestazione (tabella font, tabella colori, stylesheet, info) vengono saltati - I documenti senza tabella ricadono nella modalità paragrafo, importando ogni
\parcome riga successiva nella colonna A
Version 2.113.0
Added
- Lettura dei workbook
.xlsxcrittografati:OpenEncrypteddecrittta ora i pacchetti con ECMA-376 Standard Encryption (AES-128), completando il round trip con l’esistenteSaveAsEncrypted— legge il contenitore compound-file, deriva la chiave dalla password, la verifica e carica il workbook recuperato - Una password sbagliata solleva un chiaro errore “password is incorrect”, e
OpenEncryptedsu un.xlsxpiano non crittografato continua a caricarlo direttamente, così i chiamanti possono instradare ogni file attraverso un unico punto di ingresso
Changed
- The unsupported-encryption message now names ECMA-376 Agile Encryption specifically as the remaining unsupported scheme, since Standard Encryption reading e writing are both available
Version 2.112.0
Added
- La nuova proprietà
TaggedTextsulle celle XLSX converte tra testo ricco e markup leggero:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>e<size=N>, con gli escape</>/&— così il contenuto di cella multi-formato può essere prodotto da una stringa template invece di assemblare run object a mano - La scrittura di markup costruisce la lista di run e mantiene
Valuecome testo semplice concatenato; il markup senza tag archivia una stringa semplice senza payload ricco; la lettura serializza gli attributi di ciascun run come insiemi di tag completi; i tag sconosciuti passano attraverso come testo letterale
Fixed
- A rich-text run consisting entirely of whitespace (for example a single styled space between words) now survives save e reload; previously the space was dropped when the file was reopened
Version 2.111.0
Added
- New
OnProgressevent on the XLSX workbook reports load e save progress: it fires once per worksheet as it is parsed duringOpeno emitted duringSaveAs, carrying the phase (reading o writing), the current 1-based sheet number, e the total — so applications can drive a progress bar over long multi-sheet operations at negligible callback cost
Version 2.110.0
Added
- Nuovo cursore di riga stile dataset
TXLSRowCursorper i file.xlsx/.xlsm:Open,SelectSheet, poiFindFirst/FindNextpercorrono un foglio di lavoro una riga alla volta con solo le celle della riga corrente in memoria — un’alternativa pull-driven alle callback diTXLSDirectReaderper processare sequenzialmente fogli da milioni di righe - Ogni riga espone il suo numero di riga del foglio di lavoro 1-based, le celle popolate in ordine di documento (valore tipizzato, testo della formula, indice di stile) e una lookup
ValueByColche restituisceNullper le colonne non popolate su quella riga; le righe senza celle popolate vengono saltate - Nomi e numero dei fogli sono disponibili dopo
Open(overload per file e stream), con shared string e rilevamento del formato data gestiti allo stesso modo del lettore in streaming
Version 2.109.0
Added
- Nuovo "format brush"
TXLSXCellFormatper il motore XLSX: descrivi una volta font, riempimento, bordo, allineamento, formato numerico e protezione, poi timbra un numero qualunque di destinazioni conApply(cella singola),ApplyRange,ApplyRows,ApplyColsoApplySheet - Vengono applicati solo gli aspetti effettivamente toccati — un brush che imposta solo
Font.Boldlascia intatti riempimenti, bordi e formati numerici delle destinazioni — così i brush si compongono con la formattazione esistente come il format painter di Excel - Ciascuna apply risolve gli aspetti toccati nelle pool di stile del workbook una volta sola e poi scrive solo indici di pool per cella, così la formattazione di ampi intervalli costa una lookup di pool per aspetto piuttosto che per cella;
ApplyRangematerializza le celle mancanti mentre le forme riga/colonna/foglio timbrano solo le celle esistenti
Version 2.108.0
Added
- Testo visualizzato booleano localizzabile: le nuove variabili
XLSBooleanTrueText/XLSBooleanFalseTextcontrollano come i valori di cella booleani vengono renderizzati dovunque si produca testo visualizzato —FormattedText, esportazione HTML e misurazione auto-fit — così le applicazioni localizzate possono mostrare ad esempio VERO/FALSO o WAHR/FALSCH
Changed
- Le celle booleane ora vengono visualizzate come
TRUE/FALSEper impostazione predefinita, come nella griglia di Excel, invece della capitalizzazioneTrue/Falsedel runtime
Version 2.107.0
Added
- New
OnPasswordevent on the classic XLS workbook: whenOpenmeets an encrypted workbook e the supplied password is missing o wrong, the event asks the application for a password e retries the open (up to three attempts) — so interactive tools can prompt the user instead of pre-loading passwords o inspecting error codes - The event receives the current password by reference e a
Retryflag; leavingRetryatFalsegives up e returns the original password error
Version 2.106.0
Added
- New
TXLSFileMonitorclass watches a workbook file on disk e firesOnFileChangedwhen another process — typically Excel — saves over it, so applications can reload e refresh their view automatically - Polling-based (last-write time plus size,
IntervalMsconfigurable, 1 s default), so it works on local disks e network shares alike without a message loop;SynchronizeEventchooses between main-thread delivery for UI handlers (default) e direct watcher-thread delivery for console o service code - Un file che scompare brevemente durante un ciclo di salvataggio non innescare un falso evento; la modifica viene riportata una volta che il nuovo contenuto è al suo posto
Version 2.105.0
Added
- Auto-fit limitato nel motore XLS classico, corrispondendo ai limiti che il motore XLSX già offre: i nuovi overload
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth)eRowsAutoFit(AMinHeight, AMaxHeight)limitano ogni larghezza di colonna adattata (unità di larghezza Excel) o altezza di riga (punti) all’intervallo dato — 0 lascia un lato illimitato, e una colonna o riga completamente vuota riceve comunque il minimo richiesto
Version 2.104.0
Added
- La nuova proprietà di sola lettura
FormattedTextrestituisce il testo di visualizzazione di una cella — il valore memorizzato renderizzato attraverso il suo formato numerico, come lo mostra Excel nella griglia — coprendo separatori delle migliaia, decimali, percentuali, maschere di data e ora, maschere multi-sezione positivo/negativo/zero e formati booleani - Disponibile in entrambi i motori: su
IXLSRangenel motore XLS classico (gli intervalli multi-cella renderizzano la loro cella àncora) e suTXLSXCellnel motore XLSX (le celle rich-text restituiscono il loro testo di run concatenato)
Version 2.103.0
Added
- New
DetectExcelContentFormatfunzione (file name e stream overloads) identifies a workbook's container from its leading bytes rather than the file extension — reporting a BIFF/OLE compound file, an OOXML.xlsxpackage, an OpenDocument.odspackage, o plain delimited text — so applications can route renamed o extension-less files to the right loader
Changed
TXLSWorkbook.Openanalizza ora la signature del contenuto e rifiuta i pacchetti basati su ZIP (un.xlsxo.odsrinominato in.xls) con un chiaro messaggio che nomina il loader corretto, invece di fallire con un codice di errore opacoTXLSXWorkbook.Opennow recognizes OLE compound-file content (a legacy.xlsrenamed to.xlsx, o an encrypted package) e reports what the file actually is, instead of surfacing a ZIP parser error
Version 2.102.0
Added
- Cross-workbook worksheet copy in the classic XLS (BIFF8) engine now brings the workbook-level defined names a formula uses over to the destination — the same thing Excel does when a sheet moves between workbooks: a name the destination already has is bound as-is (no duplicate is created), a missing name is registered with its original definition e visibility so the formula recompiles against it, e a name whose definition cannot resolve in the destination (for example, it points at a sheet that does not exist there) leaves the formula on its computed value as before
Version 2.101.0
Added
- Cross-workbook worksheet copy in the classic XLS (BIFF8) engine now re-points formulas at the source workbook as an external link when the destination has no sheet of the referenced name e the source has been saved to a file: the copied cell stays a live formula (its references switch to the [SourceBook]Sheet form), the source's computed value is kept as the cached result so reads keep working until the link is refreshed, e the external workbook reference round-trips through save e reload; formulas carrying defined-name references, e copies from unsaved source workbooks, keep the computed value as before
Version 2.100.0
Added
- Array formulas now survive worksheet copies in the classic XLS (BIFF8) engine: each array range is rebuilt as a whole in the copy — within the same workbook e across workbooks alike — with the root formula recompiled against the destination's sheet names; an array the destination cannot recompile keeps its computed values instead
Fixed
- La copia di un intervallo che contiene celle di formula matrice tra fogli di lavoro XLS classici non rischia più un crash sulle celle di spill (che non portano un proprio albero di formula); tali celle trasferiscono ora il loro valore calcolato
Version 2.99.0
Added
- Chart sheets can now be copied between classic XLS (BIFF8) workbooks: the chart record stream is cloned into the destination, series category / value / name references are recompiled against the destination's sheet names (a series whose sheet has no same-name counterpart falls back to an empty reference so the file still opens), chart font references migrate by value into the destination font table, e the page setup, tab color, zoom, e visibility of the chart sheet come along; this removes the last documented limitation of the cross-workbook worksheet copy
Version 2.98.0
Added
- Cross-workbook worksheet copy in the classic XLS (BIFF8) engine now preserves rich-text formatting inside cells: each formatting run's font is migrated by value into the destination workbook's font table e the run is rewritten to point at it, so mixed-font strings keep their appearance instead of falling back to plain text; phonetic (Far-East) auxiliary data travels with the string as well
Fixed
- Fonts referenced only by rich-text runs (e not by any cell format) are no longer dropped from the FONT table when saving a classic XLS workbook, e the runs now follow the same font reordering as cell formats on save, so rich-text strings keep the correct fonts after a save/reload cycle
Version 2.97.0
Added
- Cross-workbook worksheet copy in the classic XLS (BIFF8) engine now also clones embedded pictures: the image bytes migrate into the destination workbook's picture store (identical images are shared rather than duplicated), e each picture frame keeps its cell anchor, size, visibility, e transparent color; a new CrossWorkbookCopyXls sample project demonstrates the classic-engine copy end to end
Changed
- Classic XLS cross-workbook copy limitations are now documented: chart sheets are not copied (AddCopy returns nil for them), e a formula whose sheet reference has no same-name sheet in the destination keeps the source's computed value instead of becoming an external reference
Version 2.96.0
Added
- Cross-workbook worksheet copy in the classic XLS (BIFF8) engine now also clones conditional formats (cell-is e expression rules, data bars, color scales, icon sets, e their differential styles), data validations (list, numeric, date, text-length, e custom rules with prompt e error boxes), the AutoFilter definition with its per-column criteria (the dropdown buttons are rebuilt in the copy), e tables (ids e names are re-issued so they stay unique in the destination workbook); rule formulas are recompiled against the destination's sheet names, matching the behavior of cell formulas
Version 2.95.0
Added
- Classic XLS (BIFF8) worksheets can now be copied from one workbook into another: TXLSWorksheets.AddCopy adds a new sheet to the destination workbook e copies the source sheet's cell values, formulas (re-encoded as text so the destination recompiles them against its own sheet names, keeping same-name 3D references live), merged cells, comments, hyperlinks, row heights, column widths, outline levels, frozen panes, sheet protection, page setup, manual page breaks, tab color, e view settings; cell, row, e column formats are migrated by value into the destination workbook's format table, so a styled source produces an independently styled copy
- Cross-workbook format migration in the classic XLS engine now carries the full-precision RGB e theme colors alongside each format entry, so fills, fonts, e borders keep their exact colors instead of falling back to palette approximations; this also applies to range-level paste between workbooks
Version 2.94.0
Added
- Cross-workbook worksheet copy now clones conditional formats (with their differential styles e the dataBar / colorScale / iconSet visual payloads), tables, data validations, e charts (with every series); each sub-object deep-copies its own state into the destination worksheet
- Cross-workbook formula references are rewritten: a reference whose sheet name exists in the destination resolves as-is, otherwise it becomes an external reference back to the source workbook (which is registered as an external link) o #REF! when the source has no file identity; the rewrite applies to cell formulas, conditional-format rules, data-validation formulas, e chart series ranges alike
Version 2.93.0
Added
- A worksheet can now be copied from one workbook into another: TXLSXSheets.AddCopy adds a new sheet to the destination workbook e copies the source sheet's cells, formulas, merged ranges, column/row sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, page setup, AutoFilter range, e tab colour onto it; the six per-cell style indices are remapped into the destination workbook's own Font/Fill/Border/NumberFormat/Alignment/Protection pools via value-equality lookup, so a styled source produces an independently-styled copy rather than indices pointing at the wrong pool
- Le sei pool di stile per attributo (Fonts, Fills, Borders, NumberFormats, Alignments, Protections) espongono ciascuna una LookupOrAdd 1-based che deduplica per valore; un nuovo progetto di esempio CrossWorkbookCopy dimostra la copia tra workbook con preservazione dello stile
Version 2.92.0
Added
- XLSX workbooks now support pivot tables: TXLSXWorksheet.AddPivotTable scans a flat source range, auto-builds a pivot cache, e returns a typed pivot table for row / column / page / data-axis wiring, mirroring the long-standing BIFF8 (XLS) engine API so the same code targets either format; PivotSetDataFieldFormat assigns a number format to each aggregated value field
- Excel-created pivot tables round-trip without loss through Open then Save: the XLSX engine preserves each pivot cache definition, cache records, e pivot table part verbatim e replays the original bytes on save, so re-saving a workbook never drops o alters its pivots even when they use features the typed model does not expose
Version 2.91.0
Added
- Un AutoFilter di foglio di lavoro può ora essere applicato ai dati così il workbook salvato si apre con le righe non corrispondenti già nascoste, ricalcando ciò che Excel fa quando un valore viene scelto dal menu a discesa del filtro
- Embedded images expose their geometry in real units (centimetres, inches, points) alongside the EMU values, e can be resized by a scale factor with optional aspect-ratio locking
- I margini di impostazione pagina possono essere impostati direttamente in centimetri, come comodità metrica rispetto ai margini basati su pollici
- Protected XLSX worksheets now expose fifteen fine-grained permission toggles (format cells, insert/delete rows e columns, sort, AutoFilter, select locked/unlocked cells, e more) via a new AllowOption proprietà, matching Excel's Review > Protect Sheet checkbox list; the per-action settings round-trip through the file
- XLSX worksheets can now be duplicated (TXLSXSheets.Duplicate): a new sheet is added e the source's cells, merged ranges, column/row sizing, freeze panes, view state, protection, page setup, e tab colour are copied onto it, mirroring Excel's right-click > Move o Copy > Create a copy
- Twenty-two new sample projects cover capabilities the library supports: workbook encryption, cell comments, hyperlinks, defined names, AutoFilter evaluation, embedded pictures, an invoice template, advanced XLSX conditional formatting, merged cells, row/column outlining, freeze panes, multi-sheet layout, array formulas, range copy/move, find/replace, date systems, rich text, advanced CSV, HTML export options, custom number formats, hidden rows/columns, e worksheet protection
Version 2.90.29
Changed
- The streaming direct reader now counts every populated cell even when no per-cell handler is attached, so a plain ReadFile call can be used to size a worksheet quickly; the returned count e the CellCount proprietà report the number of populated cells scanned
Version 2.90.28
Added
- Formulas can now be evaluated step by step, the equivalent of Excel's Evaluate Formula command: a new tracer reduces an expression one sub-step at a time, innermost first, e reports each reduction with its source sub-expression, the same sub-expression after its operands are substituted by their values, e the resulting value, so applications can show how a result is built up; it respects operator precedence, keeps range references intact for functions such as SUM, e reuses the worksheet calculation engine so every step agrees with a full recalculation
Version 2.90.27
Added
- XLSX workbooks can now be produced cell by cell through a new streaming direct writer that emits each worksheet straight into the package as rows arrive, without building a full in-memory cell tree, so very large files can be generated with a near-constant memory footprint; the writer handles inline strings, numbers, booleans, dates, e formulas across multiple sheets e round-trips with the streaming direct reader
Version 2.90.26
Added
- XLSX workbooks can now be scanned cell by cell through a new streaming direct reader that raises per-cell e per-sheet events without building a full in-memory cell tree, keeping the memory footprint near constant for very large files; each reported cell carries its value, kind (number, string, boolean, date, o error), formula text, e style index, with optional date detection e early-abort support
Version 2.90.25
Added
- Classic XLS worksheets can now add hyperlinks from A1-style cell references while preserving URL normalization, workbook-target subaddresses, display text, e screen tips
Version 2.90.24
Added
- Classic XLS page breaks can now be added from one-based row o column positions e A1-style cell references through page-break collection e worksheet helper overloads
Version 2.90.23
Added
- Classic XLS worksheets e shape collections can now create rectangle, oval, line, e typed autoshape drawing objects from A1-style range strings
Version 2.90.22
Added
- Le raccolte di shape XLS classiche possono ora creare caselle di testo da stringhe di intervallo in stile A1 tramite un overload AddTextBox
Version 2.90.21
Added
- Le caselle di testo XLS classiche possono ora essere riposizionate da stringhe di intervallo in stile A1 tramite un nuovo overload SetArea
Version 2.90.20
Added
- Le caselle di testo dei fogli di lavoro XLS classici possono ora essere create da stringhe di intervallo in stile A1 tramite un overload AddTextBox
Version 2.90.19
Added
- Classic XLS worksheets can now create drawing text boxes directly from row e column anchors through a new AddTextBox method
Version 2.90.18
Added
- Classic XLS worksheets can now create cell comments directly from row e column coordinates through new AddComment overloads