Översikt
![]() |
HotXLS Excel Read/Write Library är en högpresterande Excel-läs- och skrivkomponent för Delphi & C++Builder
Den kan skapa nya Excel-kalkylblad och läsa eller ändra befintliga XLS- och XLSX-arbetsböcker utan att
Microsoft Excel eller Office behöver vara installerat på datorn
HotXLS är skrivet helt i Object Pascal. Det läser och skriver Excel-filer direkt
på binär- och OOXML-nivå, så det finns ingen COM/OLE-automationsoverhead och inget beroende av att Office
är licensierat eller närvarande. HotXLS stöder Delphi och C++Builder XE5 till och med 13 Florence
Klassisk XLS-färgformatering är medvetet palettbaserad. Se Klassisk XLS-färgmodell
för beslutet om ThemeColor / TintAndShade
|
Dubbel-facadarkitektur
HotXLS exponerar två samexisterande facadenheter så att äldre XLS-kod och ny XLSX-kod kan leva sida vid sida
utan någon refaktorering:
lxHandle |
Primär fasad för Excel 97–2003 BIFF8-formatet (.xls), plus export till HTML, RTF, CSV och TSV.
All befintlig användarkod fortsätter att använda den här enheten oförändrad. Ingångspunkter:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Primär fasad för Excel 2007+ OOXML-formatet (.xlsx) samt läs- och skrivstöd för OpenDocument Spreadsheet
(.ods). Den tillhandahåller egna arbetsboks- och kalkylbladstyper så att XLSX-specifikt beteende inte
stoppas in i BIFF-kodvägen. Ingångspunkter:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Båda fasaderna delar samma formelmotor, samma Unicode-stödskikt och samma exportpipeline
Se XLSX-fasadöversikt för den fullständiga klasshierarkin som exponeras av
lxHandleX.
Snabbstart
Följande utdrag visar den minimala kod som krävs för att skapa en arbetsbok med ett kalkylblad och
skriva ett värde till en cell.
Klassisk 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;
För en bredare genomgång som täcker båda fasaderna i ett enda demoprojekt, se
API Tour-demon
Funktioner
Fil-I/O och strömstöd
Läs befintliga Excel-filer, skriv nya eller befintliga Excel-filer, hantera klassisk XLS-lösenordsskydd och
XLSX-krypterade sparaflöden, samt lista bladnamn från XLS- och XLSX-filer eller strömmar snabbt utan att
läsa in hela arbetsboken. Att öppna en CSV som arbetsbok stöds genom
IXLSWorkbook.OpenCSV.
Cellvärden och formler
Läs och skriv cellvärden av alla inbyggda Excel-typer: tal, sträng, datum/tid, boolesk och formel
Den inbyggda beräkningsmotorn utvärderar formler i både klassiska XLS- och XLSX-arbetsböcker och stöder:
- Textfunktioner (
LEFT,MID,TRIM,SUBSTITUTE, …) - Datum- och arbetsdagsfunktioner (
DATE,NETWORKDAYS,WORKDAY, …) - Tekniska- och basomvandlingsfunktioner (
BIN2DEC,HEX2DEC, …) - Bitvisa funktioner (
BITAND,BITOR,BITXOR, …) - Statistiska- och aggregeringsfunktioner (
AVERAGE,SUMIF,COUNTIFS, …) - Matematiska funktioner (
ROUND,MOD,POWER, …)
En
OnUserFunction-callback låter dig hantera egna eller ej stödda kalkylbladsfunktioner vid körning.
Se OnUserFunction-callback för signatur och exempel

