Översikt
![]() |
HotXLS Excel Read/Write Library är ett högpresterande Excel-läs-skrivkomponent för Delphi & C++Builder
Det 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 helt skrivet i Object Pascal. Det läser och skriver Excel-filer direkt
på binär- och OOXML-nivå, så det finns inget COM/OLE-automationsoverhead och inget beroende av att Office
är licensierat eller installerat. HotXLS stöder Delphi och C++Builder XE5 till och med 13 Florence
Klassisk XLS-färgformatering är avsiktligt palettsbaserad. Se Klassisk XLS-färgmodell
för beslut om ThemeColor / TintAndShade
|
Dubbel-fasadarkitektur
HotXLS exponerar två samexisterande fasadenheter så att äldre XLS-kod och ny XLSX-kod kan samsas
utan någon omstrukturering:
lxHandle |
Primär fasad för Excel 97–2003 BIFF8-formatet (.xls), plus HTML-, RTF-, CSV- och TSV-
export. All befintlig användarkod fortsätter att använda denna enhet oförändrad. Ingångspunkter:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Primär fasad för Excel 2007+ OOXML-formatet (.xlsx) och OpenDocument Spreadsheet
(.ods) läsning/skrivning. Tillhandahåller egna arbetsbok- och kalkylbladstyper så att XLSX-specifikt beteende inte
läggs till i BIFF-kodsökvägen. Ingångspunkter:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Båda fasaderna delar samma formelmotor, samma Unicode-stödlager och samma exportpipeline
Se XLSX-fasadöversikt för den fullständiga klasshierarkin som exponeras av
lxHandleX
Snabbstart
Följande kodsnuttar visar den minimala koden 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;
// Lägg till ett kalkylblad och ge det ett namn
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Skriv värden till celler med A1-notation
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Tillämpa grundläggande formatering
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');
// Skriv en sträng och ett numeriskt värde
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;
// Tillämpa ett valutatalformat
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 Demo
Funktioner
Fil-I/O och strömstöd
Läs befintliga Excel-filer, skriv nya eller befintliga Excel-filer, hantera klassiskt XLS-lösenordsskydd och
XLSX-krypterade sparningsarbetsflöden, och lista snabbt arknamn från XLS- och XLSX-filer eller strömmar utan
att läsa in hela arbetsboken. Att öppna en CSV som en 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, boolean 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 funktioner och baskonverteringsfunktioner (
BIN2DEC,HEX2DEC, …) - Bitvisafunktioner (
BITAND,BITOR,BITXOR, …) - Statistiska och aggregerade funktioner (
AVERAGE,SUMIF,COUNTIFS, …) - Matematikfunktioner (
ROUND,MOD,POWER, …)
En
OnUserFunction-återanrop låter dig hantera anpassade eller stödda kalkylbladsfunktioner vid körning
Se OnUserFunction-återanrop för signaturen och exempel

