Dokumentacija HotXLS

Pregled

HotXLS Logo
Knjižnica za branje/pisanje datotek Excel HotXLS je visoko zmogljiva komponenta za branje in pisanje Excel datotek za Delphi & C++Builder Ustvari lahko nove Excel preglednice ter bere ali spreminja obstoječe delovne zvezke XLS in XLSX brez potrebe po nameščenem Microsoft Excelu ali Officeu na računalniku
HotXLS je v celoti napisan v Object Pascalu. Datoteke Excel bere in piše neposredno na ravni binarnih zapisov in OOXML, zato ni nobenih dodatnih stroškov avtomatizacije COM/OLE in ni odvisnosti od licenciranega ali nameščenega Officea. HotXLS podpira Delphi in C++Builder XE5 do 13 Florence
Barvno oblikovanje klasičnega XLS namenoma ostaja zasnovano na paleti. Za odločitev ThemeColor / TintAndShade glej Classic XLS color model

Arhitektura z dvojno fasado

HotXLS razkriva dve soobstajajoči fasadni enoti, tako da lahko stara koda XLS in nova koda XLSX živita druga ob drugi brez kakršnega koli preoblikovanja:
lxHandle Primarna fasada za obliko BIFF8 formata Excel 97–2003 (.xls) ter izvoze HTML, RTF, CSV in TSV. Vsa obstoječa uporabniška koda še naprej uporablja to enoto nespremenjeno. Vstopne točke: TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
lxHandleX Primarna fasada za branje/pisanje formata OOXML Excel 2007+ (.xlsx) in preglednic OpenDocument (.ods). Zagotavlja lastne vrste delovnega zvezka in delovnega lista, tako da vedenje, značilno za XLSX, ni naknadno vpeto v kodno pot BIFF. Vstopne točke: TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
Obe fasadni plasti si delita isti formulni pogon, isto raven podpore za Unicode in isti izvozni cevovod Za celotno hierarhijo razredov, ki jih razkriva lxHandleX, glej XLSX Facade Overview

Hitri začetek

Naslednji odrezki prikazujejo minimalno kodo za ustvarjanje delovnega zvezka z enim delovnim listom in zapis vrednosti v celico.

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 širši vodnik, ki v enem demonstracijskem projektu pokriva obe fasadni plasti, glejte API Tour Demo

Funkcije

Datotečni I/O in podpora za tokove

Branje obstoječih datotek Excel, pisanje novih ali obstoječih datotek Excel, obravnava zaščite z geslom klasičnega XLS in potekov šifriranega shranjevanja XLSX ter hiter seznam imen delovnih listov iz datotek ali tokov XLS in XLSX brez nalaganja celotnega delovnega zvezka. Odpiranje CSV kot delovnega zvezka je podprto prek IXLSWorkbook.OpenCSV

Vrednosti celic in formule

Branje in pisanje vrednosti celic vseh izvornih vrst Excel: število, niz, datum/čas, logična vrednost in formula. Vgrajeni računski pogon izračuna formule v delovnih zvezkih klasičnega XLS in XLSX ter podpira:
  • Besedilne funkcije (LEFT, MID, TRIM, SUBSTITUTE, …)
  • Funkcije za datume in delovne dni (DATE, NETWORKDAYS, WORKDAY, …)
  • Inženirske funkcije in funkcije za pretvorbo osnov (BIN2DEC, HEX2DEC, …)
  • Bitne funkcije (BITAND, BITOR, BITXOR, …)
  • Statistične in zbirne funkcije (AVERAGE, SUMIF, COUNTIFS, …)
  • Matematične funkcije (ROUND, MOD, POWER, …)
Povratni klic OnUserFunction vam omogoča obravnavo poljubnih ali nepodprtih funkcij delovnega lista med izvajanjem. Za podpis in primere glejte OnUserFunction callback
Formula evaluation example

Oblikovanje celic

Poln dostop do atributov videza celic:
  • Pisave — ime, velikost, barva (RGB ali barva teme + odtenek), krepko, poševno, podčrtano, prečrtano, nadpisano, podpisano, senca in obris
  • Poravnava — vodoravna in navpična poravnava, usmerjenost besedila (kot), stopnja zamika, lomljenje besedila, prilagajanje velikosti in vrstni red branja (RTL/LTR)
  • Obrobe — vsi štirje robovi in diagonale, slog črte, debelina ter barva RGB / teme
  • Notranjost (polnilo) — enotno polnilo, polnila z vzorcem, barve ospredja in ozadja, vključno z barvo teme s TintAndShade
  • Formati števil — vgrajeni in poljubni formatni nizi za datum, čas, valuto, odstotke in znanstveni zapis
  • Komentarji / opombe — dodajanje, branje in oblikovanje komentarjev celic