Cellformatering
Fullständig åtkomst till cellens utseendeattribut:
- Teckensnitt — namn, storlek, färg (RGB eller temafärg + nyans), fet, kursiv, understruken, genomstruken, upphöjd, nedsänkt, skugga och kontur
- Justering — horisontell och vertikal justering, textorientering (vinkel), indragningsnivå, radbrytning, anpassa till cell och läsordning (RTL/LTR)
- Kanter — alla fyra kanter och diagonaler, linjestil, tjocklek och RGB-/temafärg
- Interiör (fyllning) — enfärgad fyllning, mönsterfyllningar, förgrunds- och bakgrundsfärger inklusive temafärg med TintAndShade
- Talformat — inbyggda och egna formatsträngar för datum, tid, valuta, procent och vetenskaplig notation
- Kommentarer / anteckningar — lägg till, läs och formatera cellkommentarer
Intervalloperationer
IXLSRange (klassisk fasad) och TXLSXRange (XLSX-fasad) erbjuder en rik uppsättning
intervalloperationer:
- Slå samman och dela upp celler; kom åt det sammanslagna området för valfri cell
- Kopiera, flytta, infoga och ta bort intervall, med kontroll över förskjutningsriktning
- Gruppera och avgruppera rader eller kolumner för kontur-/komprimeringsvyer
- Autopassa radhöjd och kolumnbredd efter cellinnehåll
- Tillämpa inbyggda namngivna cellstilar (
ApplyBuiltinStyle) - Markeringar med flera områden (
TXLSWorksheet.SelectAreas) - ForEachCell-iterationscallback för batchbearbetning av celler
Kalkylbladsfunktioner
Kontroll på kalkylbladsnivå omfattar:
- Bladnamn, flikfärg, synlighet (dold / mycket dold) och navigering via index
- Bladskydd med granularitet per behörighet; skydd på arbetsboksnivå
- Frysning av rutor, delade rutor och rullningsposition
- AutoFilter-intervall med villkor; listar regler för datavalidering
- Villkorsformatering: färgskalor (2 och 3 färger), datafält och ikonuppsättningar
- Sök- och ersätt-text i ett kalkylblad
- Vyinställningar: rutnätsfärg, visningsläge för formler, visa nollor, visa rubriker, visa höger-till-vänster, visa kontursymboler och zoomnivå
- Strukturerade tabeller (
TXLSTable/TXLSXTable): lägg till, kom åt och formatera Excel-tabeller med rubrikrader och bandade rader - Diagram: lägg till diagramblad och inbäddade diagram via
TXLSWorksheetsAddChartSheetochTXLSXChart
Hyperlänkar och namngivna intervall
Lägg till och läs hyperlänkar (URL, mailto och referenser till celler i arbetsboken) genom
IXLSHyperLinks. Definiera och lös upp namngivna intervall på arbetsboks- och kalkylbladsnivå genom
IXLSNames / TXLSXDefinedNames. Namngivna intervall kan användas i formler och
lösas tillbaka till ett cellintervall via RefersToRange.
Bilder och former
Bädda in rasterbilder (BMP, JPG, PNG, GIF) i kalkylblad via
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Skapa fristående textrutor
i klassisk XLS genom TXLSShapes.AddTextBox. Bevara Excel-skapade OfficeArt-kopplingar och
lösarregler i BIFF8-ritningar, samt exponera råa FOPT-alternativ för former genom
TXLSShape.OfficeArtOptions för expertarbetsflöden med ritningar.
Sidinställning och utskrift
Fullständig åtkomst till utskriftslayouten genom
IXLSPageSetup:
- Pappersstorlek (A4, Letter, Legal och många andra; se Pappersstorlek)
- Orientering (stående / liggande), marginaler, centrera horisontellt / vertikalt
- Sidhuvud- och sidfotssträngar med Excel-formateringskoder (fet, kursiv, sidnummer, datum osv.; se Sidhuvuds-/sidfotsformateringskoder)
- Manuella horisontella och vertikala sidbrytningar
- Skalning för att passa sidor; zoomprocent; utskriftsområde; upprepade rubriker (rader / kolumner)
- Utkastkvalitet; svartvitt; skriv ut rutnät; skriv ut rubriker; skriv ut kommentarer
Exportformat
Exportera hela arbetsböcker, enskilda kalkylblad eller godtyckliga cellintervall till:
- HTML — fullständigt dokument eller en infogad tabellfragment för förhandsgranskning eller e-postflöden;
kontrollerbart via
TXLSHTMLExportochTXLSXHtmlExportOptions - RTF — rik text för import i ordbehandlare
- CSV — kommaseparerade värden med konfigurerbart avgränsningstecken och teckenkodning
- TSV — tabbseparerade värden
- ODS — OpenDocument Spreadsheet via
lxHandleX-fasaden
Databas- och rutnätsexport
Exportera valfri TDataSet-kompatibel datamängd eller en TDBGrid direkt till Excel, HTML eller RTF med
TDataToXLS- eller
TGridToXLS-komponenten.
Båda komponenterna utlöser AfterCell, AfterRow, AfterTitle- och
AfterGroup-händelser för finkornig utdatakontroll och stöder flernivågruppering av fält.
Bevarande av VBA-projekt
HotXLS bevarar VBA-projektets innehåll när makroaktiverade arbetsböcker skickas runt. Skrivskyddad inspektion av moduler
finns genom
TXLSVBAProject och TXLSVBAModule.
Anropa IXLSWorkbook.HasVBAProject för att upptäcka ett innehåll och
LoadVBAProjectFromFile / SaveVBAProjectToFile för att överföra det mellan filer.
Unicode och internationell text
All stränghantering är Unicode-inbyggd. HotXLS läser och skriver Excel-filer skapade på valfritt språk,
inklusive CJK, arabiska, hebreiska, thailändska och andra skriftsystem, med korrekt stöd för dubbelriktad text
och läsordning