Cellformatering
Full åtkomst till cellutseendeattribut:
- Teckensnitt — namn, storlek, färg (RGB eller temafärg + nyans), fet, kursiv, understrykning, genomstrykning, upphöjt, nedsänkt, skugga och kontur
- Justering — horisontell och vertikal justering, textorientering (vinkel), indragsnivå, radbrytning, krymp-till-passning och läsordning (RTL/LTR)
- Ramar — alla fyra kanter och diagonaler, linjestil, tjocklek och RGB/temafärg
- Bakgrund (fyllning) — solid fyllning, mönsterfyllningar, förgrunds- och bakgrundsfärger inklusive temafärg med TintAndShade
- Talformat — inbyggda och anpassade formatsträngar för datum, tid, valuta, procent och vetenskaplig notation
- Kommentarer / anteckningar — lägg till, läs och formatera cellkommentarer
Områdesperationer
IXLSRange (klassisk fasad) och TXLSXRange (XLSX-fasad) tillhandahåller en rik uppsättning
områdesoperationer:
- Sammanfoga och dela upp celler; åtkomst till sammanfogningsområdet för valfri cell
- Kopiera, flytta, infoga och ta bort områden med skiftriktningsstyrning
- Gruppera och dela upp rader eller kolumner för dispositions-/komprimeringsvy
- AutoFit radhöjd och kolumnbredd efter cellinnehåll
- Tillämpa inbyggda namngivna cellstilar (
ApplyBuiltinStyle) - Flerområdesmarkeringar (
TXLSWorksheet.SelectAreas) - ForEachCell-iterationsåteranrop för batchcellsbearbetning
Kalkylbladsfunktioner
Kontroll på kalkylbladsnivå täcker:
- Arknamn, flikfärg, synlighet (dold / mycket dold) och indexbaserad navigering
- Arkskydd med behörighetsgranularitet per tillstånd; skydd på arbetsboknivå
- Låsfönster, delade rutor och rullningsposition
- AutoFilter-områden med kriterier; listdatavalideringsregler
- Villkorlig formatering: färgskalor (2 och 3 färger), datastaplar och ikonuppsättningar
- Sök text och ersätt text i ett kalkylblad
- Visningsalternativ: rutnätslinjefärg, visningsformelläge, visa nollor, visa rubriker, visa höger-till-vänster, visa dispositionssymboler och zoomnivå
- Strukturerade tabeller (
TXLSTable/TXLSXTable): lägg till, åtkomst och formatera Excel-tabeller med rubrikrader och randade rader - Diagram: lägg till diagramark och inbäddade diagram via
TXLSWorksheetsAddChartSheetochTXLSXChart
Hyperlänkar och namngivna områden
Lägg till och läs hyperlänkar (URL, mailto och cellinterna arbetsbokreferenser) genom
IXLSHyperLinks. Definiera och lös upp namngivna områden på arbetsbok- och kalkylbladsomfång genom
IXLSNames / TXLSXDefinedNames. Namngivna områden kan användas i formler och
lösas tillbaka till ett cellområde 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-anslutnings- och
lösarregler i BIFF8-ritningar och exponera råa form-FOPT-alternativ genom
TXLSShape.OfficeArtOptions för expertritningsarbetsflöden
Sidinställning och utskrift
Full åtkomst till utskriftslayouten genom
IXLSPageSetup:
- Pappersstorlek (A4, Letter, Legal och många andra; se PaperSize)
- Orientering (stående / liggande), marginaler, centrera horisontellt / vertikalt
- Sidhuvud- och sidfotssträngar med Excel-formateringskoder (fet, kursiv, sidnummer, datum, osv.; se Formateringskoder för sidhuvud/sidfot)
- Manuella horisontella och vertikala sidbrytningar
- Anpassa till sidor-skalning; zoomprocent; utskriftsområde; utskriftsrubriker (upprepa rader / kolumner)
- Utkastkvalitet; svartvit; skriv ut rutnätslinjer; skriv ut rubriker; skriv ut anteckningar
Exportformat
Exportera hela arbetsböcker, enskilda kalkylblad eller godtyckliga cellområden till:
- HTML — fullt dokument eller ett infogat tabellfragment för förhandsvisning eller e-postarbetsflöden;
styrbart via
TXLSHTMLExportochTXLSXHtmlExportOptions - RTF — formaterad text för import i ordbehandlingsprogram
- CSV — kommaseparerade värden med konfigurerbart avgränsningstecken och kodning
- TSV — tabbseparerade värden
- ODS — OpenDocument Spreadsheet via
lxHandleX-fasaden
Databas- och rutnätsexport
Exportera valfri TDataSet-kompatibel datamängd eller ett TDBGrid direkt till Excel, HTML eller RTF med hjälp av
TDataToXLS- eller
TGridToXLS-komponenterna
Båda komponenterna utlöser AfterCell-, AfterRow-, AfterTitle- och
AfterGroup-händelser för finkornad utdatakontroll och stöder grupperingsfält på flera nivåer
Bevarande av VBA-projekt
HotXLS bevarar VBA-projektinnehåll vid rundresor av makroaktiverade arbetsböcker. Skrivskyddad modulinspektion
är tillgänglig genom
TXLSVBAProject och TXLSVBAModule
Anropa IXLSWorkbook.HasVBAProject för att identifiera 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å vilket språk som helst,
inklusive CJK, arabiska, hebreiska, thai och andra skriftsystem, med korrekt dubbelriktat text och läsordningsstöd