Operacije z območji

IXLSRange (klasična fasada) in TXLSXRange (fasada XLSX) zagotavljata bogat nabor operacij z območji:
  • Združevanje in razzdruževanje celic; dostop do združenega območja katere koli celice
  • Kopiranje, premikanje, vstavljanje in brisanje območij z nadzorom smeri premika
  • Združevanje in razdruževanje vrstic ali stolpcev za poglede s pregledom/stiskanjem
  • Samodejno prilagajanje višine vrstice in širine stolpca vsebini celice
  • Uporaba vgrajenih poimenovanih slogov celic (ApplyBuiltinStyle)
  • Izbori z več območji (TXLSWorksheet.SelectAreas)
  • Povratni klic za iteracijo ForEachCell za paketno obdelavo celic

Funkcije delovnega lista

Nadzor na ravni delovnega lista pokriva:
  • Ime lista, barvo zavihka, vidnost (skrito / zelo skrito) in navigacijo na podlagi indeksa
  • Zaščito lista s podrobnostjo po posameznem dovoljenju; zaščito na ravni delovnega zvezka
  • Zamrznjena podokna, razdeljena podokna in položaj drsenja
  • Območja samodejnega filtra z merili; seznam pravil za preverjanje podatkov
  • Pogojno oblikovanje: barvne lestvice (2 in 3 barve), podatkovne vrstice in nabori ikon
  • Iskanje in zamenjavo besedila v delovnem listu
  • Možnosti pogleda: barva mrežnih črt, način prikaza formul, prikaz ničel, prikaz naslovov, prikaz od desne proti levi, prikaz simbolov pregleda in stopnja povečave
  • Strukturirane tabele (TXLSTable / TXLSXTable): dodajanje, dostop in oblikovanje Excel tabel z naslovnimi in pasovnimi vrsticami
  • Grafikoni: dodajanje listov z grafikoni in vdelanih grafikonov prek TXLSWorksheetsAddChartSheet in TXLSXChart

Hiperpovezave in poimenovana območja

Dodajanje in branje hiperpovezav (URL, mailto in sklice celic znotraj delovnega zvezka) prek IXLSHyperLinks. Definiranje in razreševanje poimenovanih območij na ravni delovnega zvezka in delovnega lista prek IXLSNames / TXLSXDefinedNames. Poimenovana območja lahko uporabljate v formulah in jih razrešite nazaj v območje celic prek RefersToRange

Slike in oblike

Vdelava rastrskih slik (BMP, JPG, PNG, GIF) v delovne liste prek TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Ustvarjanje samostojnih besedilnih polj v klasičnem XLS prek TXLSShapes.AddTextBox. Ohranjanje konektorjev OfficeArt in pravil reševalnika, ki jih je ustvaril Excel, v risbah BIFF8 ter izpostavitev neobdelanih možnosti FOPT oblik prek TXLSShape.OfficeArtOptions za napredne poteke dela z risanjem

Nastavitev strani in tiskanje

Poln dostop do postavitve tiskanja prek IXLSPageSetup:
  • Velikost papirja (A4, Letter, Legal in številne druge; glej PaperSize)
  • Usmerjenost (pokončno / ležeče), robovi, centriranje vodoravno / navpično
  • Niza glave in noge s kodami oblikovanja Excel (krepko, poševno, številka strani, datum itd.; glej Header/Footer formatting codes)
  • Ročni vodoravni in navpični prelomi strani
  • Prilagajanje številu strani; odstotek povečave; območje tiskanja; naslovi tiskanja (ponavljanje vrstic / stolpcev)
  • Kakovost osnutka; črno-belo; tisk mrežnih črt; tisk naslovov; tisk opomb

Formati izvoza

Izvoz celotnih delovnih zvezkov, posameznih delovnih listov ali poljubnih območij celic v:
  • HTML — celoten dokument ali delček tabele v vrstici za poteke dela s predogledom ali e-pošto; nadzorovano prek TXLSHTMLExport in TXLSXHtmlExportOptions
  • RTF — obogateno besedilo za uvoz v urejevalnike besedila
  • CSV — vrednosti, ločene z vejicami, s konfigurabilnim ločilom in kodiranjem
  • TSV — vrednosti, ločene s tabulatorji
  • ODS — preglednica OpenDocument prek fasade lxHandleX

