HotXLS-dokumentasjon

Oversikt

HotXLS Logo
HotXLS Excel- lese-/skrivebibliotek er en høytytende Excel-lese-/skrivekomponent for Delphi & C++Builder Det kan opprette nye Excel-regneark og lese eller endre eksisterende XLS- og XLSX-arbeidsbøker uten at Microsoft Excel eller Office trenger å være installert på maskinen
HotXLS er skrevet helt i Object Pascal. Det leser og skriver Excel-filer direkte på binærnivå og OOXML-nivå, så det er ingen COM/OLE-automatiseringskostnad og ingen avhengighet av at Office er lisensiert eller til stede. HotXLS støtter Delphi og C++Builder XE5 gjennom 13 Florence
Klassisk XLS-fargeformatering forblir med hensikt palettbasert. Se Klassisk XLS-fargemodell for beslutningen om ThemeColor / TintAndShade

To-fasade-arkitektur

HotXLS eksponerer to sameksisterende fasaddeenheter, slik at eldre XLS-kode og ny XLSX-kode kan leve side om side uten noen refaktorering:
lxHandle Primær fasade for Excel 97–2003 BIFF8-formatet (.xls), pluss HTML-, RTF-, CSV- og TSV- eksport. All eksisterende brukerkode fortsetter å bruke denne enheten uendret. Inngangspunkter: TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
lxHandleX Primær fasade for Excel 2007+-OOXML-formatet (.xlsx) og OpenDocument Spreadsheet (.ods) lese/skrive. Gir egne arbeidsbok- og regnearktyper, slik at XLSX-spesifikk atferd ikke blir tilbakeført til BIFF-kodebanen. Inngangspunkter: TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
Begge fasadene deler den samme formelmotoren, det samme Unicode-støttelaget og den samme eksportpipelinen Se XLSX-fasadeoversikt for hele klassehierarkiet som eksponeres av lxHandleX

Hurtigstart

Følgende utdrag viser den minimale koden for å opprette en arbeidsbok med ett regneark og skrive en verdi til en celle.

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;
For en bredere gjennomgang som dekker begge fasadene i ett enkelt demo-prosjekt, se API Tour-demoen

Funksjoner

Fil-I/U og strømstøtte

Les eksisterende Excel-filer, skriv nye eller eksisterende Excel-filer, håndter klassisk XLS-passordbeskyttelse og XLSX-krypterte-lagre-arbeidsflyter, og list raskt opp arknavn fra XLS- og XLSX-filer eller strømmer uten å laste hele arbeidsboken. Å åpne en CSV som en arbeidsbok støttes gjennom IXLSWorkbook.OpenCSV

Celleverdier og formler

Les og skriv celleverdier av alle native Excel-typer: tall, streng, dato/klokkeslett, boolsk og formel Den innebygde beregningsmotoren evaluerer formler i både klassiske XLS- og XLSX-arbeidsbøker, og støtter:
  • Tekstfunksjoner (LEFT, MID, TRIM, SUBSTITUTE, …)
  • Dato- og arbeidsdagsfunksjoner (DATE, NETWORKDAYS, WORKDAY, …)
  • Teknikk- og basekonverteringsfunksjoner (BIN2DEC, HEX2DEC, …)
  • Bitvise funksjoner (BITAND, BITOR, BITXOR, …)
  • Statistiske og aggregerende funksjoner (AVERAGE, SUMIF, COUNTIFS, …)
  • Matematiske funksjoner (ROUND, MOD, POWER, …)
En OnUserFunction-tilbakeringing lar deg håndtere egendefinerte eller ikke-støttede regnearkfunksjoner ved kjøring Se OnUserFunction-tilbakeringingen for signaturen og eksempler
Formula evaluation example

Celleformatering

Full tilgang til celle-utseendeattributter:
  • Skrifter — navn, størrelse, farge (RGB eller temafarge + fargetone), fet, kursiv, understreking, gjennomstreking, hevet skrift, senket skrift, skygge og kontur
  • Justering — horisontal og vertikal justering, tekstretning (vinkel), innrykk nivå, tekstombryting, krymp-til-tilpass og leseretning (RTL/LTR)
  • Kanter — alle fire kanter og diagonaler, linjestil, vekt og RGB- / temafarge
  • Interiør (fyll) — helfylling, mønsterfyllinger, forgrunns- og bakgrunnsfarger inkludert temafarge med TintAndShade
  • Tallformater — innebygde og egendefinerte formatstrenger for dato, klokkeslett, valuta, prosent og vitenskapelig notasjon
  • Kommentarer / merknader — legg til, les og stil cellkommentarer

