Panoramica
![]() |
Libreria HotXLS di lettura/scrittura Excel è un componente Excel di lettura/scrittura ad alte prestazioni per Delphi & C++Builder
Consente di creare nuovi fogli di calcolo Excel e di leggere o modificare i workbook XLS e XLSX esistenti senza che sia
necessario installare Microsoft Excel o Office sul computer
HotXLS è scritto interamente in Object Pascal. Legge e scrive i file Excel direttamente
a livello binario e OOXML, quindi non c'è alcun overhead di automazione COM/OLE né dipendenza dalla licenza
o dalla presenza di Office. HotXLS supporta Delphi e C++Builder da XE5 fino a 13 Florence
La formattazione del colore XLS classico rimane intenzionalmente basata sulla palette. Vedi modello colori XLS classico
per la scelta ThemeColor / TintAndShade
|
Architettura a doppia facade
HotXLS espone due facade che convivono, così il codice XLS legacy e il nuovo codice XLSX possono stare fianco a fianco
senza alcun refactoring:
lxHandle |
Facade principale per il formato BIFF8 Excel 97–2003 (.xls), oltre all'esportazione HTML, RTF, CSV e TSV.
Tutto il codice utente esistente continua a usare questa unità senza modifiche. Punti di ingresso:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Facade principale per la lettura/scrittura del formato OOXML Excel 2007+ (.xlsx) e OpenDocument Spreadsheet
(.ods). Fornisce i propri tipi di workbook e foglio di lavoro, così il comportamento specifico di XLSX non viene
riportato indietro sul percorso del codice BIFF. Punti di ingresso:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Entrambe le facade condividono lo stesso motore di formule, lo stesso livello di supporto Unicode e la stessa pipeline di esportazione
Vedi panoramica della facade XLSX per la gerarchia completa delle classi esposte da
lxHandleX
Avvio rapido
I seguenti frammenti mostrano il codice minimo per creare un workbook con un foglio di lavoro e scrivere
un valore in una cella.
Classic XLS (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// Add a worksheet and give it a name
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Write values to cells using A1 notation
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Apply basic formatting
ws.Range['A1'].Font.Bold := True;
ws.Range['A1'].Interior.Color := clYellow;
Book.SaveAs('output.xls');
end;
XLSX (lxHandleX)
uses lxHandleX;
var
Book: TXLSXWorkbook;
ws: TXLSXWorksheet;
cell: TXLSXCell;
begin
Book := TXLSXWorkbook.Create;
try
ws := Book.Sheets.Add('Sheet1');
// Write a string and a numeric value
ws.Cells[1, 1].Value := 'Product';
ws.Cells[1, 2].Value := 'Price';
ws.Cells[2, 1].Value := 'Widget';
ws.Cells[2, 2].Value := 9.99;
// Apply a currency number format
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
Per una panoramica più ampia che copre entrambe le facade in un unico progetto demo, consulta la
demo API Tour
Funzionalità
Supporto I/O file e stream
Leggi file Excel esistenti, scrivi file Excel nuovi o esistenti, gestisci la protezione con password XLS classica e
i flussi di lavoro di salvataggio crittografato XLSX e elenca rapidamente i nomi dei fogli da file XLS e XLSX o da stream senza
caricare l'intero workbook. L'apertura di un CSV come workbook è supportata tramite
IXLSWorkbook.OpenCSV
Valori delle celle e formule
Leggi e scrivi i valori delle celle di tutti i tipi nativi di Excel: numero, stringa, data/ora, booleano e formula
Il motore di calcolo integrato valuta le formule sia nei workbook XLS classici che in quelli XLSX e supporta:
- Funzioni di testo (
LEFT,MID,TRIM,SUBSTITUTE, …) - Funzioni di data e giorni lavorativi (
DATE,NETWORKDAYS,WORKDAY, …) - Funzioni di ingegneria e conversione di base (
BIN2DEC,HEX2DEC, …) - Funzioni bitwise (
BITAND,BITOR,BITXOR, …) - Funzioni statistiche e di aggregazione (
AVERAGE,SUMIF,COUNTIFS, …) - Funzioni matematiche (
ROUND,MOD,POWER, …)
Una callback
OnUserFunction consente di gestire a runtime le funzioni di foglio personalizzate o non supportate.
Vedi callback OnUserFunction per la firma e gli esempi

Formattazione delle celle
Accesso completo agli attributi dell'aspetto delle celle:
- Caratteri — nome, dimensione, colore (RGB o colore del tema + tinta), grassetto, corsivo, sottolineato, barrato, apice, pedice, ombra e contorno
- Allineamento — allineamento orizzontale e verticale, orientamento del testo (angolo), livello di rientro, testo a capo, adattamento automatico e ordine di lettura (RTL/LTR)
- Bordi — tutti e quattro i lati e le diagonali, stile della linea, spessore e colore RGB / tema
- Interno (riempimento) — riempimento pieno, riempimenti a motivo, colori di primo piano e di sfondo inclusi i colori del tema con TintAndShade
- Formati numerici — stringhe di formato integrate e personalizzate per data, ora, valuta, percentuale e notazione scientifica
- Commenti / annotazioni — aggiungi, leggi e stilizza i commenti delle celle
Operazioni sugli intervalli
IXLSRange (facade classica) e TXLSXRange (facade XLSX) forniscono un ricco insieme di
operazioni sugli intervalli:
- Unisci e separa le celle; accedi all'area unita di qualsiasi cella
- Copia, sposta, inserisci ed elimina gli intervalli, con controllo della direzione di spostamento
- Raggruppa e separa righe o colonne per le viste con struttura/compattazione
- Adatta automaticamente l'altezza delle righe e la larghezza delle colonne al contenuto delle celle
- Applica stili di cella denominati integrati (
ApplyBuiltinStyle) - Selezioni multi-area (
TXLSWorksheet.SelectAreas) - Callback di iterazione ForEachCell per l'elaborazione batch delle celle
Funzionalità del foglio di lavoro
Il controllo a livello di foglio di lavoro copre:
- Nome del foglio, colore della scheda, visibilità (nascosto / molto nascosto) e navigazione basata sull'indice
- Protezione del foglio con granularità per autorizzazione; protezione a livello di workbook
- Riquadri bloccati, riquadri suddivisi e posizione di scorrimento
- Intervalli AutoFilter con criteri; elenca le regole di convalida dei dati
- Formattazione condizionale: scale di colore (2 e 3 colori), barre dei dati e set di icone
- Trova testo e sostituisci testo in un foglio di lavoro
- Opzioni di visualizzazione: colore delle linee della griglia, modalità di visualizzazione delle formule, visualizzazione degli zeri, visualizzazione delle intestazioni, visualizzazione da destra a sinistra, visualizzazione dei simboli della struttura e livello di zoom
- Tabelle strutturate (
TXLSTable/TXLSXTable): aggiungi, accedi e stilizza le tabelle Excel con righe di intestazione e righe a bande - Grafici: aggiungi fogli grafico e grafici incorporati tramite
TXLSWorksheetsAddChartSheeteTXLSXChart
Collegamenti ipertestuali e intervalli denominati
Aggiungi e leggi collegamenti ipertestuali (URL, mailto e riferimenti di cella all'interno del workbook) tramite
IXLSHyperLinks. Definisci e risolvi intervalli denominati a livello di workbook e di foglio di lavoro tramite
IXLSNames / TXLSXDefinedNames. Gli intervalli denominati possono essere usati nelle formule e
risolti nuovamente in un intervallo di celle tramite RefersToRange
Immagini e forme
Incorpora immagini raster (BMP, JPG, PNG, GIF) nei fogli di lavoro tramite
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Crea caselle di testo autonome
nel XLS classico tramite TXLSShapes.AddTextBox. Preserva le regole di connettore OfficeArt create da Excel e
le regole di risoluzione nei disegni BIFF8 ed espone le opzioni FOPT grezze delle forme tramite
TXLSShape.OfficeArtOptions per flussi di lavoro di disegno avanzati
Impostazione di pagina e stampa
Accesso completo al layout di stampa tramite
IXLSPageSetup:
- Dimensioni della carta (A4, Letter, Legal e molte altre; vedi PaperSize)
- Orientamento (verticale / orizzontale), margini, centratura orizzontale / verticale
- Stringhe di intestazione e piè di pagina con i codici di formattazione di Excel (grassetto, corsivo, numero di pagina, data, ecc.; vedi codici di formattazione intestazione/piè di pagina)
- Interruzioni di pagina orizzontali e verticali manuali
- Scalatura adatta alle pagine; percentuale di zoom; area di stampa; titoli di stampa (ripeti righe / colonne)
- Qualità bozza; bianco e nero; stampa linee della griglia; stampa intestazioni; stampa note
Formati di esportazione
Esporta interi workbook, singoli fogli di lavoro o intervalli di celle arbitrari in:
- HTML — documento completo o frammento di tabella inline per l'anteprima o i flussi di lavoro via email;
controllabile tramite
TXLSHTMLExporteTXLSXHtmlExportOptions - RTF — rich text per l'importazione nei word processor
- CSV — valori separati da virgola con delimitatore e codifica configurabili
- TSV — valori separati da tabulazione
- ODS — OpenDocument Spreadsheet tramite la facade
lxHandleX
Esportazione di database e griglie
Esporta qualsiasi dataset compatibile con TDataSet o una TDBGrid direttamente in Excel, HTML o RTF usando i
TDataToXLS o
TGridToXLS componenti.
Entrambi i componenti generano gli eventi AfterCell, AfterRow, AfterTitle e
AfterGroup per un controllo granulare dell'output e supportano i campi di raggruppamento multilivello
Conservazione dei progetti VBA
HotXLS preserva i payload dei progetti VBA quando gestisce in round-trip workbook abilitati alle macro. L'ispezione di sola lettura
dei moduli è disponibile tramite
TXLSVBAProject e TXLSVBAModule.
Chiama IXLSWorkbook.HasVBAProject per rilevare un payload e
LoadVBAProjectFromFile / SaveVBAProjectToFile per trasferirlo tra i file
Unicode e testo internazionale
Tutta la gestione delle stringhe è nativa Unicode. HotXLS legge e scrive file Excel creati in qualsiasi lingua,
incluse CJK, arabo, ebraico, tailandese e altre scritture, con supporto corretto del testo bidirezionale e dell'ordine di lettura

Tabelle pivot (XLS classico)
Crea tabelle pivot da un intervallo di origine con
TXLSWorksheet.AddPivotTable, configura il posizionamento dei campi e i formati numerici dei campi dati e
ispeziona il modello pivot tramite TXLSWorksheet.PivotTables.
Vedi API delle tabelle pivot XLS classiche per i dettagli su campi e filtri
Vantaggi
| No Office dependency | Legge e scrive i file XLS e XLSX direttamente a livello binario. Microsoft Excel o Office non deve essere installato, concesso in licenza o in esecuzione. Questo elimina l'overhead dell'automazione COM/OLE, evita le restrizioni di threading imposte dall'interoperabilità di Office e consente di usare HotXLS in contesti lato server e di servizio dove un'installazione desktop di Office è impraticabile |
| High performance | I parser BIFF8 e OOXML sono scritti in Object Pascal nativo senza allocazione intermedia del DOM XML nel percorso critico. I workbook di grandi dimensioni con centinaia di migliaia di righe possono essere letti e scritti con un picco di memoria ridotto. La deduplicazione delle stringhe condivise e la compressione delle formule condivise vengono applicate automaticamente per mantenere piccole le dimensioni dei file |
| OLE migration path | La superficie API della facade classica (workbook, foglio di lavoro, intervallo, carattere, bordi, interno, impostazione di pagina) rispecchia fedelmente il modello a oggetti di Excel noto dall'automazione OLE. Questo rende semplice la migrazione dei progetti esistenti basati su OLE: sostituisci le chiamate COM con le chiamate HotXLS, rimuovi la dipendenza da Office e ottieni prestazioni native |
| Dual-facade design |
Il codice XLS legacy continua a compilare ed eseguire senza modifiche contro lxHandle, mentre il nuovo codice XLSX
usa la facade più ricca lxHandleX. Migrare un formato di file alla volta è sicuro e
incrementale
|
| Formula engine included |
Un motore di calcolo multi-passaggi integrato gestisce le funzioni di foglio più comuni senza richiedere
a Excel di ricalcolare all'apertura. Le funzioni personalizzate vengono gestite tramite la callback OnUserFunction
|
| Easy to use |
I componenti Delphi rapidi da integrare (TDataToXLS, TGridToXLS) non richiedono codice per
le attività di esportazione comuni. L'API fluente degli intervalli supporta la notazione A1, la notazione R1C1 e l'indicizzazione
a base zero di righe/colonne
|
| Thread-safe file I/O |
Poiché non esiste un processo Office condiviso, più istanze TXLSXWorkbook possono essere
create e salvate in contemporanea su thread indipendenti senza sincronizzazione, rendendo HotXLS
adatto ai server multi-thread di generazione di report
|
Compatibilità
HotXLS è compatibile con le seguenti versioni di RAD Studio:
| Delphi | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| C++Builder | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| Target platforms | Windows 32-bit e 64-bit |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
Vedi anche
- Panoramica della facade XLSX (lxHandleX) — gerarchia completa delle classi e membri API specifici di XLSX/ODS
- Demo API Tour — la prima demo da eseguire quando impari HotXLS da zero
- IXLSWorkbook — riferimento dell'interfaccia del workbook XLS classico
- TXLSWorksheet — riferimento della classe del foglio di lavoro XLS classico
- IXLSRange — interfaccia degli intervalli: accesso alle celle, formattazione e operazioni
- TXLSXWorkbook — riferimento della classe del workbook XLSX
- TXLSXWorksheet — riferimento della classe del foglio di lavoro XLSX
- TGridToXLS — componente rapidamente integrabile per l'esportazione da DBGrid a Excel
- TDataToXLS — componente rapidamente integrabile per l'esportazione da dataset a Excel
- Callback OnUserFunction — punto di estensione per funzioni di foglio personalizzate
- Modello colori XLS classico — razionale del design dei colori basati sulla palette e dei colori del tema
- Membri API aggiuntivi XLS classici — proprietà di calcolo, proprietà dei documenti, tabelle pivot e altro
- Esempi — panoramica dei progetti di esempio
- Esempio di ordine di acquisto — esempio completo di creazione XLS con codice sorgente
