Az MS Excel munkalapok elérése és kezelése a Delphi segítségével

Ez a lépésről lépésre bemutatja, hogyan lehet csatlakozni a Microsoft Excelhez, kinyomtatni a lapon tárolt adatokat és engedélyezni az adatok szerkesztését a DBGrid használatával. Talál egy listát a leggyakoribb hibákról is, amelyek a folyamat során megjelenhetnek, valamint arról, hogyan kell kezelni azokat.

Mi vonatkozik alább:

  • Az Excel és az Excel közötti adatátviteli módszerek Delphi. Hogyan lehet csatlakozni az Excel programhoz az HŰHÓ (ActiveX Data Objects) és a Delphi.
  • Excel táblázatkezelő létrehozása Delphi és ADO használatával
  • Az adatok letöltése az Excelből. Táblázat (vagy tartomány) hivatkozása az Excel munkafüzetben.
  • Vita az Excel mező (oszlop) típusairól
  • Az Excel lapok módosítása: sorok szerkesztése, hozzáadása és törlése.
  • Adatok átvitele a Delphi alkalmazásból az Excelbe. Hogyan hozhat létre munkalapot, és kitölti azt egy MS Access adatbázis egyedi adataival?

Csatlakozás a Microsoft Excelhez

A Microsoft Excel nagy teljesítményű táblázatkezelő és adatelemző eszköz. Mivel az Excel munkalap sorai és oszlopai szorosan kapcsolódnak az adatbázis-táblázat soraihoz és oszlopaihoz, sok fejlesztő helyénvalónak tartja adatainak elemzését Excel Excel munkafüzetbe; majd az adatok visszakeresése az alkalmazásba utána.

instagram viewer

Az alkalmazás és az Excel közötti adatcsere leggyakrabban alkalmazott megközelítése Automatizálás. Az automatizálás lehetővé teszi az Excel adatok elolvasását az Excel Object Model segítségével, hogy belemerülhessen a munkalapba, kibonthassa az adatait, és rácsszerű komponensben, azaz a DBGrid vagy a StringGrid megjeleníthesse azokat.

Az automatizálás biztosítja a legnagyobb rugalmasságot az adatok munkafüzetben való megtalálásakor, valamint a munkalap formázásának és a futási időn belüli különböző beállításoknak a lehetőségét.

Az adatok automatizálás nélküli átvitele az Excel programba és az Excel programból, más módszerekkel, például:

  • Írjon adatokat vesszővel elválasztott szövegfájlba, és hagyja, hogy az Excel elemzi a fájlt cellákba
  • Adatok továbbítása a DDE (dinamikus adatcsere) használatával
  • Adatok átvitele a munkalapra és az onnan az ADO segítségével

Adatátvitel ADO segítségével

Mivel az Excel JET OLE DB kompatibilis, az ADO (dbGO vagy AdoExpress) használatával kapcsolódhat a Delphi-hez, majd töltse le a a munkalap adatai egy ADO adatkészletbe egy SQL lekérdezés kiadásával (ugyanúgy, mintha egy adatállományt bármely adatbázishoz megnyitna) asztal).

Ilyen módon az ADODataset objektum összes módszere és szolgáltatása elérhető az Excel adatok feldolgozásához. Más szavakkal, az ADO-összetevők segítségével létrehozhat egy alkalmazást, amely adatbázisként Excel munkafüzetet használhat. Egy másik fontos tény, hogy az Excel folyamaton kívüli ActiveX szerver. Az ADO folyamatban fut, és megtakarítja a költséges, a folyamaton kívüli hívások költségeit.

Amikor az ADO segítségével csatlakozik az Excelhez, csak nyers adatokat cserélhet a munkafüzetbe és a munkafüzetből. Az ADO-kapcsolat nem használható a lapok formázására vagy a képletek cellákra történő végrehajtására. Ha azonban az adatokat egy előre formázott munkalapra továbbítja, akkor a formátum megmarad. Miután az adatokat beillesztették az alkalmazásból az Excelbe, bármilyen feltételes formázást elvégezhet egy (előre rögzített) makró segítségével a munkalapon.