Pivottabeller (klassisk XLS)
Skapa pivottabeller från ett källområde med
TXLSWorksheet.AddPivotTable, konfigurera fältplacering och datafälts talformat, och
inspektera pivotmodellen genom TXLSWorksheet.PivotTables
Se Klassisk XLS pivottabell-API för fält- och filterdetaljer
Fördelar
| No Office dependency | Läser och skriver XLS- och XLSX-filer direkt på binär nivå. Microsoft Excel eller Office behöver inte vara installerat, licensierat eller igång. Detta eliminerar COM/OLE-automationsoverhead, undviker trådningsbegränsningar som åläggs av Office-interop, och gör att HotXLS kan användas i server- och tjänstesammanhang där en stationär Office-installation är opraktisk |
| High performance | BIFF8- och OOXML-parsarna är skrivna i native Object Pascal utan mellanliggande XML DOM- allokering för den heta sökvägen. Stora arbetsböcker med hundratusentals rader kan läsas och skrivas med låg minnestoppar. Deduplicering av delade strängar och komprimering av delade formler tillämpas automatiskt för att hålla filstorlekarna små |
| OLE migration path | Den klassiska fasad-API-ytan (arbetsbok, kalkylblad, område, teckensnitt, ramar, bakgrund, sidinställning) speglar noga Excel-objektmodellen som är bekant från OLE Automation. Detta gör migrering av befintliga OLE-baserade projekt enkelt: ersätt COM-anropen med HotXLS-anrop, ta bort Office-beroendet och uppnå native 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. Migrering av ett filformat i taget är säkert och
inkrementellt
|
| Formula engine included |
En inbyggd fleromgångsberäkningsmotor hanterar de vanligaste kalkylbladsfunktionerna utan att kräva
att Excel beräknar om vid öppning. Anpassade funktioner hanteras via OnUserFunction-
återanropet
|
| Easy to use |
Plug-in Delphi-komponenter (TDataToXLS, TGridToXLS) kräver ingen kod för
vanliga exportuppgifter. Det flytande områngs-API:et stöder A1-notation, R1C1-notation och nollbaserad
rad/kolumn-indexering
|
| 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
flertrådsrapportgenereringsservrar
|
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 demot att köra när man lär sig HotXLS från grunden
- IXLSWorkbook — klassisk XLS-arbetsbok gränssnittsreferens
- TXLSWorksheet — klassisk XLS-kalkylblad klassreferens
- IXLSRange — områdesgränssnitt: cellåtkomst, formatering och operationer
- TXLSXWorkbook — XLSX-arbetsbok klassreferens
- TXLSXWorksheet — XLSX-kalkylblad klassreferens
- TGridToXLS — plug-in DBGrid-till-Excel exportkomponent
- TDataToXLS — plug-in datamängd-till-Excel exportkomponent
- OnUserFunction-återanrop — anpassad kalkylbladsfunktion utökningspunkt
- Klassisk XLS-färgmodell — palettsbaserad färg och temafärg designmotivering
- Klassiska XLS ytterligare API-medlemmar — beräkningsegenskaper, dokumentegenskaper, pivottabeller och mer
- Exempel — översikt över exempelprojekt
- Inköpsorderprov — komplett XLS-skapandeexempel med källkod
