Dokumentacija HotXLS

Pregled

HotXLS Logo
HotXLS Excel Read/Write Library je komponenta visokih performansi za čitanje i upis Excel datoteka za Delphi & C++Builder. Može da kreira nove Excel proračunske tablice i čita ili menja postojeće XLS i XLSX radne sveske bez zahteva da Microsoft Excel ili Office budu instalirani na računaru
HotXLS je u potpunosti napisan u Object Pascal-u. On direktno čita i upisuje Excel datoteke na binarnom i OOXML nivou, tako da nema COM/OLE automatizacionog dodatnog opterećenja niti zavisnosti od toga da li je Office licenciran ili prisutan. HotXLS podržava Delphi i C++Builder XE5 do 13 Florence
Formatiranje boja klasičnog XLS-a namerno ostaje zasnovano na paleti. Pogledajte Klasični XLS model boja za odluku o ThemeColor / TintAndShade

Arhitektura sa dve fasade

HotXLS izlaže dve koegzistirajuće fasadne jedinice tako da stari XLS kod i novi XLSX kod mogu da žive jedan pored drugog bez ikakvog refaktorisanja:
lxHandle Primarna fasada za Excel 97–2003 BIFF8 format (.xls), plus izvoz u HTML, RTF, CSV i TSV. Sav postojeći korisnički kod nastavlja da koristi ovu jedinicu nepromenjeno. Ulazne tačke: TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
lxHandleX Primarna fasada za Excel 2007+ OOXML format (.xlsx) i čitanje/upis OpenDocument Spreadsheet (.ods). Obezbeđuje sopstvene tipove radne sveske i radnog lista tako da se ponašanje specifično za XLSX ne prenosi retrogradno na BIFF putanju koda. Ulazne tačke: TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
Obe fasade dele isti mehanizam formula, isti sloj podrške za Unicode i istu cevovod izvoza. Pogledajte XLSX Facade pregled za punu hijerarhiju klasa koju izlaže lxHandleX

Brzi početak

Sledeći isečci prikazuju minimalni kod za kreiranje radne sveske sa jednim radnim listom i upis vrednosti u ćeliju.

Klasični 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;
Za širi vodič koji pokriva obe fasade u jednom demo projektu, pogledajte API Tour Demo

Mogućnosti

Datotečni I/O i podrška za tokove

Čitajte postojeće Excel datoteke, upisujte nove ili postojeće Excel datoteke, rukujte zaštitom lozinkom klasičnog XLS-a i tokovima šifrovanog čuvanja XLSX-a, te brzo navedite nazive listova iz XLS i XLSX datoteka ili tokova bez učitavanja cele radne sveske. Otvaranje CSV datoteke kao radne sveske je podržano kroz IXLSWorkbook.OpenCSV

Vrednosti ćelija i formule

Čitajte i upisujte vrednosti ćelija svih izvornih Excel tipova: broj, niska, datum/vreme, bulov i formula. Ugrađeni motor za izračunavanje vrednuje formule i u klasičnim XLS i u XLSX radnim sveskama, uz podršku za:
  • Tekstualne funkcije (LEFT, MID, TRIM, SUBSTITUTE, …)
  • Funkcije datuma i radnih dana (DATE, NETWORKDAYS, WORKDAY, …)
  • Inženjerske funkcije i konverzija baza (BIN2DEC, HEX2DEC, …)
  • Bitovne funkcije (BITAND, BITOR, BITXOR, …)
  • Statističke i agregatne funkcije (AVERAGE, SUMIF, COUNTIFS, …)
  • Matematičke funkcije (ROUND, MOD, POWER, …)
OnUserFunction povratni poziv vam omogućava da u toku rada rukujete prilagođenim ili nepodržanim funkcijama radnog lista. Pogledajte OnUserFunction povratni poziv za potpis i primere
Formula evaluation example

Formatiranje ćelija

Potpun pristup atributima izgleda ćelije:
  • Fontovi — naziv, veličina, boja (RGB ili boja teme + nijansa), podebljano, kurziv, podvučeno, precrtano, nadpis, podpis, senka i kontura
  • Poravnanje — horizontalno i vertikalno poravnanje, orijentacija teksta (ugao), nivo uvlačenja, prelamanje teksta, prilagođavanje veličini i redosled čitanja (RTL/LTR)
  • Okviri — sve četiri ivice i dijagonale, stil linije, debljina i RGB / boja teme
  • Unutrašnjost (popuna) — puna popuna, popune šablonima, boje prednjeg plana i pozadine, uključujući boju teme sa TintAndShade
  • Formati broja — ugrađene i prilagođene niske formata za datum, vreme, valutu, procenat i naučnu notaciju
  • Komentari / napomene — dodajte, čitajte i oblikujte komentare ćelija

