HotXLS-dokumentation

Översikt

HotXLS Logo
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
Formula evaluation example

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

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 TXLSHTMLExport och TXLSXHtmlExportOptions
  • 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
Unicode character support example

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