Yleiskatsaus
![]() |
HotXLS Excel Read/Write Library on tehokas Excelin luku- ja kirjoituskomponentti Delphi- ja C++Builder-ympäristöille.
Se voi luoda uusia Excel-laskentataulukoita sekä lukea ja muokata olemassa olevia XLS- ja XLSX-työkirjoja ilman,
että koneelle tarvitsee asentaa Microsoft Exceliä tai Officeta
HotXLS on kirjoitettu kokonaan Object Pascalilla. Se lukee ja kirjoittaa Excel-tiedostoja suoraan
binääri- ja OOXML-tasolla, joten COM/OLE-automaatiosta ei aiheudu ylimääräistä kuormaa eikä riippuvuutta
Office-lisenssistä tai -asennuksesta ole. HotXLS tukee Delphiä ja C++Builderia versioista XE5 versioon 13 Florence
Klassisen XLS:n värimuotoilu on tarkoituksella edelleen palettipohjaista. Katso Klassinen XLS-värimalli
ThemeColor / TintAndShade -valinnasta
|
Kaksoisfasadin arkkitehtuuri
HotXLS tarjoaa kaksi rinnakkain toimivaa fasadiyksikköä, jotta vanha XLS-koodi ja uusi XLSX-koodi voivat elää
rinnakkain ilman uudelleenrefaktorointia:
lxHandle |
Ensisijainen fasadi Excel 97–2003 BIFF8 -muodolle (.xls) sekä HTML-, RTF-, CSV- ja TSV-vientimuodoille.
Kaikki olemassa oleva käyttäjäkoodi jatkaa tämän yksikön käyttöä muuttumattomana. Aloituspisteet:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Ensisijainen fasadi Excel 2007+ OOXML -muodon (.xlsx) ja OpenDocument Spreadsheet -muodon
(.ods) luku- ja kirjoitustoiminnoille. Se tarjoaa omat työkirja- ja laskentataulukkotyyppinsä, joten
XLSX-kohtaisia toimintoja ei ole lisätty jälkikäteen BIFF-koodipolkuun. Aloituspisteet:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Molemmat fasadit jakavat saman kaavamoottorin, saman Unicode-tukikerroksen ja saman vientiputken.
Katso XLSX-fasadin yleiskatsaus lisätietoja
lxHandleX-yksikön
koko luokkahierarkiasta
Pika-aloitus
Seuraavat koodinpätkät esittävät vähimmäiskoodin, jolla luodaan yhden laskentataulukon sisältävä työkirja
ja kirjoitetaan arvo soluun.
Klassinen 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;
Laajemman esittelyn, joka kattaa molemmat fasadit yhdessä demo-projektissa, löydät kohdasta
API Tour -demo
Ominaisuudet
Tiedoston I/O ja striimituki
Lue olemassa olevia Excel-tiedostoja, kirjoita uusia tai olemassa olevia Excel-tiedostoja, käsittele klassisen XLS:n
salasanasuojaus- ja XLSX-salatun tallennuksen työnkulkuja ja luettele nopeasti laskentataulukoiden nimet XLS- ja
XLSX-tiedostoista tai -striimeistä lataamatta koko työkirjaa. CSV:n avaaminen työkirjana on tuettu
IXLSWorkbook.OpenCSV-metodilla
Solujen arvot ja kaavat
Lue ja kirjoita kaikkien Excelin natiivien tyyppien soluarvoja: numero, merkkijono, päivämäärä/aika, totuusarvo ja kaava.
Sisäänrakennettu laskentamoottori laskee kaavat sekä klassisissa XLS- että XLSX-työkirjoissa ja tukee:
- Tekstifunktiot (
LEFT,MID,TRIM,SUBSTITUTE, …) - Päivämäärä- ja työpäiväfunktiot (
DATE,NETWORKDAYS,WORKDAY, …) - Tekniset ja kantamuunnosfunktiot (
BIN2DEC,HEX2DEC, …) - Bittikohtaiset funktiot (
BITAND,BITOR,BITXOR, …) - Tilastolliset ja aggregaattifunktiot (
AVERAGE,SUMIF,COUNTIFS, …) - Matemaattiset funktiot (
ROUND,MOD,POWER, …)
OnUserFunction-takaisinkutsu mahdollistaa mukautettujen tai tukemattomien laskentataulukkofunktioiden käsittelyn ajonaikaisesti.
Katso OnUserFunction-takaisinkutsu allekirjoituksen ja esimerkkien osalta

