Documentație HotXLS

Prezentare generală

HotXLS Logo
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
Exemplu de evaluare formulă

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 și TXLSXChart

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 și TXLSXHtmlExportOptions
  • 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
Exemplu de suport caractere Unicode

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