Az ADO-val csatlakozhat az Excelhez az MDAC részét képező két OLE DB szolgáltatóval: a Microsoft Jet OLE DB szolgáltatóval vagy a Microsoft OLE DB szolgáltatóval az ODBC illesztőprogramokkal. Összpontosítunk a Jet OLE DB szolgáltatóra, amely az Excel munkafüzetek adataihoz telepíthető, indexelt szekvenciális hozzáférési módszer (ISAM) illesztőprogramokon keresztül érhető el.

Tipp: Lásd a Kezdő tanfolyam Delphi-be ADO adatbázis-programozás, ha még nem ismeri az ADO-t.

A ConnectionString varázslat

A ConnectionString tulajdonság megmondja az ADO-nak, hogyan kell csatlakozni az adatforráshoz. A ConnectionStringhez használt érték egy vagy több argumentumból áll, amelyeket az ADO használ a kapcsolat létrehozására.

Delphiben a TADOConnection összetevő beágyazja az ADO kapcsolat objektumát; megosztható több ADO adatkészlettel (TADOTable, TADOQuery stb.) a kapcsolat tulajdonságain keresztül.

Az Excelhez való csatlakozáshoz egy érvényes kapcsolati karakterlánc csak két további információt tartalmaz - a munkafüzet teljes elérési útját és az Excel fájl verzióját.

A legális kapcsolati karakterlánc így néz ki:

ConnectionString: = 'Szolgáltató = Microsoft. Vadászgép. OLEDB.4.0; Adatforrás = C: \ MyWorkBooks \ myDataBook.xls; Bővített tulajdonságok = Excel 8.0; ';

Ha csatlakozik egy külső adatbázis-formátumhoz, amelyet a Jet támogat, a kapcsolat kiterjesztett tulajdonságait be kell állítani. Esetünkben, amikor csatlakozik egy Excel "adatbázishoz", a kiterjesztett tulajdonságokkal állíthatjuk be az Excel fájl verzióját.

Egy Excel95 munkafüzetnél ez az érték "Excel 5.0" (idézőjelek nélkül); használja az "Excel 8.0" szoftvert az Excel 97, Excel 2000, Excel 2002 és ExcelXP programokhoz.

Fontos: Használnia kell a Jet 4.0 szolgáltatót, mivel a Jet 3.5 nem támogatja az ISAM illesztőprogramokat. Ha a Jet szolgáltatót 3.5-ös verzióra állítja, akkor a "Nem található a telepíthető ISAM" hibát kapja.

Egy másik Jet kiterjesztett tulajdonság a "HDR =". "HDR = Yes" azt jelenti, hogy van egy fejléc sor a tartományban, így a Jet nem tartalmazza a kiválasztás első sorát az adatkészletbe. Ha a "HDR = Nem" van megadva, akkor a szolgáltató a tartomány (vagy elnevezett tartomány) első sorát tartalmazza az adatkészletbe.

A tartomány első sorát alapértelmezés szerint fejléc sornak tekintik ("HDR = Igen"). Ezért, ha oszlopfejléce van, akkor nem kell megadnia ezt az értéket. Ha nem rendelkeznek oszlopfejlécekkel, meg kell adnia a "HDR = Nem" értéket.

Most, hogy készen állsz, ez a rész, ahol a dolgok érdekessé válnak, mivel készen állunk valamilyen kódra. Lássuk, hogyan lehet létrehozni egy egyszerű Excel Spreadsheet szerkesztőt a Delphi és az ADO használatával.

Jegyzet: Folytassa akkor is, ha nincs ismerete az ADO és a Jet programozásról. Mint látni fogja, az Excel munkafüzet szerkesztése olyan egyszerű, mint az adatok szerkesztése bármely szokásos adatbázisból.

instagram story viewer