Solujen muotoilu
Täysi pääsy solujen ulkoasun määritteisiin:
- Fontit — nimi, koko, väri (RGB tai teemaväri + tint), lihavointi, kursivointi, alleviivaus, yliviivaus, yläindeksi, alaindeksi, varjo ja ääriviiva
- Tasaus — vaaka- ja pystytasaus, tekstin suunta (kulma), sisennyksen taso, tekstin rivitys, pienennä sopivaksi -toiminto ja lukusuunta (RTL/LTR)
- Reunukset — kaikki neljä reunaa ja lävistäjät, viivatyyli, paksuus sekä RGB / teemaväri
- Täyttö (Interior) — yhtenäinen täyttö, kuvioinnit, etu- ja taustavärit mukaan lukien teemaväri TintAndShade-arvolla
- Numeromuodot — valmiit ja mukautetut muotomallit päivämäärille, ajoille, valuutoille, prosenteille ja tieteelliselle merkintätavalle
- Kommentit / huomautukset — lisää, lue ja muotoile solukommentteja
Alueoperaatiot
IXLSRange (klassinen fasadi) ja TXLSXRange (XLSX-fasadi) tarjoavat runsaasti
alueoperaatioita:
- Yhdistä ja poista solujen yhdistäminen; pääse käsiksi minkä tahansa solun yhdistettyyn alueeseen
- Kopioi, siirrä, lisää ja poista alueita siirtosuunnan hallinnalla
- Ryhmitä ja poista rivien tai sarakkeiden ryhmitys ääriviiva-/tiivistysnäkymiä varten
- Sovita rivin korkeus ja sarakkeen leveys automaattisesti solun sisältöön
- Käytä valmiita nimettyjä solutyylejä (
ApplyBuiltinStyle) - Monialuevalinnat (
TXLSWorksheet.SelectAreas) - ForEachCell-iteraatiotakaisinkutsu solujen eräkäsittelyä varten
Laskentataulukon ominaisuudet
Laskentataulukkotason hallinta kattaa:
- Laskentataulukon nimi, välilehden väri, näkyvyys (piilotettu / erittäin piilotettu) ja indeksiin perustuva navigointi
- Laskentataulukon suojaus käyttöoikeuskohtaisella tarkkuudella; työkirjatason suojaus
- Ruutujen kiinnittäminen, ruutujen jakaminen ja vierityspaikka
- AutoFilter-alueet kriteereineen; tietojen vahvistussääntöjen luettelointi
- Ehdollinen muotoilu: väriasteikot (2 ja 3 väriä), palkkikaaviot ja kuvakesarjat
- Tekstin etsintä ja korvaus laskentataulukossa
- Näkymäasetukset: ruudukkoviivojen väri, kaavojen näyttötila, nollien näyttö, otsikoiden näyttö, oikealta vasemmalle -näyttö, ääriviivasymbolien näyttö ja zoomitaso
- Rakenteiset taulukot (
TXLSTable/TXLSXTable): lisää, käytä ja muotoile Excel-taulukoita otsikkoriveineen ja raidoitettuine riveineen - Kaaviot: lisää kaaviosivuja ja upotettuja kaavioita
TXLSWorksheetsAddChartSheet- jaTXLSXChart-luokkien avulla
Hyperlinkit ja nimetyt alueet
Lisää ja lue hyperlinkkejä (URL-, mailto- ja työkirjan sisäiset soluviittaukset)
IXLSHyperLinks-rajapinnan kautta. Määrittele ja ratkaise nimettyjä alueita työkirja- ja
laskentataulukkotasolla IXLSNames / TXLSXDefinedNames -rajapintojen avulla. Nimettyjä
alueita voidaan käyttää kaavoissa ja ratkaista takaisin solualueeksi RefersToRange-ominaisuuden avulla
Kuvat ja muodot
Upota rasterikuvia (BMP, JPG, PNG, GIF) laskentataulukoihin
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage -metodien avulla. Luo erillisiä tekstilaatikoita
klassiseen XLS:ään TXLSShapes.AddTextBox-metodilla. Säilytä Excelin luomat OfficeArt-liittimet ja
ratkaisijasäännöt BIFF8-piirroksissa ja paljasta raa'at muodon FOPT-asetukset
TXLSShape.OfficeArtOptions-ominaisuuden avulla asiantuntijatason piirrostyönkulkuja varten
Sivun asetukset ja tulostus
Täysi pääsy tulostusasetteluun
IXLSPageSetup-rajapinnan kautta:
- Paperikoko (A4, Letter, Legal ja monet muut; katso PaperSize)
- Suunta (pysty / vaakasuunta), marginaalit, keskitys vaakasuunnassa / pystysuunnassa
- Ylä- ja alatunnisteen merkkijonot Excelin muotokoodeilla (lihavointi, kursivointi, sivunumero, päivämäärä jne.; katso Ylä-/alatunnisteen muotokoodit)
- Manuaaliset vaaka- ja pystysuuntaiset sivunvaihdot
- Sovita sivuille -skaalaus; zoomausprosentti; tulostusalue; tulostusotsikot (toista rivit / sarakkeet)
- Luonnoslaatu; mustavalko; ruudukkoviivojen tulostus; otsikoiden tulostus; huomautusten tulostus
Vientimuodot
Vie kokonaisia työkirjoja, yksittäisiä laskentataulukoita tai mielivaltaisia solualueita muotoihin:
- HTML — koko dokumentti tai sisäinen taulukon osa esikatselu- tai sähköpostityönkulkuja varten;
säädettävissä
TXLSHTMLExport- jaTXLSXHtmlExportOptions-luokkien avulla - RTF — rikastekstiä tekstinkäsittelyohjelmaan tuontia varten
- CSV — pilkulla erotetut arvot säädettävällä erottimella ja merkistöllä
- TSV — sarkaimella erotetut arvot
- ODS — OpenDocument Spreadsheet
lxHandleX-fasadin kautta
Tietokanta- ja ruudukkoexportti
Vie mikä tahansa TDataSet-yhteensopiva tietojoukko tai TDBGrid suoraan Exceliin, HTML:ään tai RTF:ään
TDataToXLS- tai
TGridToXLS-komponentin avulla.
Molemmat komponentit laukaisevat AfterCell-, AfterRow-, AfterTitle- ja
AfterGroup-tapahtumat hienojakoista tulostuksen hallintaa varten ja tukevat monitasoisia ryhmittelykenttiä
VBA-projektin säilyttäminen
HotXLS säilyttää VBA-projektin sisällön makrollisia työkirjoja käsiteltäessä. Vain luku -tilassa tapahtuva moduulin
tarkastelu on käytettävissä
TXLSVBAProject- ja TXLSVBAModule-luokkien kautta.
Kutsu IXLSWorkbook.HasVBAProject-metodia sisällön havaitsemiseksi ja
LoadVBAProjectFromFile / SaveVBAProjectToFile -metodeja sen siirtämiseksi tiedostojen välillä
Unicode ja kansainvälinen teksti
Kaikki merkkijonojen käsittely on Unicode-natiivia. HotXLS lukee ja kirjoittaa Excel-tiedostoja, jotka on laadittu
millä tahansa kielellä, mukaan lukien CJK-, arabia-, heprea-, thai- ja muut kirjoitusjärjestelmät, oikealla
kaksisuuntaisen tekstin ja lukusuunnan tuella

