Áttekintés
![]() |
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

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 aTXLSXChartsegí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 aTXLSXHtmlExportOptionssegí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
lxHandleXfelü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

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
- XLSX felület áttekintése (lxHandleX) — teljes osztályhierarchia és XLSX/ODS-specifikus API tagok
- API Tour demó — az első futtatandó demó a HotXLS tanulásának kezdetén
- IXLSWorkbook — klasszikus XLS munkafüzet interfész referencia
- TXLSWorksheet — klasszikus XLS munkalap osztályreferencia
- IXLSRange — tartomány interfész: cellahozzáférés, formázás és műveletek
- TXLSXWorkbook — XLSX munkafüzet osztályreferencia
- TXLSXWorksheet — XLSX munkalap osztályreferencia
- TGridToXLS — beépülő DBGrid-to-Excel exportáló komponens
- TDataToXLS — beépülő adatkészlet-to-Excel exportáló komponens
- OnUserFunction visszahívás — egyéni munkalapfüggvény kiterjesztési pont
- Klasszikus XLS színmodell — palettaalapú szín és témaszerű szín tervezési indoklás
- Klasszikus XLS kiegészítő API tagok — számítási tulajdonságok, dokumentumtulajdonságok, kimutatástáblák és egyebek
- Példák — mintaprojektek áttekintése
- Megrendelési minta — teljes funkcionalitású XLS-létrehozási példa forráskóddal