Områdeoperasjoner

IXLSRange (klassisk fasade) og TXLSXRange (XLSX-fasade) gir et rikt sett med områdeoperasjoner:
  • Slå sammen og del celler; få tilgang til det sammenslåtte området til en hvilken som helst celle
  • Kopier, flytt, sett inn og slett områder, med kontroll over forskyvningsretning
  • Grupper og opphev gruppering av rader eller kolonner for disposisjons-/sammenleggingsvisninger
  • AutoTilpass radhøyde og kolonnebredde til celleinnhold
  • Bruk innebygde navngitte cellestiler (ApplyBuiltinStyle)
  • Flere-område-valg (TXLSWorksheet.SelectAreas)
  • ForEachCell-iterasjons-tilbakeringing for batch-cellebehandling

Regnearkfunksjoner

Kontroll på regnearknivå dekker:
  • Arknavn, fanefarge, synlighet (skjult / veldig skjult) og indeksbasert navigasjon
  • Arkbeskyttelse med granularitet per tillatelse; beskyttelse på arbeidsboknivå
  • Frys ruter, del ruter og rulleposisjon
  • AutoFilter-områder med kriterier; list datavalideringsregler
  • Betinget formatering: fargeskalaer (2 og 3 farger), datafelt og ikonsett
  • Finn-tekst og erstatt-tekst på tvers av et regneark
  • Visningsalternativer: rutenettlinjefarge, vis formel-modus, vis nuller, vis overskrifter, vis høyre-til-venstre, vis disposisjonssymboler og zoomnivå
  • Strukturerte tabeller (TXLSTable / TXLSXTable): legg til, få tilgang til og stil Excel-tabeller med overskriftsrader og båndete rader
  • Diagrammer: legg til diagramark og innebygde diagrammer via TXLSWorksheetsAddChartSheet og TXLSXChart

Hyperkoblinger og navngitte områder

Legg til og les hyperkoblinger (URL, mailto og cellereferanser i arbeidsboken) gjennom IXLSHyperLinks. Definer og løs navngitte områder på arbeidsbok- og regnearkskala gjennom IXLSNames / TXLSXDefinedNames. Navngitte områder kan brukes i formler og løses tilbake til et celleområde via RefersToRange

Bilder og former

Bygg inn rasterbilder (BMP, JPG, PNG, GIF) i regneark via TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Opprett frittstående tekstbokser i klassisk XLS gjennom TXLSShapes.AddTextBox. Bevar Excel-opprettede OfficeArt-koblinger og løserregler i BIFF8-tegninger, og eksponer rå form-FOPT-alternativer gjennom TXLSShape.OfficeArtOptions for ekspert-tegningsarbeidsflyter

Sideoppsett og utskrift

Full tilgang til utskriftslayoutet gjennom IXLSPageSetup:
  • Papirstørrelse (A4, Letter, Legal og mange andre; se Papirstørrelse)
  • Retning (stående / liggende), marger, sentrer horisontalt / vertikalt
  • Topp- og bunntekststrenger med Excel-formateringskoder (fet, kursiv, sidenummer, dato osv.; se Topp-/bunntekst-formateringskoder)
  • Manuelle horisontale og vertikale sideskift
  • Skalering til sider; zoomprosent; utskriftsområde; utskriftstitler (gjentatte rader / kolonner)
  • Kladdkvalitet; svart-hvitt; skriv ut rutenettlinjer; skriv ut overskrifter; skriv ut merknader

Eksportformater

Eksporter hele arbeidsbøker, individuelle regneark eller vilkårlige celleområder til:
  • HTML — fullstendig dokument eller et inline-tabellfragment for forhåndsvisning eller e-post-arbeidsflyter; kontrollerbart via TXLSHTMLExport og TXLSXHtmlExportOptions
  • RTF — rik tekst for import i tekstbehandlere
  • CSV — kommaseparerte verdier med konfigurerbar skilletegn og koding
  • TSV — tabulatorseparerte verdier
  • ODS — OpenDocument Spreadsheet via lxHandleX-fasadene

