Šajā soli pa solim aprakstīts, kā izveidot savienojumu ar Microsoft Excel, izgūt lapas datus un iespējot datu rediģēšanu, izmantojot DBGrid. Jūs atradīsit arī sarakstu ar visbiežāk sastopamajām kļūdām, kas varētu parādīties procesā, kā arī to, kā ar tām rīkoties.
Kas ir ietverts zemāk:
- Metodes datu pārsūtīšanai no Excel uz Delfi. Kā izveidot savienojumu ar Excel ar ADO (ActiveX datu objekti) un Delphi.
- Excel izklājlapu redaktora izveidošana, izmantojot Delphi un ADO
- Datu izgūšana no Excel. Kā atsauce uz tabulu (vai diapazonu) Excel darbgrāmatā.
- Diskusija par Excel lauka (kolonnas) veidiem
- Kā pārveidot Excel lapas: rediģēt, pievienot un izdzēst rindas.
- Datu pārsūtīšana no Delphi lietojumprogrammas uz Excel. Kā izveidot darblapu un aizpildīt to ar pielāgotiem datiem no MS Access datu bāzes.
Kā izveidot savienojumu ar Microsoft Excel
Microsoft Excel ir jaudīgs izklājlapu kalkulators un datu analīzes rīks. Tā kā Excel darblapas rindas un kolonnas ir cieši saistītas ar datu bāzes tabulas rindām un kolonnām, daudzi izstrādātāji uzskata, ka ir lietderīgi analīzes nolūkos savus datus ievietot Excel darbgrāmatā; un pēc tam izgūt datus atpakaļ uz lietojumprogrammu.
Visbiežāk izmantotā pieeja datu apmaiņai starp jūsu lietojumprogrammu un Excel ir Automatizācija. Automatizācija nodrošina veidu, kā nolasīt Excel datus, izmantojot Excel objekta modeli, lai ienirt darblapā, izvilkt tās datus un parādīt tos režģim līdzīgā komponentā, proti, DBGrid vai StringGrid.
Automatizācija dod jums vislielāko elastību datu atrašanā darbgrāmatā, kā arī iespēju formatēt darblapu un veikt dažādus iestatījumus izpildes laikā.
Lai pārsūtītu datus uz Excel un no tā bez automatizācijas, varat izmantot citas metodes, piemēram:
- Ierakstiet datus komatatdalītā teksta failā un ļaujiet Excel parsēt failu šūnās
- Datu pārsūtīšana, izmantojot DDE (Dynamic Data Exchange)
- Pārsūtiet datus uz darblapu un no tās, izmantojot ADO
Datu pārsūtīšana, izmantojot ADO
Tā kā Excel ir saderīgs ar JET OLE DB, varat izveidot savienojumu ar to ar Delphi, izmantojot ADO (dbGO vai AdoExpress), un pēc tam izgūt darblapas datus ADO datu kopā, izsniedzot SQL vaicājumu (tāpat kā jūs atvērtu datu kopu pret jebkuru datu bāzi) tabula).
Tādā veidā ir pieejamas visas ADODataset objekta metodes un funkcijas, lai apstrādātu Excel datus. Citiem vārdiem sakot, izmantojot ADO komponentus, jūs varat izveidot lietojumprogrammu, kas kā datu bāzi var izmantot Excel darbgrāmatu. Vēl viens svarīgs fakts ir tas, ka Excel ir process, kas nav process ActiveX serveris. ADO darbojas procesa laikā un ietaupa izmaksas par dārgiem ārpus procesa zvaniem.
Kad izveidojat savienojumu ar Excel, izmantojot ADO, jūs varat apmainīties ar neapstrādātiem datiem tikai no darbgrāmatas un no tās. ADO savienojumu nevar izmantot lapu formatēšanai vai formulu ieviešanai šūnās. Tomēr, ja datus pārsūtīsit uz iepriekš formatētu darblapu, tas tiek saglabāts. Pēc datu ievietošanas no lietojumprogrammas uz Excel, jūs varat veikt jebkuru nosacītu formatēšanu, izmantojot (iepriekš ierakstītu) makro darblapā.
Varat izveidot savienojumu ar Excel, izmantojot ADO, ar diviem OLE DB nodrošinātājiem, kas ietilpst MDAC: Microsoft Jet OLE DB pakalpojumu sniedzējs vai Microsoft OLE DB pakalpojumu sniedzējs ODBC draiveriem. Mēs koncentrēsimies uz Jet OLE DB nodrošinātāju, kuru var izmantot, lai piekļūtu datiem Excel darbgrāmatās, izmantojot instalējamos indeksētās secīgās piekļuves metodes (ISAM) draiverus.
Padoms: Skatīt Iesācēju kurss uz Delfiem ADO datu bāzes programmēšana, ja esat jauns ADO lietotājs.
ConnectionString maģija
Īpašums ConnectionString norāda ADO, kā izveidot savienojumu ar datu avotu. ConnectionString izmantotā vērtība sastāv no viena vai vairākiem argumentiem, ko ADO izmanto, lai izveidotu savienojumu.
Delfā TADOConnection komponents iekapsulē ADO savienojuma objektu; to var koplietot vairāki ADO datu kopas (TADOTable, TADOQuery utt.) komponenti, izmantojot to savienojuma rekvizītus.
Lai izveidotu savienojumu ar Excel, derīga savienojuma virkne ietver tikai divus papildu informācijas elementus - pilnu ceļu uz darbgrāmatu un Excel faila versiju.
Likumīga savienojuma virkne varētu izskatīties šādi:
ConnectionString: = 'Sniedzējs = Microsoft. Jet. Datu avots = C: \ MyWorkBooks \ myDataBook.xls; Paplašinātie rekvizīti = Excel 8.0; ';
Veidojot savienojumu ar ārēju datu bāzes formātu, kuru atbalsta Jet, ir jāiestata savienojuma paplašinātie rekvizīti. Mūsu gadījumā, pieslēdzoties Excel datu bāzei, Excel faila versijas iestatīšanai tiek izmantoti paplašinātie rekvizīti.
Excel95 darbgrāmatai šī vērtība ir "Excel 5.0" (bez pēdiņām); izmantojiet "Excel 8.0" Excel 97, Excel 2000, Excel 2002 un ExcelXP.
Svarīgs: Jums jāizmanto Jet 4.0 nodrošinātājs, jo Jet 3.5 neatbalsta ISAM draiverus. Ja Jet Provider iestatāt uz 3.5 versiju, tiek parādīta kļūda “Nevarēju atrast instalējamu ISAM”.
Vēl viens Jet paplašinātais īpašums ir "HDR =". "HDR = Jā" nozīmē, ka diapazonā ir galvenes rinda, tāpēc sprausla datu kopā neiekļaus atlases pirmo rindu. Ja ir norādīts "HDR = Nē", nodrošinātājs datu kopā iekļaus pirmo diapazona (vai nosauktā diapazona) rindu.
Pirmā diapazona rinda pēc noklusējuma tiek uzskatīta par galvenes rindu ("HDR = Jā"). Tāpēc, ja jums ir kolonnu virsraksts, šī vērtība nav jānorāda. Ja jums nav kolonnu virsrakstu, jums jānorāda "HDR = Nē".
Tagad, kad viss jau ir iestatīts, šajā vietā lietas kļūst interesantas, jo mēs tagad esam gatavi kādam kodam. Let's redzēt, kā izveidot vienkāršu Excel izklājlapu redaktoru, izmantojot Delphi un ADO.
Piezīme: Jums jāturpina pat tad, ja jums trūkst zināšanu par ADO un Jet programmēšanu. Kā redzēsit, Excel darbgrāmatas rediģēšana ir tikpat vienkārša kā datu rediģēšana no jebkuras standarta datu bāzes.