Übersicht
![]() |
HotXLS Excel Read/Write Library ist eine Hochleistungs-Excel-Lese-Schreib-Komponente für Delphi & C++Builder
Sie kann neue Excel-Tabellen erstellen und bestehende XLS- und XLSX-Arbeitsmappen lesen oder ändern, ohne dass Microsoft Excel oder Office auf dem Rechner installiert sein muss
HotXLS ist vollständig in Object Pascal geschrieben. Es liest und schreibt Excel-Dateien direkt
auf der Binär- und OOXML-Ebene, sodass kein COM/OLE-Automatisierungs-Overhead entsteht und keine Abhängigkeit davon besteht, dass Office lizenziert oder vorhanden ist. HotXLS unterstützt Delphi und C++Builder XE5 bis 13 Florence
Klassische XLS-Farbformatierung bleibt absichtlich palettenbasiert. Siehe Klassisches XLS-Farbmodell
für die Entscheidung zu ThemeColor / TintAndShade
|
Dual-Facade-Architektur
HotXLS bietet zwei nebeneinander existierende Facade-Units, sodass alter XLS-Code und neuer XLSX-Code ohne Refactoring nebeneinander bestehen können:
lxHandle |
Haupt-Facade für das Excel 97–2003 BIFF8-Format (.xls) sowie HTML-, RTF-, CSV- und TSV-Export. Alle bestehenden Benutzercodes verwenden diese Unit weiterhin unverändert. Einstiegspunkte:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Haupt-Facade für das Excel 2007+ OOXML-Format (.xlsx) und OpenDocument Spreadsheet (.ods) Lesen/Schreiben. Bietet eigene Workbook- und Worksheet-Typen, sodass XLSX-spezifisches Verhalten nicht auf den BIFF-Codepfad nachgerüstet wird. Einstiegspunkte:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Beide Facades teilen sich dieselbe Formel-Engine, dieselbe Unicode-Unterstützungsschicht und dieselbe Export-Pipeline
Siehe XLSX-Facade-Übersicht für die vollständige Klassenhierarchie, die von
lxHandleX bereitgestellt wird
Schnellstart
Die folgenden Snippets zeigen den minimalen Code zum Erstellen einer Arbeitsmappe mit einem Arbeitsblatt und zum Schreiben eines Wertes in eine Zelle.
Klassisches XLS (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// Arbeitsblatt hinzufügen und ihm einen Namen geben
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Werte mit A1-Notation in Zellen schreiben
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Grundlegende Formatierung anwenden
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');
// Einen String und einen numerischen Wert schreiben
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;
// Ein Währungs-Zahlenformat anwenden
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
Für einen umfassenderen Durchgang, der beide Facades in einem einzigen Demo-Projekt behandelt, siehe das
API Tour Demo
Funktionen
Datei-E/A und Stream-Unterstützung
Lesen Sie vorhandene Excel-Dateien, schreiben Sie neue oder vorhandene Excel-Dateien, verarbeiten Sie klassischen XLS-Passwortschutz und XLSX-verschlüsselt-speichern-Workflows und listen Sie schnell Blattnamen aus XLS- und XLSX-Dateien oder -Streams auf, ohne die gesamte Arbeitsmappe zu laden. Das Öffnen einer CSV als Arbeitsmappe wird über
IXLSWorkbook.OpenCSV unterstützt
Zellenwerte und Formeln
Lesen und schreiben Sie Zellenwerte aller nativen Excel-Typen: Zahl, Zeichenfolge, Datum/Uhrzeit, Boolean und Formel. Die integrierte Berechnungs-Engine wertet Formeln sowohl in klassischen XLS- als auch in XLSX-Arbeitsmappen aus und unterstützt:
- Textfunktionen (
LEFT,MID,TRIM,SUBSTITUTE, …) - Datums- und Arbeitstagsfunktionen (
DATE,NETWORKDAYS,WORKDAY, …) - Konstruktions- und Basisumwandlungsfunktionen (
BIN2DEC,HEX2DEC, …) - Bitweise Funktionen (
BITAND,BITOR,BITXOR, …) - Statistik- und Aggregatfunktionen (
AVERAGE,SUMIF,COUNTIFS, …) - Mathematische Funktionen (
ROUND,MOD,POWER, …)
Ein
OnUserFunction-Callback ermöglicht es Ihnen, benutzerdefinierte oder nicht unterstützte Tabellenfunktionen zur Laufzeit zu behandeln. Siehe OnUserFunction-Callback für die Signatur und Beispiele

Zellenformatierung
Voller Zugriff auf Attribute zur Zellendarstellung:
- Schriftarten — Name, Größe, Farbe (RGB oder Theme-Farbe + Tint), fett, kursiv, unterstrichen, durchgestrichen, hochgestellt, tiefgestellt, Schatten und Umriss
- Ausrichtung — horizontale und vertikale Ausrichtung, Textausrichtung (Winkel), Einzugsstufe, Textumbruch, an Zellgröße anpassen und Leserichtung (RTL/LTR)
- Rahmen — alle vier Kanten und Diagonalen, Linienstil, Stärke und RGB- / Theme-Farbe
- Hintergrund (Füllung) — einfarbige Füllung, Musterfüllungen, Vorder- und Hintergrundfarben, einschließlich Theme-Farbe mit TintAndShade
- Zahlenformate — integrierte und benutzerdefinierte Formatzeichenfolgen für Datum, Uhrzeit, Währung, Prozentsatz und wissenschaftliche Notation
- Kommentare / Anmerkungen — Zellenkommentare hinzufügen, lesen und formatieren
Bereichsoperationen
IXLSRange (klassische Facade) und TXLSXRange (XLSX-Facade) bieten einen umfangreichen Satz an Bereichsoperationen:
- Zellen verbinden und trennen; Zugriff auf den verbundenen Bereich einer beliebigen Zelle
- Kopieren, Verschieben, Einfügen und Löschen von Bereichen, mit Steuerung der Verschiebungsrichtung
- Gruppieren und Gruppierung aufheben von Zeilen oder Spalten für Gliederungs-/Reduzierungsansichten
- Automatische Anpassung (AutoFit) von Zeilenhöhe und Spaltenbreite an den Zelleninhalt
- Integrierte benannte Zellenstile anwenden (
ApplyBuiltinStyle) - Auswahl mehrerer Bereiche (
TXLSWorksheet.SelectAreas) - ForEachCell-Iterations-Callback für Stapelverarbeitung von Zellen
Arbeitsblatt-Funktionen
Kontrolle auf Arbeitsblatt-Ebene umfasst:
- Blattname, Registerkartenfarbe, Sichtbarkeit (ausgeblendet / sehr ausgeblendet) und indexbasierte Navigation
- Blattschutz mit feinkörnigen Berechtigungen; Schutz auf Arbeitsmappen-Ebene
- Fenster fixieren, Fenster teilen und Scroll-Position
- AutoFilter-Bereiche mit Kriterien; Datenüberprüfungsregeln für Listen
- Bedingte Formatierung: Farbskalen (2 und 3 Farben), Datenbalken und Symbolsätze
- Text suchen und Text ersetzen über ein Arbeitsblatt hinweg
- Ansichtsoptionen: Gitternetzlinienfarbe, Formelansichtsmodus, Nullwerte anzeigen, Überschriften anzeigen, Rechts-nach-links anzeigen, Gliederungssymbole anzeigen und Zoomstufe
- Strukturierte Tabellen (
TXLSTable/TXLSXTable): Hinzufügen, Zugreifen und Formatieren von Excel-Tabellen mit Kopfzeilen und verbundenen Zeilen - Diagramme: Diagrammblätter und eingebettete Diagramme über
TXLSWorksheetsAddChartSheetundTXLSXCharthinzufügen
Hyperlinks und benannte Bereiche
Hyperlinks (URL, mailto und zellenbezogene In-Workbook-Referenzen) über
IXLSHyperLinks hinzufügen und lesen. Benannte Bereiche auf Arbeitsmappen- und Arbeitsblatt-Ebene über IXLSNames / TXLSXDefinedNames definieren und auflösen. Benannte Bereiche können in Formeln verwendet und über RefersToRange auf einen Zellenbereich zurückgeführt werden
Bilder und Formen
Rasterbilder (BMP, JPG, PNG, GIF) über
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage in Arbeitsblätter einbetten. Eigenständige Textfelder im klassischen XLS über TXLSShapes.AddTextBox erstellen. Von Excel erstellte OfficeArt-Verbinder und Solver-Regeln in BIFF8-Zeichnungen beibehalten und rohe Shape-FOPT-Optionen über TXLSShape.OfficeArtOptions für Experten-Zeichnungsworkflows freilegen
Seite einrichten und Drucken
Voller Zugriff auf das Drucklayout über
IXLSPageSetup:
- Papierformat (A4, Letter, Legal und viele andere; siehe PaperSize)
- Ausrichtung (Hochformat / Querformat), Ränder, horizontal / vertikal zentrieren
- Kopf- und Fußzeilen-Strings mit Excel-Formatierungscodes (fett, kursiv, Seitenzahl, Datum usw.; siehe Kopf-/Fußzeilen-Formatierungscodes)
- Manuelle horizontale und vertikale Seitenumbrüche
- Skalierung auf Seiten anpassen; Zoom-Prozentsatz; Druckbereich; Drucktitel (Zeilen / Spalten wiederholen)
- Entwurfsqualität; Schwarzweiß; Gitternetzlinien drucken; Überschriften drucken; Notizen drucken
Exportformate
Exportieren Sie ganze Arbeitsmappen, einzelne Arbeitsblätter oder beliebige Zellenbereiche nach:
- HTML — vollständiges Dokument oder ein Inline-Tabellenfragment für Vorschau oder E-Mail-Workflows; steuerbar über
TXLSHTMLExportundTXLSXHtmlExportOptions - RTF — Rich Text für den Import in Textverarbeitungsprogramme
- CSV — durch Kommas getrennte Werte mit konfigurierbarem Trennzeichen und Kodierung
- TSV — durch Tabulatoren getrennte Werte
- ODS — OpenDocument Spreadsheet über die
lxHandleX-Facade
Datenbank- und Grid-Export
Exportieren Sie jeden TDataSet-kompatiblen Datensatz oder ein TDBGrid direkt in Excel, HTML oder RTF, indem Sie die Komponenten
TDataToXLS oder TGridToXLS verwenden. Beide Komponenten lösen AfterCell-, AfterRow-, AfterTitle- und AfterGroup-Ereignisse zur feinkörnigen Ausgabesteuerung aus und unterstützen mehrstufige Gruppierungsfelder
VBA-Projekt-Erhaltung
HotXLS behält VBA-Projekt-Payloads bei der Weitergabe von makrofähigen Arbeitsmappen bei. Schreibgeschützte Modul-Inspektion ist über
TXLSVBAProject und TXLSVBAModule verfügbar. Rufen Sie IXLSWorkbook.HasVBAProject auf, um einen Payload zu erkennen, und LoadVBAProjectFromFile / SaveVBAProjectToFile, um ihn zwischen Dateien zu übertragen
Unicode und internationaler Text
Die gesamte Zeichenfolgenverarbeitung erfolgt Unicode-nativ. HotXLS liest und schreibt Excel-Dateien, die in einer beliebigen Sprache erstellt wurden, einschließlich CJK, Arabisch, Hebräisch, Thai und anderen Skripten, mit korrekter Unterstützung für bidirektionalen Text und Leserichtung

Pivot-Tabellen (Klassisches XLS)
Erstellen Sie Pivot-Tabellen aus einem Quellbereich mit
TXLSWorksheet.AddPivotTable, konfigurieren Sie die Feldplatzierung und Zahlenformate für Datenfelder und prüfen Sie das Pivot-Modell über TXLSWorksheet.PivotTables. Siehe Klassische XLS-Pivot-Tabellen-API für Feld- und Filterdetails
Vorteile
| No Office dependency | Liest und schreibt XLS- und XLSX-Dateien direkt auf Binärebene. Microsoft Excel oder Office muss weder installiert noch lizenziert oder ausgeführt werden. Dies beseitigt den COM/OLE-Automatisierungs-Overhead, vermeidet Threading-Beschränkungen, die durch Office-Interop auferlegt werden, und ermöglicht den Einsatz von HotXLS in serverseitigen und Service-Kontexten, in denen eine Desktop-Office-Installation unpraktisch ist |
| High performance | Die BIFF8- und OOXML-Parser sind in nativem Object Pascal ohne Zwischen-XML-DOM-Zuweisung für den Hot Path geschrieben. Große Arbeitsmappen mit Hunderttausenden von Zeilen können mit geringem Spitzenarbeitsspeicher gelesen und geschrieben werden. Gemeinsame String-Deduplizierung und Komprimierung gemeinsamer Formeln werden automatisch angewendet, um die Dateigröße klein zu halten |
| OLE migration path | Die API-Oberfläche der klassischen Facade (Workbook, Worksheet, Range, Font, Borders, Interior, Page Setup) spiegelt eng das von OLE-Automatisierung vertraute Excel-Objektmodell wider. Dies macht die Migration bestehender OLE-basierter Projekte unkompliziert: Ersetzen Sie die COM-Aufrufe durch HotXLS-Aufrufe, entfernen Sie die Office-Abhängigkeit und gewinnen Sie native Leistung |
| Dual-facade design |
Alter XLS-Code wird weiterhin unverändert gegen lxHandle kompiliert und ausgeführt, während neuer XLSX-Code die reichhaltigere lxHandleX-Facade verwendet. Die Migration eines Dateiformats nach dem anderen ist sicher und schrittweise
|
| Formula engine included |
Eine integrierte Multi-Pass-Berechnungs-Engine verarbeitet die gängigsten Tabellenfunktionen, ohne dass Excel beim Öffnen neu berechnen muss. Benutzerdefinierte Funktionen werden über den OnUserFunction-Callback behandelt
|
| Easy to use |
Drop-in-Delphi-Komponenten (TDataToXLS, TGridToXLS) erfordern keinen Code für häufige Exportaufgaben. Die flüssige Range-API unterstützt A1-Notation, R1C1-Notation und nullbasierte Zeilen-/Spaltenindizierung
|
| Thread-safe file I/O |
Da es keinen gemeinsam genutzten Office-Prozess gibt, können mehrere TXLSXWorkbook-Instanzen gleichzeitig in unabhängigen Threads ohne Synchronisation erstellt und gespeichert werden, was HotXLS für Server zur Multithread-Berichterstellung geeignet macht
|
Kompatibilität
HotXLS ist mit den folgenden RAD Studio-Versionen kompatibel:
| 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 und 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 |
Siehe auch
- XLSX-Facade-Übersicht (lxHandleX) — vollständige Klassenhierarchie und XLSX/ODS-spezifische API-Mitglieder
- API Tour Demo — erstes Demo zum Ausführen, wenn man HotXLS von Grund auf lernt
- IXLSWorkbook — Referenz der klassischen XLS-Workbook-Schnittstelle
- TXLSWorksheet — Referenz der klassischen XLS-Worksheet-Klasse
- IXLSRange — Range-Schnittstelle: Zellenzugriff, Formatierung und Operationen
- TXLSXWorkbook — Referenz der XLSX-Workbook-Klasse
- TXLSXWorksheet — Referenz der XLSX-Worksheet-Klasse
- TGridToXLS — Drop-in DBGrid-zu-Excel-Exportkomponente
- TDataToXLS — Drop-in Dataset-zu-Excel-Exportkomponente
- OnUserFunction-Callback — benutzerdefinierter Erweiterungspunkt für Tabellenfunktionen
- Klassisches XLS-Farbmodell — Begründung des palettenbasierten Farb- und Designfarbmodells
- Klassische XLS zusätzliche API-Mitglieder — Berechnungseigenschaften, Dokumenteigenschaften, Pivot-Tabellen und mehr
- Beispiele — Übersicht über Beispielprojekte
- Beispiel Bestellung — Beispiel für voll funktionsfähige XLS-Erstellung mit Quellcode
