Prezentare generală
![]() |
HotXLS Excel Read/Write Library este o componentă de înaltă performanță pentru citirea și scrierea fișierelor Excel, destinată Delphi & C++Builder
Poate crea foi de calcul Excel noi și poate citi sau modifica registre de lucru XLS și XLSX existente, fără a necesita
instalarea Microsoft Excel sau Office pe mașina respectivă
HotXLS este scris integral în Object Pascal. Citește și scrie fișiere Excel direct
la nivel binar și OOXML, astfel nu există overhead COM/OLE automation și nicio dependență față de Office
licențiat sau prezent. HotXLS suportă Delphi și C++Builder XE5 până la 13 Florence
Formatarea culorilor XLS clasic rămâne intenționat bazată pe paletă. Consultați Modelul de culori XLS clasic
pentru decizia privind ThemeColor / TintAndShade
|
Arhitectură Dual-Facade
HotXLS expune două unități facade coexistente, astfel încât codul XLS moștenire și codul XLSX nou pot coexista
fără nicio refactorizare:
lxHandle |
Facade principal pentru formatul Excel 97–2003 BIFF8 (.xls), plus export HTML, RTF, CSV și TSV
Tot codul utilizatorului existent continuă să folosească această unitate nemodificată. Puncte de intrare:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Facade principal pentru formatul Excel 2007+ OOXML (.xlsx) și OpenDocument Spreadsheet
(.ods) citire/scriere. Oferă propriile tipuri de registru de lucru și foaie de lucru, astfel comportamentul specific XLSX nu este
adaptat pe calea de cod BIFF. Puncte de intrare:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Ambele facade partajează același motor de formule, același strat de suport Unicode și același pipeline de export
Consultați Prezentare generală XLSX Facade pentru ierarhia completă de clase expusă de
lxHandleX
Pornire rapidă
Fragmentele de mai jos arată codul minimal pentru a crea un registru de lucru cu o singură foaie de lucru și a scrie
o valoare într-o celulă.
XLS clasic (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// Adaugă o foaie de lucru și îi dă un nume
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Scrie valori în celule folosind notația A1
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Aplică formatare de bază
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');
// Scrie un șir și o valoare numerică
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;
// Aplică un format numeric de tip monedă
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
Pentru o prezentare mai amplă care acoperă ambele facade într-un singur proiect demo, consultați
Demo tur API
Funcționalități
I/O fișiere și suport flux de date
Citește fișiere Excel existente, scrie fișiere Excel noi sau existente, gestionează protecția prin parolă XLS clasic și
fluxurile de salvare criptată XLSX, și listează rapid numele foilor din fișierele sau fluxurile XLS și XLSX fără
a încărca întregul registru de lucru. Deschiderea unui CSV ca registru de lucru este suportată prin
IXLSWorkbook.OpenCSV
Valori de celule și formule
Citește și scrie valori de celule pentru toate tipurile native Excel: număr, șir de caractere, dată/oră, boolean și formulă
Motorul de calcul integrat evaluează formulele atât în registrele de lucru XLS clasic, cât și în cele XLSX, suportând:
- Funcții text (
LEFT,MID,TRIM,SUBSTITUTE, …) - Funcții de dată și zile lucrătoare (
DATE,NETWORKDAYS,WORKDAY, …) - Funcții de inginerie și conversie de baze numerice (
BIN2DEC,HEX2DEC, …) - Funcții pe biți (
BITAND,BITOR,BITXOR, …) - Funcții statistice și de agregare (
AVERAGE,SUMIF,COUNTIFS, …) - Funcții matematice (
ROUND,MOD,POWER, …)
Un callback
OnUserFunction vă permite să gestionați funcții de foaie de lucru personalizate sau nesuportate la runtime
Consultați Callback OnUserFunction pentru semnătură și exemple

Formatarea celulelor
Acces complet la atributele de aspect ale celulelor:
- Fonturi — nume, dimensiune, culoare (RGB sau culoare temă + nuanță), aldin, cursiv, subliniat, tăiat, superscript, subscript, umbră și contur
- Aliniere — aliniere orizontală și verticală, orientarea textului (unghi), nivel de indentat, text cu wrapping, reducere la dimensiune și ordine de citire (RTL/LTR)
- Borduri — toate cele patru margini și diagonalele, stil de linie, grosime și culoare RGB / temă
- Interior (umplere) — umplere solidă, umpleri cu model, culori de prim-plan și fundal inclusiv culoarea temei cu TintAndShade
- Formate numerice — șiruri de format integrate și personalizate pentru dată, oră, monedă, procente și notație științifică
- Comentarii / adnotări — adăugare, citire și stilizare comentarii de celule
Operații pe intervale
IXLSRange (facade clasic) și TXLSXRange (facade XLSX) oferă un set bogat de
operații pe intervale:
- Fuzionare și defuzionare celule; acces la zona fuzionată a oricărei celule
- Copiere, mutare, inserare și ștergere intervale, cu control al direcției de deplasare
- Grupare și degrupare rânduri sau coloane pentru vizualizări de schiță/restrângere
- AutoFit la înălțimea rândului și lățimea coloanei față de conținutul celulei
- Aplicare stiluri de celule integrate cu nume (
ApplyBuiltinStyle) - Selecții cu mai multe zone (
TXLSWorksheet.SelectAreas) - Callback de iterație ForEachCell pentru procesarea în lot a celulelor
Funcționalități ale foii de lucru
Controlul la nivel de foaie de lucru acoperă:
- Numele foii, culoarea filei, vizibilitate (ascuns / foarte-ascuns) și navigare pe baza indexului
- Protecția foii cu granularitate per-permisiune; protecția la nivel de registru de lucru
- Panouri înghețate, panouri împărțite și poziția de derulare
- Intervale AutoFilter cu criterii; reguli de validare a datelor în liste
- Formatare condiționată: scale de culori (2 și 3 culori), bare de date și seturi de pictograme
- Găsire text și înlocuire text în cadrul unei foi de lucru
- Opțiuni de vizualizare: culoarea grilei, mod afișare formule, afișare zerouri, afișare anteturi, afișare de la dreapta la stânga, afișare simboluri schiță și nivel de zoom
- Tabele structurate (
TXLSTable/TXLSXTable): adăugare, accesare și stilizare tabele Excel cu rânduri de antet și rânduri alternante - Diagrame: adăugare foi de diagrame și diagrame încorporate prin
TXLSWorksheetsAddChartSheetșiTXLSXChart
Hiperlinkuri și intervale denumite
Adăugați și citiți hiperlinkuri (URL, mailto și referințe de celule în registrul de lucru) prin
IXLSHyperLinks. Definiți și rezolvați intervale denumite la nivelul registrului de lucru și al foii de lucru prin
IXLSNames / TXLSXDefinedNames. Intervalele denumite pot fi utilizate în formule și
rezolvate înapoi la un interval de celule prin RefersToRange
Imagini și forme
Încorporați imagini raster (BMP, JPG, PNG, GIF) în foile de lucru prin
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Creați casete de text independente
în XLS clasic prin TXLSShapes.AddTextBox. Păstrați regulile de conector și solver OfficeArt create de Excel
în desenele BIFF8 și expuneți opțiunile brute FOPT ale formelor prin
TXLSShape.OfficeArtOptions pentru fluxuri de lucru avansate cu desene
Configurare pagină și tipărire
Acces complet la aspectul de tipărire prin
IXLSPageSetup:
- Dimensiunea hârtiei (A4, Letter, Legal și multe altele; consultați PaperSize)
- Orientare (portret / peisaj), margini, centrare orizontală / verticală
- Șiruri antet și subsol cu coduri de formatare Excel (aldin, cursiv, număr pagină, dată etc.; consultați Coduri de formatare antet/subsol)
- Întreruperi de pagină orizontale și verticale manuale
- Scalare fit-to-pages; procentaj zoom; zona de tipărire; titluri de tipărire (repetare rânduri / coloane)
- Calitate ciornă; alb-negru; tipărire grilă; tipărire anteturi; tipărire note
Formate de export
Exportați registre de lucru întregi, foi de lucru individuale sau intervale arbitrare de celule în:
- HTML — document complet sau un fragment de tabel inline pentru fluxuri de previzualizare sau e-mail;
controlabil prin
TXLSHTMLExportșiTXLSXHtmlExportOptions - RTF — text formatat pentru import în procesoare de text
- CSV — valori separate prin virgulă cu delimitator și codificare configurabile
- TSV — valori separate prin tab
- ODS — OpenDocument Spreadsheet prin facade-ul
lxHandleX
Export baze de date și grilă
Exportați orice set de date compatibil TDataSet sau un TDBGrid direct în Excel, HTML sau RTF folosind componentele
TDataToXLS sau
TGridToXLS
Ambele componente declanșează evenimentele AfterCell, AfterRow, AfterTitle și
AfterGroup pentru control fin al ieșirii și suportă câmpuri de grupare pe mai multe niveluri
Păstrarea proiectului VBA
HotXLS păstrează datele proiectului VBA la round-tripping registrelor de lucru cu macro-uri activate. Inspecția modulelor
în mod doar-citire este disponibilă prin
TXLSVBAProject și TXLSVBAModule
Apelați IXLSWorkbook.HasVBAProject pentru a detecta un payload și
LoadVBAProjectFromFile / SaveVBAProjectToFile pentru a-l transfera între fișiere
Text Unicode și internațional
Toată gestionarea șirurilor este nativă Unicode. HotXLS citește și scrie fișiere Excel create în orice limbă,
inclusiv CJK, arabă, ebraică, thai și alte scripturi, cu suport corect pentru text bidirecțional și ordine de citire

Tabele pivot (XLS clasic)
Creați tabele pivot dintr-un interval sursă cu
TXLSWorksheet.AddPivotTable, configurați plasarea câmpurilor și formatele numerice ale câmpurilor de date, și
inspectați modelul pivot prin TXLSWorksheet.PivotTables
Consultați API tabele pivot XLS clasic pentru detalii despre câmpuri și filtre
Avantaje
| No Office dependency | Citește și scrie fișiere XLS și XLSX direct la nivel binar. Microsoft Excel sau Office nu trebuie să fie instalat, licențiat sau în execuție. Aceasta elimină overhead-ul de automatizare COM/OLE, evită restricțiile de threading impuse de interoperabilitatea Office, și permite utilizarea HotXLS în contexte de server și servicii unde o instalare Office pe desktop este impractică |
| High performance | Parserele BIFF8 și OOXML sunt scrise în Object Pascal nativ fără alocare DOM XML intermediar pentru calea de acces principală. Registrele de lucru mari cu sute de mii de rânduri pot fi citite și scrise cu un consum redus de memorie de vârf. Deduplicarea șirurilor partajate și compresia formulelor partajate sunt aplicate automat pentru a menține dimensiunile fișierelor mici |
| OLE migration path | Suprafața API a facade-ului clasic (registru de lucru, foaie de lucru, interval, font, borduri, interior, configurare pagină) oglindește îndeaproape modelul de obiecte Excel familiar din OLE Automation. Aceasta face migrarea proiectelor existente bazate pe OLE simplă: înlocuiți apelurile COM cu apeluri HotXLS, eliminați dependența de Office și obțineți performanță nativă |
| Dual-facade design |
Codul XLS moștenire continuă să compileze și să ruleze nemodificat cu lxHandle, în timp ce codul XLSX nou
utilizează facade-ul mai bogat lxHandleX. Migrarea unui format de fișier pe rând este sigură și
incrementală
|
| Formula engine included |
Un motor de calcul multi-pass integrat gestionează cele mai comune funcții de foaie de lucru fără a necesita
ca Excel să recalculeze la deschidere. Funcțiile personalizate sunt gestionate prin callback-ul OnUserFunction
|
| Easy to use |
Componentele Delphi plug-and-play (TDataToXLS, TGridToXLS) nu necesită cod pentru
sarcinile de export obișnuite. API-ul fluent pentru intervale suportă notația A1, notația R1C1 și indexarea
rând/coloană bazată pe zero
|
| Thread-safe file I/O |
Deoarece nu există un proces Office partajat, mai multe instanțe TXLSXWorkbook pot fi
create și salvate concurent pe fire de execuție independente fără sincronizare, făcând HotXLS
potrivit pentru servere de generare rapoarte multi-threaded
|
Compatibilitate
HotXLS este compatibil cu următoarele versiuni 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 și 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 |
Vedeți și
- Prezentare generală XLSX Facade (lxHandleX) — ierarhia completă de clase și membrii API specifici XLSX/ODS
- Demo tur API — primul demo de rulat când înveți HotXLS de la zero
- IXLSWorkbook — referință interfață registru de lucru XLS clasic
- TXLSWorksheet — referință clasă foaie de lucru XLS clasic
- IXLSRange — interfață interval: acces celule, formatare și operații
- TXLSXWorkbook — referință clasă registru de lucru XLSX
- TXLSXWorksheet — referință clasă foaie de lucru XLSX
- TGridToXLS — componentă plug-and-play de export DBGrid în Excel
- TDataToXLS — componentă plug-and-play de export set de date în Excel
- Callback OnUserFunction — punct de extensie pentru funcții personalizate de foaie de lucru
- Modelul de culori XLS clasic — rațiunea de proiectare pentru culori bazate pe paletă și culori temă
- Membrii API suplimentari XLS clasic — proprietăți de calcul, proprietăți de document, tabele pivot și altele
- Exemple — prezentare generală proiecte exemplu
- Exemplu comandă de achiziție — exemplu complet de creare XLS cu cod sursă
