Prístup a správa listov MS Excel pomocou Delphi

click fraud protection

Táto podrobná príručka popisuje, ako sa pripojiť k programu Microsoft Excel, načítať údaje hárka a povoliť úpravu údajov pomocou DBGrid. Nájdete tu tiež zoznam najčastejších chýb, ktoré sa môžu vyskytnúť v tomto procese, ako aj spôsob ich riešenia.

Čo je uvedené nižšie:

  • Metódy prenosu údajov medzi programami Excel a Delphi. Ako sa pripojiť k Excelu pomocou ADO (Dátové objekty ActiveX) a Delphi.
  • Vytvorenie editora tabuľky Excel pomocou Delphi a ADO
  • Načítanie údajov z Excelu. Ako odkazovať na tabuľku (alebo rozsah) v zošite programu Excel.
  • Diskusia o typoch polí v stĺpci Excel
  • Ako upraviť hárky programu Excel: upravovať, pridávať a odstraňovať riadky.
  • Prenos údajov z aplikácie Delphi do Excelu. Ako vytvoriť pracovný hárok a naplniť ho vlastnými údajmi z databázy MS Access.

Ako sa pripojiť k programu Microsoft Excel

Microsoft Excel je výkonný tabuľkový kalkulátor a nástroj na analýzu údajov. Keďže riadky a stĺpce pracovného hárka programu Excel úzko súvisia s riadkami a stĺpcami databázovej tabuľky, mnohí vývojári považujú za vhodné preniesť svoje údaje do zošita programu Excel na účely analýzy; a následne načítať údaje späť do aplikácie.

instagram viewer

Najbežnejšie používaný prístup k výmene údajov medzi aplikáciou a programom Excel je automatizácia. Automatizácia poskytuje spôsob čítania údajov programu Excel pomocou objektového modelu Excelu, ktorý umožňuje ponorenie do pracovného hárka, extrahovanie jeho údajov a ich zobrazenie vo vnútri komponentu podobného mriežke, konkrétne DBGrid alebo StringGrid.

Automatizácia vám poskytuje najväčšiu flexibilitu pri vyhľadávaní údajov v zošite, ako aj možnosť formátovania pracovného hárka a rôznych nastavení v čase vykonávania.

Na prenos údajov do a z Excelu bez automatizácie môžete použiť ďalšie metódy, ako napríklad:

  • Zapíšte údaje do textového súboru oddeleného čiarkami a nechajte program Excel analyzovať súbor do buniek
  • Prenos údajov pomocou DDE (Dynamic Data Exchange)
  • Preneste svoje údaje do az tabuľky pomocou ADO

Prenos údajov pomocou ADO

Pretože Excel je kompatibilný s JET OLE DB, môžete sa k nemu pripojiť pomocou Delphi pomocou ADO (dbGO alebo AdoExpress) a potom načítať údaje pracovného hárka do súboru údajov ADO vydaním dotazu SQL (rovnako ako by ste otvorili súbor údajov proti akejkoľvek databáze tabuľka).

Týmto spôsobom sú k dispozícii všetky metódy a vlastnosti objektu ADODataset na spracovanie údajov programu Excel. Inými slovami, pomocou komponentov ADO môžete vytvoriť aplikáciu, ktorá môže ako zošitu použiť zošit programu Excel. Ďalším dôležitým faktom je, že Excel je proces mimo procesu Server ActiveX. ADO beží v procese a šetrí režijné náklady na nákladné hovory mimo procesu.

Keď sa pripájate k programu Excel pomocou ADO, môžete si zo základu vymieňať iba surové údaje. Pripojenie ADO sa nemôže použiť na formátovanie hárkov ani na implementáciu vzorcov do buniek. Ak však prenesiete svoje údaje do vopred pripraveného pracovného hárka, formát sa zachová. Po vložení údajov z vašej aplikácie do Excelu môžete vykonať akékoľvek podmienené formátovanie pomocou (vopred zaznamenaného) makra v pracovnom hárku.

Môžete sa pripojiť k Excelu pomocou ADO s dvoma poskytovateľmi OLE DB, ktorí sú súčasťou MDAC: Microsoft Jet OLE DB Provider alebo Microsoft OLE DB Provider pre ovládače ODBC. Zameriame sa na poskytovateľa Jet OLE DB, ktorý sa dá použiť na prístup k údajom v zošitoch Excelu pomocou inštalovateľných ovládačov ISAM (Indexed Sequential Access Method).

Tip: Pozri Kurz pre začiatočníkov do Delphi Programovanie ADO databázy, ak ste novým používateľom ADO.

The ConnectionString Magic

Vlastnosť ConnectionString hovorí ADO, ako sa pripojiť k zdroju údajov. Hodnota použitá pre ConnectionString pozostáva z jedného alebo viacerých argumentov, ktoré ADO používa na vytvorenie pripojenia.

V Delphi komponent TADOConnection zapuzdruje objekt pripojenia ADO; môže byť zdieľaná viacerými komponentmi súboru údajov ADO (TADOTable, TADOQuery, atď.) prostredníctvom ich vlastností pripojenia.

Na pripojenie k Excelu platný reťazec pripojenia obsahuje iba dve ďalšie informácie - úplnú cestu k zošitu a verziu súboru Excel.

Legitímny reťazec pripojenia by mohol vyzerať takto:

ConnectionString: = 'Poskytovateľ = Microsoft. Jet. OLEDB.4.0; Zdroj údajov = C: \ MyWorkBooks \ myDataBook.xls; Rozšírené vlastnosti = Excel 8.0; ';

Pri pripájaní k externému formátu databázy podporovanému Jetom je potrebné nastaviť rozšírené vlastnosti pripojenia. V našom prípade sa pri pripájaní k „databáze“ programu Excel používajú rozšírené vlastnosti na nastavenie verzie súboru programu Excel.

Pre zošit programu Excel95 je táto hodnota „Excel 5.0“ (bez úvodzoviek); použite „Excel 8.0“ pre Excel 97, Excel 2000, Excel 2002 a ExcelXP.

dôležité: Musíte použiť poskytovateľa Jet 4.0, pretože Jet 3.5 nepodporuje ovládače ISAM. Ak nastavíte poskytovateľa Jet na verziu 3.5, zobrazí sa chyba „Nepodarilo sa nájsť inštalovateľný ISAM“.

Ďalšou vlastnosťou Jet Extended je „HDR =“. „HDR = Áno“ znamená, že v rozsahu je riadok záhlavia, takže Jet nezahrnie prvý riadok výberu do súboru údajov. Ak je zadané „HDR = Nie“, poskytovateľ zahrnie do súboru údajov prvý riadok rozsahu (alebo pomenovaného rozsahu).

Prvý riadok v rozsahu sa štandardne považuje za riadok záhlavia („HDR = Áno“). Preto, ak máte nadpis stĺpca, nemusíte túto hodnotu špecifikovať. Ak nemáte nadpisy stĺpcov, musíte zadať „HDR = Nie“.

Teraz, keď ste všetci pripravení, je to časť, v ktorej sa veci stanú zaujímavými, pretože sme teraz pripravení na nejaký kód. Pozrime sa, ako vytvoriť jednoduchý editor tabuliek Excelu pomocou Delphi a ADO.

Poznámka: Mali by ste pokračovať, aj keď vám chýbajú znalosti o programovaní ADO a Jet. Ako uvidíte, úprava zošita programu Excel je rovnako jednoduchá ako úprava údajov z akejkoľvek štandardnej databázy.

instagram story viewer