HotXLS dokumentáció

Áttekintés

HotXLS Logo
A HotXLS Excel Read/Write Library egy nagy teljesítményű Excel olvasó-író komponens Delphi és C++Builder fejlesztői környezethez Képes új Excel táblázatokat létrehozni, valamint meglévő XLS és XLSX munkafüzeteket olvasni vagy módosítani anélkül, hogy a Microsoft Excel vagy Office telepítve lenne a gépen
A HotXLS teljes egészében Object Pascal nyelven íródott. Az Excel fájlokat közvetlenül olvassa és írja bináris és OOXML szinten, így nincs COM/OLE automatizálási többletterhelés, és nem szükséges az Office licencelése vagy jelenléte. A HotXLS támogatja a Delphi és C++Builder XE5–13 Florence verziókat
A klasszikus XLS színformázás szándékosan palettaalapú marad. A ThemeColor / TintAndShade tervezési döntésről lásd a Klasszikus XLS színmodell oldalt

Kettős felület architektúra

A HotXLS két párhuzamosan létező felületi egységet kínál, így az örökölt XLS-kód és az új XLSX-kód egymás mellett élhet anélkül, hogy bármilyen újraírásra lenne szükség:
lxHandle Elsődleges felület az Excel 97–2003 BIFF8 formátumhoz (.xls), valamint HTML, RTF, CSV és TSV exporthoz. A meglévő felhasználói kód változatlanul folytatja ezen egység használatát. Belépési pontok: TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
lxHandleX Elsődleges felület az Excel 2007+ OOXML formátumhoz (.xlsx) és az OpenDocument Spreadsheet (.ods) olvasáshoz/íráshoz. Saját munkafüzet- és munkalaptípusokat biztosít, így az XLSX-specifikus viselkedés nem kerül visszavetítésre a BIFF kódútvonalra. Belépési pontok: TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
Mindkét felület ugyanazt a képletmotort, ugyanazt a Unicode-támogatási réteget és ugyanazt az exportfolyamatot használja Az lxHandleX által közzétett teljes osztályhierarchiáért lásd az XLSX felület áttekintése oldalt

Gyorsindítás

Az alábbi kódrészletek azt a minimális kódot mutatják be, amellyel egy munkafüzet létrehozható egyetlen munkalappal, majd értéket lehet írni egy cellába.

Klasszikus 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;
Egy szélesebb körű bemutatóért, amely mindkét felületet lefedi egyetlen demóprojektben, lásd az API Tour demót

Funkciók

Fájl I/O és adatfolyam-támogatás

Meglévő Excel fájlok olvasása, új vagy meglévő Excel fájlok írása, klasszikus XLS jelszavas védelem és XLSX titkosított mentési munkafolyamatok kezelése, valamint munkalapnevek gyors listázása XLS és XLSX fájlokból vagy adatfolyamokból a teljes munkafüzet betöltése nélkül. CSV-fájl munkafüzetként való megnyitása az IXLSWorkbook.OpenCSV metóduson keresztül támogatott

Cellaértékek és képletek

Az összes natív Excel típusú cellaérték olvasása és írása: szám, szöveg, dátum/idő, logikai érték és képlet A beépített számítási motor kiértékeli a képleteket mind a klasszikus XLS, mind az XLSX munkafüzetekben, és a következőket támogatja:
  • Szövegfüggvények (LEFT, MID, TRIM, SUBSTITUTE, …)
  • Dátum- és munkanapfüggvények (DATE, NETWORKDAYS, WORKDAY, …)
  • Mérnöki és alapkonverziós függvények (BIN2DEC, HEX2DEC, …)
  • Bitszintű függvények (BITAND, BITOR, BITXOR, …)
  • Statisztikai és összesítő függvények (AVERAGE, SUMIF, COUNTIFS, …)
  • Matematikai függvények (ROUND, MOD, POWER, …)
Az OnUserFunction visszahívás lehetővé teszi egyéni vagy nem támogatott munkalapfüggvények kezelését futási időben Az aláíráshoz és példákhoz lásd az OnUserFunction visszahívás oldalt
Képletkiértékelési példa

Cellaformázás

Teljes hozzáférés a cella megjelenési attribútumaihoz:
  • Betűtípusok — név, méret, szín (RGB vagy témaszerű szín + árnyalat), félkövér, dőlt, aláhúzott, áthúzott, felső index, alsó index, árnyék és körvonal
  • Igazítás — vízszintes és függőleges igazítás, szöveg tájolása (szög), behúzási szint, szövegburkolás, zsugorítás mérethez igazítva, és olvasási irány (RTL/LTR)
  • Szegélyek — mind a négy él és az átlók, vonalstílus, vastagság, RGB / témaszerű szín
  • Belső kitöltés — egyszínű kitöltés, mintás kitöltések, előtér- és háttérszínek, beleértve a TintAndShade-del rendelkező témaszerű színeket
  • Számformátumok — beépített és egyéni formátumstringek dátumhoz, időhöz, pénznemhez, százalékhoz és tudományos jelöléshez
  • Megjegyzések / annotációk — cellamegjegyzések hozzáadása, olvasása és formázása