Pivot-taulukot (klassinen XLS)
Luo pivot-taulukoita lähdealueesta
TXLSWorksheet.AddPivotTable-metodilla, määritä kenttien sijoittelu ja data-kenttien numeromuodot ja
tarkastele pivot-mallia TXLSWorksheet.PivotTables-ominaisuuden kautta.
Katso Classic XLS -pivot-taulukon API kenttä- ja suodatintietojen osalta
Edut
| Ei Office-riippuvuutta | Lukee ja kirjoittaa XLS- ja XLSX-tiedostoja suoraan binääritasolla. Microsoft Exceliä tai Officeta ei tarvitse asentaa, lisensoida tai käynnistää. Tämä poistaa COM/OLE-automaation kuormituksen, välttää Office-interopin asettamat säikeistysrajoitukset ja mahdollistaa HotXLS:n käytön palvelin- ja palveluympäristöissä, joissa työpöytä-Office-asennus ei ole käytännöllistä |
| Korkea suorituskyky | BIFF8- ja OOXML-jäsentimet on kirjoitettu natiivilla Object Pascalilla ilman välivaiheen XML-DOM-varauksia kriittisellä suorituspolulla. Suuria työkirjoja, joissa on satojatuhansia rivejä, voidaan lukea ja kirjoittaa pienellä huippumuistilla. Jaettujen merkkijonojen deduplikointia ja jaettujen kaavojen pakkausta sovelletaan automaattisesti tiedostokokojen pitämiseksi pieninä |
| OLE-siirtymäpolku | Klassisen fasadin API-pinta (työkirja, laskentataulukko, alue, fontti, reunukset, täyttö, sivun asetukset) muistuttaa läheisesti OLE-automaatiosta tuttua Excelin oliomallia. Tämä tekee olemassa olevien OLE-pohjaisten projektien siirtämisestä suoraviivaista: korvaa COM-kutsut HotXLS-kutsuilla, poista Office- riippuvuus ja saavuta natiivisuorituskyky |
| Kaksoisfasadin suunnittelu |
Vanha XLS-koodi jatkaa kääntymistä ja toimimista muuttumattomana lxHandle-yksikköä vasten,
kun taas uusi XLSX-koodi käyttää rikkaampaa lxHandleX-fasadia. Yhden tiedostomuodon
kerrallaan siirtäminen on turvallista ja asteittaista
|
| Sisäänrakennettu kaavamoottori |
Sisäänrakennettu monivaiheinen laskentamoottori käsittelee yleisimmät laskentataulukkofunktiot ilman, että
Excelin tarvitsee laskea uudelleen avattaessa. Mukautetut funktiot käsitellään OnUserFunction-
takaisinkutsun kautta
|
| Helppokäyttöinen |
Suoraan käyttöönotettavat Delphi-komponentit (TDataToXLS, TGridToXLS) eivät vaadi
koodia yleisiin vientitehtäviin. Sujuva alue-API tukee A1-merkintää, R1C1-merkintää ja nollapohjaista
rivi-/sarakkeindeksointia
|
| Säikeiturvallinen tiedostojen I/O |
Koska jaettua Office-prosessia ei ole, useita TXLSXWorkbook-instansseja voidaan
luoda ja tallentaa samanaikaisesti itsenäisissä säikeissä ilman synkronointia, mikä tekee HotXLS:stä
soveltuvan monisäikeisiin raporttigenerointipalvelimiin
|
Yhteensopivuus
HotXLS on yhteensopiva seuraavien RAD Studio -versioiden kanssa:
| 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 |
| Kohdealustat | Windows 32- ja 64-bittinen |
| Excel-tiedostomuodot | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Vain vientimuodot | HTML, RTF, CSV, TSV |
Katso myös
- XLSX-fasadin yleiskatsaus (lxHandleX) — koko luokkahierarkia ja XLSX/ODS-kohtaiset API-jäsenet
- API Tour -demo — ensimmäinen demo, joka kannattaa ajaa, kun opettelet HotXLS:ää alusta alkaen
- IXLSWorkbook — klassisen XLS:n työkirjan rajapintaviite
- TXLSWorksheet — klassisen XLS:n laskentataulukon luokkaviite
- IXLSRange — alueen rajapinta: solujen käyttö, muotoilu ja operaatiot
- TXLSXWorkbook — XLSX-työkirjan luokkaviite
- TXLSXWorksheet — XLSX-laskentataulukon luokkaviite
- TGridToXLS — suoraan käyttöönotettava DBGrid–Excel-exporttikomponentti
- TDataToXLS — suoraan käyttöönotettava tietojoukko–Excel-exporttikomponentti
- OnUserFunction-takaisinkutsu — mukautettujen laskentataulukkofunktioiden laajennuspiste
- Klassinen XLS-värimalli — palettipohjaisen värin ja teemavärin suunnitteluperusteet
- Classic XLS -lisä-API-jäsenet — laskentaominaisuudet, dokumentin ominaisuudet, pivot-taulukot ja paljon muuta
- Esimerkit — esimerkkiprojektien yleiskatsaus
- Purchase Order -esimerkki — täysimittainen XLS-luontiesimerkki lähdekoodeineen
