Kommunikáció a MS Excel Delphi segítségével ole, ASD-soft

Szia Kedves kollégák!

Mindannyian előbb vagy utóbb szembe kell néznie az adatcsere feladatokat alkalmazások MS Office. Egyikük - ez a MS Excel. És ez a kölcsönhatás a MS Office termék Ebben a cikkben tárgyalt.

Az egyik módja, hogy kölcsönhatásba lépnek a Delphi c MS Excel - az, hogy csatlakoztassa azt, mint egy OLE objektumot.

És az első dolog, amit ellenőrizni kell, és ha az MS Excel telepítve van a felhasználó számítógépén, elvileg.
Ehhez használjuk a funkciót CLSIDFromProgID. amely megkeresi a rendszerleíró adatbázisban a osztályazonosítót telt ProgAzon:
Segítség az MSDN: Módszer CLSIDFromProgID
lehetőségek:
pszProgID. POleStr - A string az objektum nevét
CLSID. TCLSID - Pointer TGUID szerkezet, amelynél továbbított az észlelt objektum;
hozam:
HRESULT - Az eredmény, ami lehet:
S_OK - a tárgy található;
CO_E_CLASSSTRING - A regisztrált CLSID ProgID érvénytelen;
REGDB_E_WRITEREGDB - CLSID Hiba a rendszerleíró adatbázisban.
Ezekből az eredményekből arra szükség S_OK.
Funk írási Excel annak meghatározására, hogy a felhasználó:

Ha az Excel telepítve van, akkor csatlakozik hozzá. Megteheti ezt kétféleképpen: GetActiveOleObject - Get a linket egy már futó példányát Excel vagy CreateOleObject - új példányának létrehozása az Excel.
Ha megvan a feladata, adatokat vesz egy futó Excel. akkor kell használni az első lehetőség, más esetekben megpróbál csatlakozni, és ha nem, akkor automatikusan létrejön.
2. Írjunk funkciók csatlakozni, és elkezd egy új XlsConnect XlsStart:
FXlsApp hozzá egy változó típusú Variant. amely tartalmaz egy linket az Excel objektumot.

Most akkor adjunk hozzá egy gombot, hogy kattintson csatlakozni MS Excel segítségével írt funkciók:

Alapértelmezésben az Excel ablak elindította a háttérben. Húr FXlsApp.Visible: = true; Excel segítségével a háttérben látható ablak.

Excel ablak kiürül, és a felvenni kívánt munkafüzetet rá. Ezt használja WorkBooks.Add módszerrel. amely hozzáad egy új munkafüzetet vagy nyitott egy korábban mentett, ha megadjuk a fájl elérési útját.
Add a módszert fogjuk csinálni:

Book hozzá, most megpróbáljuk, hogy írjon valamit benne.

Amennyiben sor - A sorindex, Col - index oszlopon, hogy kezdeni egy.

Amennyiben tartomány - cellatömb, és az A1 - ismerős Excel cella koordinátáit.
Amint lehet megadott koordináta tartományban. Például, a kód

töltse ki az 5-ös szám, az összes sejt az A3 az A10. és a kód

ugyanazt tartományban világoszöld.
Az ellenkező irányban, hogy az, hogy szerezzen adatokat Excel. Ez ugyanígy működik. sor

Jelenít meg üzenetet a tartalmát a cella koordinátáit: string = 5, oszlop = 1.

Miután elvégezte a szükséges számunkra a manipuláció Excel. tudjuk menteni a kapott könyvet egy fájlt a következő paranccsal:

Amennyiben ActiveWorkbook - tényleges könyvet.
És, hogy lezárja az Excel alkalmazás parancsot:

Hogyan értsük ezt a lehetőséget Excel ellenőrzés Delphi nem korlátozódnak. És van még egy nagyon egyszerű módja annak, hogy megtanulják, hogyan kell elvégezni a szükséges intézkedéseket az Excel Delphi.
Úgy hívják - makrók.

Nézzük inkább, hogy úgy írta nekünk itt:
A Selection - válassza ki a tartományban az egyéni tulajdonságok:
HorizontalAligment = xlCenter - Vízszintes orientáció = a központtól.
VerticalAligment = xlBottom - Függőleges orientáció - az alsó széle mentén.
WrapText = False - Wrap szöveg szerint - ki.
Orientation = 0 - Orientation 0 fok.
AddIndent = False - Automatikus behúzás on / off.
IndentLevel = 0 - behúzás szintjét 0.
ShrinkToFit = False - tömörítése szöveg méretét oszlop on / off.
ReadingOrder = xlContext - Eljárás olvasás kontextusában.
MergeCells = False - egyesített cellák on / off
Végződésű - Befejező rész egy külön tartományban.
Selection.Merge - Merge a kijelölt tartomány.

Most megpróbáljuk, hogy összekapcsolják a sejtek Delphi:

Válassza ki a kívánt tartományban minket.

Cellák egyesítése kívánt tulajdonságok. Vagy módszerrel:

Így lehet, hogy a kódot szinte minden kívánt manipuláció.
És ha valamilyen tulajdonság vagy metódus kérdéseket vet fel, segítséget kaphat az MSDN.

Megjegyzés: a különlegessége dolgozó tömbök VBA. Az indexek a tömbök Delphi viszont szögletes zárójelben, míg VBA lesznek a fordulóban. És a kód Delphi

VBA-ban fog kinézni

Az alábbiakban egy kis FAQ a kölcsönhatás Excel Delphi

Hogyan állapítható meg, az értékek állandók Excel alkalmazásra Delphi?

Hogyan tilthatom le az üzeneteket Excel következtetéseket?

Hogyan kap egy listát a könyveket Excel?

Hogyan lehet kikapcsolni a rács?