Tartományműveletek

Az IXLSRange (klasszikus felület) és a TXLSXRange (XLSX felület) széles körű tartományműveleteket kínál:
  • Cellák egyesítése és szétválasztása; bármely cella egyesített területének elérése
  • Tartományok másolása, áthelyezése, beszúrása és törlése az eltolási irány szabályozásával
  • Sorok vagy oszlopok csoportosítása és szétválasztása vázlat/összecsukás nézetekhez
  • Sormagasság és oszlopszélesség automatikus igazítása a cellatartalomhoz
  • Beépített névvel ellátott cellastílusok alkalmazása (ApplyBuiltinStyle)
  • Többterületes kijelölések (TXLSWorksheet.SelectAreas)
  • ForEachCell iterációs visszahívás kötegelt cellaközpontú feldolgozáshoz

Munkalap-funkciók

A munkalap szintű vezérlés a következőket foglalja magában:
  • Lapnév, lapfülszín, láthatóság (rejtett / nagyon rejtett) és indexalapú navigáció
  • Lapvédelem jogosultságonkénti részletességgel; munkafüzet szintű védelem
  • Rögzített ablaktáblák, osztott ablaktáblák és görgetési pozíció
  • AutoSzűrő-tartományok feltételekkel; listaalapú adatérvényesítési szabályok
  • Feltételes formázás: színskálák (2 és 3 szín), adatsávok és ikonkészletek
  • Szöveg keresése és cseréje egy munkalapon belül
  • Nézeti beállítások: rácsvonal színe, képlet megjelenítési mód, nullák megjelenítése, fejlécek megjelenítése, jobbról balra irány, vázlatjelek megjelenítése és nagyítási szint
  • Strukturált táblázatok (TXLSTable / TXLSXTable): Excel-táblázatok hozzáadása, elérése és formázása fejlécsorokkal és sávos sorokkal
  • Diagramok: diagramlapok és beágyazott diagramok hozzáadása a TXLSWorksheetsAddChartSheet és a TXLSXChart segítségével

Hiperhivatkozások és elnevezett tartományok

Hiperhivatkozások hozzáadása és olvasása (URL, mailto és munkafüzeten belüli cellahivatkozások) az IXLSHyperLinks segítségével. Elnevezett tartományok definiálása és feloldása munkafüzet és munkalap szinten az IXLSNames / TXLSXDefinedNames segítségével. Az elnevezett tartományok használhatók képletekben, és visszafejthetők cellás tartományra a RefersToRange segítségével

Képek és alakzatok

Raszteres képek (BMP, JPG, PNG, GIF) beágyazása munkalapokba a TXLSShapes.AddPicture / TXLSXWorksheet.AddImage segítségével. Önálló szövegdobozok létrehozása klasszikus XLS-ben a TXLSShapes.AddTextBox segítségével. Az Excel által létrehozott OfficeArt összekötő és megoldói szabályok megőrzése BIFF8-rajzokban, valamint a nyers alakzat FOPT beállítások közzététele a TXLSShape.OfficeArtOptions segítségével haladó rajzolási munkafolyamatokhoz

Oldalbeállítás és nyomtatás

Teljes hozzáférés a nyomtatási elrendezéshez az IXLSPageSetup segítségével:
  • Papírméret (A4, Letter, Legal és sok más; lásd PaperSize)
  • Tájolás (álló / fekvő), margók, vízszintes / függőleges középre igazítás
  • Fejléc és lábléc szövegek Excel-formázási kódokkal (félkövér, dőlt, oldalszám, dátum stb.; lásd Fejléc/lábléc formázási kódok)
  • Kézi vízszintes és függőleges oldaltörések
  • Laphoz igazított méretezés; nagyítási arány; nyomtatási terület; nyomtatási cím (ismétlő sorok / oszlopok)
  • Piszkozat minőség; fekete-fehér; rácsvonalak nyomtatása; fejlécek nyomtatása; megjegyzések nyomtatása

Exportálási formátumok

Teljes munkafüzetek, egyes munkalapok vagy tetszőleges cellatartományok exportálása a következő formátumokba:
  • HTML — teljes dokumentum vagy beágyazott táblázatrészlet előnézethez vagy e-mailes munkafolyamatokhoz; vezérelhető a TXLSHTMLExport és a TXLSXHtmlExportOptions segítségével
  • RTF — rich text szövegszerkesztőbe importáláshoz
  • CSV — vesszővel elválasztott értékek konfigurálható elválasztójellel és kódolással
  • TSV — tabulátorral elválasztott értékek
  • ODS — OpenDocument Spreadsheet az lxHandleX felületen keresztül