Database- og rutenett-eksport

Eksporter et hvilket som helst TDataSet-kompatibelt dataset eller en TDBGrid direkte til Excel, HTML eller RTF ved hjelp av TDataToXLS- eller TGridToXLS-komponentene Begge komponentene utløser AfterCell-, AfterRow-, AfterTitle- og AfterGroup-hendelser for finmasket utdatakontroll, og støtter flernivå-grupperingsfelt

Bevaring av VBA-prosjekter

HotXLS bevarer VBA-prosjekt-nyttelaster når makroaktiverte arbeidsbøker runder turen. Skrivebeskyttet modul- inspeksjon er tilgjengelig gjennom TXLSVBAProject og TXLSVBAModule Kall IXLSWorkbook.HasVBAProject for å oppdage en nyttelast og LoadVBAProjectFromFile / SaveVBAProjectToFile for å overføre den mellom filer

Unicode og internasjonal tekst

All strenghåndtering er Unicode-nativ. HotXLS leser og skriver Excel-filer forfattet på et hvilket som helst språk, inkludert CJK, arabisk, hebraisk, thai og andre skrifter, med korrekt bidireksjonal tekst- og leseretnings- støtte
Unicode character support example

Pivot-tabeller (klassisk XLS)

Opprett pivot-tabeller fra et kildeområde med TXLSWorksheet.AddPivotTable, konfigurer feltplassering og tallformater for datafelt, og inspiser pivot-modellen gjennom TXLSWorksheet.PivotTables Se klassisk XLS-pivot-tabell-API for felt- og filterdetaljer

Fordeler

Ingen Office-avhengighet Leser og skriver XLS- og XLSX-filer direkte på binærnivå. Microsoft Excel eller Office trenger ikke å være installert, lisensiert eller kjørende. Dette eliminerer COM/OLE-automatiseringskostnaden, unngår trådingsrestriksjoner som Office-interop pålegger, og gjør at HotXLS kan brukes i server- og tjenestekontekster der en skrivebordsinstallasjon av Office er upraktisk
Høy ytelse BIFF8- og OOXML-tolkerne er skrevet i innfødt Object Pascal uten mellomliggende XML-DOM-allokering på hot path. Store arbeidsbøker med hundretusenvis av rader kan leses og skrives med lavt toppminne. De-duplisering av delte strenger og komprimering av delte formler brukes automatisk for å holde filstørrelsene små
OLE-migreringsbane Den klassiske fasade-API-overflaten (arbeidsbok, regneark, område, skrift, kanter, interiør, sideoppsett) speiler tett Excel-objektmodellen man kjenner fra OLE-automatisering. Dette gjør migrering av eksisterende OLE-baserte prosjekter enkel: erstatt COM-kallene med HotXLS-kall, fjern Office- avhengigheten, og få innfødt ytelse
To-fasade-design Eldre XLS-kode fortsetter å kompilere og kjøre uendret mot lxHandle, mens ny XLSX-kode bruker den rikere lxHandleX-fasadene. Å migrere ett filformat om gangen er trygt og inkrementelt
Formelmotor inkludert En innebygd flerpass-beregningsmotor håndterer de vanligste regnearkfunksjonene uten at Excel trenger å beregne på nytt ved åpning. Egendefinerte funksjoner håndteres gjennom OnUserFunction- tilbakeringingen
Enkel å bruke Ferdigkomponenter for Delphi (TDataToXLS, TGridToXLS) krever ingen kode for vanlige eksportoppgaver. Det flytende område-API-et støtter A1-notasjon, R1C1-notasjon og nullbasert rad-/kolonneindeksering
Trådsikker fil-I/U Fordi det ikke finnes noen delt Office-prosess, kan flere TXLSXWorkbook-forekomster opprettes og lagres samtidig på uavhengige tråder uten synkronisering, noe som gjør HotXLS egnet for flertrådede rapportgenereringsservere

Kompatibilitet

HotXLS er kompatibelt med følgende RAD Studio-versjoner:
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
Målplattformer Windows 32-bit og 64-bit
Excel-filformater XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2)
Eksportbare formater HTML, RTF, CSV, TSV

Se også