Pivottabeller (klassisk XLS)
Skapa pivottabeller från ett källintervall med
TXLSWorksheet.AddPivotTable, konfigurera fältplacering och talformat för datafält, samt
inspektera pivotmodellen genom TXLSWorksheet.PivotTables.
Se Klassiskt XLS-pivottabell-API för information om fält och filter
Fördelar
| No Office dependency | Läser och skriver XLS- och XLSX-filer direkt på binärnivå. Microsoft Excel eller Office behöver inte vara installerat, licensierat eller igång. Detta eliminerar COM/OLE-automationsoverhead, undviker trådningsrestriktioner som Office-interop innebär och gör att HotXLS kan användas i server- och tjänstkontexter där en skrivbordsinstallation av Office är opraktisk |
| High performance | BIFF8- och OOXML-tolkarna är skrivna i inbyggt Object Pascal utan mellanliggande XML-DOM-allokering på den kritiska sökvägen. Stora arbetsböcker med hundratusentals rader kan läsas och skrivas med lågt minnestoppmått. Deduplicering av delade strängar och komprimering av delade formler tillämpas automatiskt för att hålla filstorlekarna små |
| OLE migration path | API-ytan i den klassiska fasaden (arbetsbok, kalkylblad, intervall, teckensnitt, kanter, interiör, sidinställning) speglar nära Excel-objektmodellen från OLE Automation. Detta gör migreringen av befintliga OLE-baserade projekt enkel: ersätt COM-anropen med HotXLS-anrop, ta bort Office-beroendet och få inbyggd prestanda |
| Dual-facade design |
Äldre XLS-kod fortsätter att kompilera och köra oförändrad mot lxHandle medan ny XLSX-kod
använder den rikare lxHandleX-fasaden. Att migrera ett filformat i taget är säkert och
stegvis
|
| Formula engine included |
En inbyggd beräkningsmotor med flera pass hanterar de vanligaste kalkylbladsfunktionerna utan att
Excel behöver räkna om vid öppning. Egna funktioner hanteras genom OnUserFunction-callbacken.
|
| Easy to use |
Färdiga Delphi-komponenter (TDataToXLS, TGridToXLS) kräver ingen kod för
vanliga exportuppgifter. Det smidiga intervall-API:et stöder A1-notation, R1C1-notation och nollbaserad
rad-/kolumnindexering
|
| Thread-safe file I/O |
Eftersom det inte finns någon delad Office-process kan flera TXLSXWorkbook-instanser skapas
och sparas samtidigt på oberoende trådar utan synkronisering, vilket gör HotXLS
lämpligt för trådbaserade rapportgenereringsservrar
|
Kompatibilitet
HotXLS är kompatibelt med följande RAD Studio-versioner:
| 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-bitars och 64-bitars |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
Se även
- XLSX-fasadöversikt (lxHandleX) — fullständig klasshierarki och XLSX/ODS-specifika API-medlemmar
- API Tour-demo — första demon att köra när du lär dig HotXLS från grunden
- IXLSWorkbook — referens för det klassiska XLS-gränssnittet för arbetsboken
- TXLSWorksheet — referens för den klassiska XLS-klassen för kalkylbladet
- IXLSRange — gränssnittsintervall: cellåtkomst, formatering och operationer
- TXLSXWorkbook — referens för XLSX-klassen för arbetsboken
- TXLSXWorksheet — referens för XLSX-klassen för kalkylbladet
- TGridToXLS — exportkomponent för DBGrid till Excel
- TDataToXLS — exportkomponent för datamängd till Excel
- OnUserFunction-callback — utbyggnadspunkt för egna kalkylbladsfunktioner
- Klassisk XLS-färgmodell — motiv bakom palettbaserad färg- och temafärgsdesign
- Ytterligare klassiska XLS-API-medlemmar — beräkningsegenskaper, dokumentegenskaper, pivottabeller med mera
- Exempel — översikt över exempelprojekt
- Inköpsorderexempel — fullfjädrat XLS-skapandeexempel med källkod