Adatbázis- és rácsexportálás

Bármely TDataSet-kompatibilis adatkészlet vagy TDBGrid közvetlen exportálása Excelbe, HTML-be vagy RTF-be a TDataToXLS vagy a TGridToXLS komponensek segítségével Mindkét komponens AfterCell, AfterRow, AfterTitle és AfterGroup eseményeket indít a részletes kimeneti vezérléshez, és támogatja a többszintű csoportosítási mezőket

VBA-projekt megőrzése

A HotXLS megőrzi a VBA-projekt adatcsomagjait makrókat tartalmazó munkafüzetek körbeutazásakor. A csak olvasható modulvizsgálat elérhető a TXLSVBAProject és a TXLSVBAModule segítségével Az IXLSWorkbook.HasVBAProject hívásával megállapítható, hogy van-e adatcsomag, a LoadVBAProjectFromFile / SaveVBAProjectToFile pedig lehetővé teszi annak átvitelét a fájlok között

Unicode és nemzetközi szöveg

Az összes szövegkezelés natív Unicode alapú. A HotXLS bármely nyelven szerzett Excel fájlokat olvas és ír, beleértve a CJK, arab, héber, thai és egyéb írásrendszereket, helyes kétirányú szöveg és olvasási irány támogatásával
Unicode karaktertámogatási példa

Kimutatástáblák (klasszikus XLS)

Kimutatástáblák létrehozása forrástartományból a TXLSWorksheet.AddPivotTable segítségével, mezőelhelyezés és adatmező-számformátumok konfigurálása, valamint a kimutatásmodell vizsgálata a TXLSWorksheet.PivotTables segítségével A mező- és szűrőrészletekért lásd a Klasszikus XLS kimutatástábla API oldalt

Előnyök

No Office dependency Az XLS és XLSX fájlokat közvetlenül bináris szinten olvassa és írja. A Microsoft Excel vagy Office nem szükséges telepítve, licencelve vagy futó állapotban. Ezzel megszűnik a COM/OLE automatizálási többletterhelés, elkerülhetők az Office interop által kiszabott szálkezelési korlátozások, és a HotXLS használható szerver oldali és szolgáltatáskörnyezetekben, ahol asztali Office-telepítés nem kivitelezhető
High performance A BIFF8 és OOXML elemzők natív Object Pascal nyelven íródtak, a gyors útvonalon nincs köztes XML DOM-foglalás Több százezer sorból álló nagy munkafüzetek kis csúcsmemóriával olvashatók és írhatók. A megosztott karakterlánc-deduplikáció és a megosztott képlettömörítés automatikusan alkalmazásra kerül a fájlméretek csökkentése érdekében
OLE migration path A klasszikus felület API felülete (munkafüzet, munkalap, tartomány, betűtípus, szegélyek, belső kitöltés, oldalbeállítás) szorosan tükrözi az OLE Automationből ismert Excel objektummodellt. Ez megkönnyíti a meglévő OLE-alapú projektek migrálását: cserélje le a COM-hívásokat HotXLS-hívásokra, távolítsa el az Office-függőséget, és nyerjen natív teljesítményt
Dual-facade design Az örökölt XLS-kód változatlanul fordítódik és fut az lxHandle segítségével, míg az új XLSX-kód a gazdagabb lxHandleX felületet használja. Egy fájlformátum egyszerre biztonságos és fokozatos migrálása
Formula engine included A beépített többmenetes számítási motor kezeli a leggyakoribb munkalapfüggvényeket anélkül, hogy az Excelnek megnyitáskor újra kellene számítani. Az egyéni függvényeket az OnUserFunction visszahívás kezeli
Easy to use A beépülő Delphi komponensek (TDataToXLS, TGridToXLS) nem igényelnek kódot a szokásos exportálási feladatokhoz. A folyékony tartomány API támogatja az A1 jelölést, az R1C1 jelölést és a nulla alapú sor/oszlop indexelést
Thread-safe file I/O Mivel nincs megosztott Office folyamat, több TXLSXWorkbook példány hozható létre és menthető párhuzamosan, egymástól független szálakon szinkronizáció nélkül, így a HotXLS alkalmas többszálas jelentésgeneráló szerverekhez

Kompatibilitás

A HotXLS kompatibilis a következő RAD Studio verziókkal:
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 bites és 64 bites
Excel file formats XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2)
Export-only formats HTML, RTF, CSV, TSV

Lásd még