Izvozi podatkovnih zbirk in mrež

Neposreden izvoz katerega koli podatkovnega niza, združljivega s TDataSet, ali TDBGrid v Excel, HTML ali RTF s komponentama TDataToXLS ali TGridToXLS. Obe komponenti sprožata dogodke AfterCell, AfterRow, AfterTitle in AfterGroup za podroben nadzor nad izpisom ter podpirata večnivojska polja združevanja

Ohranjanje projekta VBA

HotXLS ohranja nosilce projekta VBA pri ponovnem branju/pisanju delovnih zvezkov z omogočenimi makri. Pregled modulov v načinu samo za branje je na voljo prek TXLSVBAProject in TXLSVBAModule. Z IXLSWorkbook.HasVBAProject zaznate nosilec, z LoadVBAProjectFromFile / SaveVBAProjectToFile pa ga prenesete med datotekami

Unicode in mednarodno besedilo

Vsa obravnava nizov je izvorno Unicode. HotXLS bere in piše datoteke Excel, ustvarjene v katerem koli jeziku, vključno s CJK, arabščino, hebrejščino, tajščino in drugimi pisavami, s pravilno podporo za dvosmerno besedilo in vrstni red branja
Unicode character support example

Vrtilne tabele (klasični XLS)

Ustvarjanje vrtilnih tabel iz izvornega območja z TXLSWorksheet.AddPivotTable, konfiguracija razporeditve polj in formatov števil podatkovnih polj ter pregled modela vrtilne tabele prek TXLSWorksheet.PivotTables. Za podrobnosti o poljih in filtrih glej Classic XLS pivot table API

Prednosti

Ni odvisnosti od Officea Datoteke XLS in XLSX bere in piše neposredno na binarni ravni. Microsoft Excel ali Office ni treba namestiti, licencirati ali zagnati. To odpravlja stroške avtomatizacije COM/OLE, se izogne omejitvam niti, ki jih nalaga interoperabilnost Officea, in omogoča uporabo HotXLS v strežniških in storitvenih okoljih, kjer namestitev namiznega Officea ni smiselna
Visoka zmogljivost Razčlenjevalnika BIFF8 in OOXML sta napisana v izvornem Object Pascalu brez vmesne dodelitve XML DOM na kritični poti. Veliki delovni zvezki s stotinami tisočev vrstic se lahko berejo in pišejo z nizko konično porabo pomnilnika. Deduplikacija skupnih nizov in stiskanje skupnih formul se uporabljata samodejno za ohranjanje majhnih velikosti datotek
Pot selitve iz OLE Površina API-ja klasične fasade (delovni zvezek, delovni list, območje, pisava, obrobe, notranjost, nastavitev strani) tesno zrcali objektni model Excel, poznan iz avtomatizacije OLE. To poenostavi selitev obstoječih projektov na OLE: klike COM zamenjajte s klici HotXLS, odstranite odvisnost od Officea in pridobite izvorno zmogljivost
Zasnova z dvojno fasado Stara koda XLS se še naprej prevaja in izvaja nespremenjeno ob lxHandle, medtem ko nova koda XLSX uporablja bogatejšo fasado lxHandleX. Selitev po eno vrsto datoteke naenkrat je varna in postopna
Vključen formulni pogon Vgrajeni večprehodni računski pogon obravnava najpogostejše funkcije delovnega lista brez potrebe, da Excel ob odprtju znova izračuna. Poljubne funkcije se obravnavajo prek povratnega klica OnUserFunction
Enostavna uporaba Komponente Delphi, ki jih preprosto spustite v projekt (TDataToXLS, TGridToXLS), ne zahtevajo kode za običajne naloge izvoza. Gladki API za območja podpira zapis A1, zapis R1C1 in indeksiranje vrstic/stolpcev od nič
Varen datotečni I/O v večnitnem okolju Ker ni skupnega procesa Officea, je mogoče več primerkov TXLSXWorkbook ustvarjati in shranjevati sočasno na neodvisnih nitih brez sinhronizacije, zaradi česar je HotXLS primeren za večnitne strežnike za generiranje poročil

Združljivost

HotXLS je združljiv z naslednjimi različicami 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
Ciljne platforme Windows 32-bitni in 64-bitni
Formati datotek Excel XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2)
Formati samo za izvoz HTML, RTF, CSV, TSV

Glej tudi