HotXLS Docs

Översikt

HotXLS Logo
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
Exempel på formelutvärdering

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 TXLSWorksheetsAddChartSheet och TXLSXChart

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 TXLSHTMLExport och TXLSXHtmlExportOptions
  • 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
Exempel på Unicode-teckenstö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