Juurdepääs MS Exceli lehtedele ja nende haldamine Delphiga

Selles üksikasjalikus juhendis kirjeldatakse, kuidas luua ühenduse Microsoft Exceliga, hankida lehe andmeid ja lubada andmete redigeerimist DBGridi abil. Samuti leiate loetelu kõige tavalisematest vigadest, mis võivad protsessis ilmneda, ja kuidas neid lahendada.

Mida käsitletakse allpool:

  • Andmeedastuse meetodid Exceli ja Delphi. Kuidas Exceliga ühenduse luua? ADO (ActiveX andmeobjektid) ja Delphi.
  • Exceli arvutustabeliredaktori loomine Delphi ja ADO abil
  • Andmete hankimine Excelist. Kuidas viidata tabelile (või vahemikule) Exceli töövihikus.
  • Arutelu Exceli väljade (veergude) tüüpide üle
  • Kuidas Exceli lehti muuta: redigeerida, lisada ja kustutada ridu.
  • Andmete ülekandmine Delphi rakendusest Excelile. Kuidas luua töölehte ja täita see MS Accessi andmebaasist kohandatud andmetega?

Kuidas ühendada Microsoft Exceliga

Microsoft Excel on võimas arvutustabelite kalkulaator ja andmete analüüsimise tööriist. Kuna Exceli töölehe read ja veerud on tihedalt seotud andmebaasi tabeli ridade ja veergudega, paljude arendajate arvates on asjakohane transportida oma andmed analüüsi eesmärgil Exceli töövihikusse; ja seejärel hankige andmed rakendusele tagasi.

instagram viewer

Teie rakenduse ja Exceli vaheliseks andmevahetuseks on kõige sagedamini kasutatav lähenemisviis Automatiseerimine. Automatiseerimine annab võimaluse Exceli andmete lugemiseks, kasutades Exceli objektimudelit, et sukelduda töölehele, ekstraheerida selle andmed ja kuvada ruudustikukomponendi, nimelt DBGrid või StringGrid, sees.

Automatiseerimine annab teile suurima paindlikkuse töövihikus olevate andmete leidmisel ning võimaluse vormindada töölehte ja teha jooksval ajal erinevaid sätteid.

Andmete ülekandmiseks Excelisse ja ilma automatiseerimiseta saate kasutada muid meetodeid, näiteks:

  • Kirjutage andmed komaga eraldatud tekstifaili ja laske Excelil fail lahtritesse parsida
  • Andmete edastamine DDE abil (dünaamiline andmevahetus)
  • Edastage oma andmed töölehele ja töölehelt ADO abil

Andmeedastus ADO abil

Kuna Excel on JET OLE DB-iga ühilduv, saate selle Delphiga ADO (dbGO või AdoExpress) abil ühenduse luua ja seejärel töölehe andmed ADO-andmestikku SQL-päringu väljastamise teel (nagu avaksite andmekogu mis tahes andmebaasi korral) laud).

Sel moel on Exceli andmete töötlemiseks saadaval kõik ADODataset-objekti meetodid ja funktsioonid. Teisisõnu, kasutades ADO komponente, saate luua rakenduse, mis saab andmebaasina kasutada Exceli töövihikut. Veel üks oluline fakt on see, et Excel on protsessiväline ActiveX-server. ADO töötab protsessis ja säästab kulukate protsessiväliste kõnede üldkulusid.

Kui ühendate ADO-ga Exceliga, saate vahetada töötlemata andmeid ainult töövihiku kohta ja sealt. ADO-ühendust ei saa kasutada lehe vormindamiseks ega valemite rakendamiseks lahtritesse. Kui aga edastate oma andmed eelvormindatud töölehele, säilitatakse see vorming. Pärast andmete sisestamist oma rakendusest Excelisse saate teha mis tahes tingimusliku vormindamise, kasutades töölehe (eelloetud) makro.

Saate ADO abil ühendada Exceliga kahe OLE DB pakkujaga, mis on MDAC osa: Microsoft Jet OLE DB pakkuja või Microsoft OLE DB pakkuja ODBC draiverite jaoks. Keskendume Jet OLE DB pakkujale, mida saab kasutada Exceli töövihikute andmetele juurdepääsu saamiseks installitavate indekseeritud järjestikpöördusmeetodi (ISAM) draiverite kaudu.

Näpunäide: Vaadake Algajate kursus Delfisse ADO andmebaasi programmeerimine, kui olete ADO uus kasutaja.

ConnectionString maagia

Atribuut ConnectionString annab ADO-le teada, kuidas andmeallikaga ühenduse luua. ConnectionStringi jaoks kasutatud väärtus koosneb ühest või mitmest argumendist, mida ADO kasutab ühenduse loomiseks.

Delphis kapseldab TADOConnection komponent ADO ühenduse objekti; seda saab ühenduse mitme atribuudi kaudu jagada mitme ADO andmestiku (TADOTable, TADOQuery jne) komponentidega.

Exceliga ühenduse loomiseks hõlmab kehtiv ühenduslüli ainult kahte täiendavat teavet - kogu tee töövihiku juurde ja Exceli failiversioon.

Seaduslik ühenduslüli võib välja näha järgmine:

ConnectionString: = 'Pakkuja = Microsoft. Jet. OLEDB.4.0; andmeallikas = C: \ MyWorkBooks \ myDataBook.xls; Laiendatud omadused = Excel 8.0; ';

Kui ühendate välise andmebaasi vorminguga, mida Jet toetab, tuleb ühenduse laiendatud atribuudid seada. Meie puhul kasutatakse Exceli andmebaasiga ühenduse loomisel Exceli faili versiooni seadistamiseks laiendatud atribuute.

Excel95 töövihiku puhul on see väärtus "Excel 5.0" (ilma jutumärkideta); kasutage programmi Excel 97, Excel 2000, Excel 2002 ja ExcelXP jaoks "Excel 8.0".

Tähtis: Peate kasutama Jet 4.0 pakkujat, kuna Jet 3.5 ei toeta ISAM-draivereid. Kui seate Jet Provideriks versiooni 3.5, kuvatakse tõrge "Installimiskõlblikku ISAMi ei leitud".

Veel üks Jet laiendatud omadus on "HDR =". "HDR = jah" tähendab, et vahemikus on päise rida, nii et jet ei lisa valiku esimest rida andmekogumisse. Kui täpsustatud on "HDR = Ei", lisab pakkuja andmestikku vahemiku (või nimega vahemiku) esimese rea.

Vahemiku esimest rida peetakse vaikimisi päisereaks ("HDR = Jah"). Seega, kui teil on veeru pealkiri, ei pea te seda väärtust täpsustama. Kui teil pole veerupäiseid, peate määrama "HDR = Ei".

Nüüd, kui olete kõik valmis saanud, muutuvad asjad selles osas huvitavaks, kuna oleme nüüd mõne koodi valmis. Vaatame, kuidas luua Delphi ja ADO abil lihtne Exceli arvutustabeliredaktor.

Märge: Peaksite tegutsema ka siis, kui teil puuduvad teadmised ADO ja Jet programmeerimise kohta. Nagu näete, on Exceli töövihiku redigeerimine sama lihtne kui andmete redigeerimine mis tahes standardsest andmebaasist.