HotXLS-dokumentaatio

Yleiskatsaus

HotXLS Logo
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
Kaavan laskennan esimerkki

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- ja TXLSXChart-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- ja TXLSXHtmlExportOptions-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
Unicode-merkistön tuen esimerkki

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