Operacije nad opsezima

IXLSRange (klasična fasada) i TXLSXRange (XLSX fasada) pružaju bogat skup operacija nad opsezima:
  • Spajanje i razdvajanje ćelija; pristup spojenoj oblasti bilo koje ćelije
  • Kopiranje, pomeranje, umetanje i brisanje opsega, uz kontrolu smera pomeranja
  • Grupisanje i razdvajanje redova ili kolona za prikaze sa konturama/sažimanjem
  • Automatsko prilagođavanje visine reda i širine kolone sadržaju ćelije
  • Primena ugrađenih imenovanih stilova ćelija (ApplyBuiltinStyle)
  • Oznake sa više oblasti (TXLSWorksheet.SelectAreas)
  • ForEachCell povratni poziv za iteraciju radi obrade ćelija u seriji

Funkcije radnog lista

Kontrola na nivou radnog lista obuhvata:
  • Naziv lista, boju kartice, vidljivost (skriven / veoma skriven) i navigaciju po indeksu
  • Zaštitu lista sa granularnošću po dozvoli; zaštitu na nivou radne sveske
  • Zamrznuta okna, podeljena okna i poziciju pomeranja
  • AutoFilter opsege sa kriterijumima; pravila provere podataka sa liste
  • Uslovno formatiranje: skale boja (2 i 3 boje), trake podataka i skupove ikona
  • Pretragu i zamenu teksta u okviru radnog lista
  • Opcije prikaza: boja linija mreže, režim prikaza formula, prikaz nula, prikaz zaglavlja, prikaz s desna na levo, prikaz simbola kontura i nivo zumiranja
  • Strukturisane tabele (TXLSTable / TXLSXTable): dodavanje, pristup i oblikovanje Excel tabela sa redovima zaglavlja i naizmeničnim redovima
  • Grafikoni: dodavanje listova sa grafikonima i ugrađenih grafikona preko TXLSWorksheetsAddChartSheet i TXLSXChart

Hiperveze i imenovani opsezi

Dodajte i čitajte hiperveze (URL, mailto i reference na ćelije unutar radne sveske) preko IXLSHyperLinks. Definišite i razrešavajte imenovane opsege na nivou radne sveske i radnog lista preko IXLSNames / TXLSXDefinedNames. Imenovani opsezi mogu da se koriste u formulama i da se vrate na opseg ćelija putem RefersToRange

Slike i oblici

Ugradite rasterske slike (BMP, JPG, PNG, GIF) u radne listove preko TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Kreirajte samostalne tekstualne okvire u klasičnom XLS-u preko TXLSShapes.AddTextBox. Sačuvajte Excel-ove OfficeArt konektore i pravila rešavača u BIFF8 crtežima i izložite sirove FOPT opcije oblika preko TXLSShape.OfficeArtOptions za napredne tokove rada sa crtežima

Postavke stranice i štampanje

Potpun pristup rasporedu štampe preko IXLSPageSetup:
  • Veličina papira (A4, Letter, Legal i mnoge druge; pogledajte PaperSize)
  • Orijentacija (portret / pejzaž), margine, centriranje horizontalno / vertikalno
  • Niske zaglavlja i podnožja sa Excel kodovima za formatiranje (podebljano, kurziv, broj stranice, datum itd.; pogledajte Kodovi za formatiranje zaglavlja/podnožja)
  • Ručni horizontalni i vertikalni prelomi stranice
  • Prilagođavanje na broj stranica; procenat zumiranja; oblast štampe; naslovi štampe (ponavljanje redova / kolona)
  • Kvalitet nacrta; crno-belo; štampanje linija mreže; štampanje zaglavlja; štampanje napomena

Formati izvoza

Izvozite cele radne sveske, pojedinačne radne listove ili proizvoljne opsege ćelija u:
  • HTML — pun dokument ili segment tabele u liniji za tokove rada sa pregledom ili e-poštom; kontroliše se preko TXLSHTMLExport i TXLSXHtmlExportOptions
  • RTF — obogaćeni tekst za uvoz u programe za obradu teksta
  • CSV — vrednosti razdvojene zarezom sa podesivim razdvajačem i kodnim rasporedom
  • TSV — vrednosti razdvojene tabulatorom
  • ODS — OpenDocument Spreadsheet preko lxHandleX fasade

Izvoz iz baze podataka i mreže

Izvezite bilo koji skup podataka kompatibilan sa TDataSet ili TDBGrid direktno u Excel, HTML ili RTF pomoću TDataToXLS ili TGridToXLS komponenti. Obe komponente pokreću AfterCell, AfterRow, AfterTitle i AfterGroup događaje za preciznu kontrolu izlaza i podržavaju polja grupisanja na više nivoa

Očuvanje VBA projekta

HotXLS čuva sadržaj VBA projekta pri ponovnom čitanju/upisu radnih sveska sa omogućenim makroima. Pregled modula samo za čitanje dostupan je preko TXLSVBAProject i TXLSVBAModule. Pozovite IXLSWorkbook.HasVBAProject da biste otkrili sadržaj i LoadVBAProjectFromFile / SaveVBAProjectToFile da biste ga preneli između datoteka

Unicode i međunarodni tekst

Celokupno rukovanje niskama je izvorno zasnovano na Unicode-u. HotXLS čita i upisuje Excel datoteke kreirane na bilo kom jeziku, uključujući CJK, arapski, hebrejski, tajlandski i druga pisma, uz ispravnu podršku za dvosmerni tekst i redosled čitanja
Unicode character support example

Pivot tabele (klasični XLS)

Kreirajte pivot tabele iz izvornog opsega pomoću TXLSWorksheet.AddPivotTable, konfigurišite raspored polja i formate broja podataka u poljima i pregledajte pivot model preko TXLSWorksheet.PivotTables. Pogledajte Klasični XLS pivot tabela API za detalje o poljima i filtrima

Prednosti

Bez zavisnosti od Office-a Čita i upisuje XLS i XLSX datoteke direktno na binarnom nivou. Microsoft Excel ili Office ne mora da bude instaliran, licenciran ili pokrenut. Ovo eliminiše dodatno opterećenje COM/OLE automatizacije, izbegava ograničenja vezana za niti koja nameće Office interop i omogućava korišćenje HotXLS-a u kontekstima na strani servera i usluga gde instalacija Office-a na radnoj stanici nije praktična
Visoke performanse BIFF8 i OOXML parseri su napisani u izvornom Object Pascal-u, bez alokacije među-XML DOM strukture za vruću putanju. Velike radne sveske sa stotinama hiljada redova mogu da se čitaju i upisuju uz nizak vršni nivo memorije. Deduplikacija zajedničkih niski i kompresija zajedničkih formula primenjuju se automatski kako bi veličina datoteka ostala mala
Putanja migracije sa OLE-a Površina API-ja klasične fasade (radna sveska, radni list, opseg, font, okviri, unutrašnjost, postavke stranice) blisko ogleda Excel objektni model poznat iz OLE automatizacije. Ovo čini migraciju postojećih projekata zasnovanih na OLE-u jednostavnom: zamenite COM pozive HotXLS pozivima, uklonite zavisnost od Office-a i dobijete izvorne performanse
Dizajn sa dve fasade Nasleđeni XLS kod nastavlja da se kompajlira i radi nepromenjeno uz lxHandle, dok novi XLSX kod koristi bogatiju lxHandleX fasadu. Migriranje jednog formata datoteke po jedan je bezbedno i postepeno
Uključen motor formula Ugrađeni višeprolazni motor za izračunavanje rukuje najčešćim funkcijama radnog lista bez potrebe da Excel preračunava pri otvaranju. Prilagođene funkcije se obrađuju kroz OnUserFunction povratni poziv
Jednostavan za korišćenje Gotove Delphi komponente (TDataToXLS, TGridToXLS) ne zahtevaju kod za uobičajene zadatke izvoza. Fluentni opseg API-ja podržava A1 notaciju, R1C1 notaciju i indeksiranje redova/kolona od nule
Datotečni I/O bezbedan za niti Pošto ne postoji zajednički Office proces, više instanci TXLSXWorkbook može istovremeno da se kreira i čuva na nezavisnim nitima bez sinhronizacije, što HotXLS čini pogodnim za višenitne servere za generisanje izveštaja

Kompatibilnost

HotXLS je kompatibilan sa sledećim verzijama RAD Studio-a:
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
Ciljne platforme Windows 32-bitni i 64-bitni
Formati Excel datoteka XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2)
Formati samo za izvoz HTML, RTF, CSV, TSV

Vidi takođe