Ez a módszer egyszerű. Lényege, hogy az objektum Fűrészáru Módszerei:
- Rekord (< ИмяФайла>, < ТипФайлаТаблицы \u003e) az adatok kirakodásához a fájlba;
- Olvas (< ИмяФайла>, < СпособЧтенияЗначений \u003e) Az adatok letöltéséhez a fájlból.
Figyelem!
A rekord módszer () mind az ügyfélen, mind a kiszolgálón elérhető. Az olvasási módszer () csak a kiszolgáló oldalon érhető el. Emlékeznie kell erre
Az ügyfél-kiszolgáló interakció tervezése során.
Tekintsünk egy példát a táblázatos dokumentum mentésére egy fájlba. Szükséges az objektumdokumentum dokumentum létrehozása és kitöltése bármilyen módon, és kirakodás A fájl csak egy sort végez:
Tabdow . Írás (cellulóz, írófa. Xlsx);
Itt Tabdow - formált táblázatos dokumentum, A fájl elérési útja - a kirakodásra vonatkozó fájl neve, Typadail tömeges kutya .xlsx - A létrehozott fájl formátuma. A következő Excel formátumok támogatottak:
- XLS95 - Excel 95 formátum;
- XLS97 - Excel 97 formátum;
- XLSX - Excel 2007 formátum.
Tabo \u003d új fűrészáru;
Tabdow . Olvasni (pull-fájl, promóció.);
Itt A fájl elérési útja - A letölthető Excel fájl elérési útja. Az elismerés előmozdítása Meghatározza, hogyan kell értelmezni a forrásdokumentumból olvasott adatokat. Opciók állnak rendelkezésre:
- Érték;
- Szöveg.
Csere az OLE-n keresztül.
Az OLE automatizálási technológián keresztül történő csere talán a szoftverek leggyakoribb verziója Excel fájlokkal. Ez lehetővé teszi, hogy az Excel által nyújtott teljes funkcionalitást használja, de a többi módszerhez képest lassú munka jellemzi. Az MS Excel telepítése az OLE-en keresztül kell cserélnie:
- A végfelhasználói számítógépen, ha az átváltás az ügyfél oldalán történik;
- Az 1C számítógépes kiszolgálón: Enterprise, ha a csere a szerver oldalán történik.
Példa kirakodás:
// COM objektum létrehozása
Excel \u003d New Comback ("Excel.Application");
// A figyelmeztetések és kérdések kibocsátásának letiltása
Kitűnő . Displaalelerts \u003d hamis;
// új könyv létrehozása
Könyv \u003d Excel. Munkafüzetek. Add ();
// Helymeghatározás az első lapon
Lap \u003d Könyv. Munkalapok (1);// felvételi értékek a cellában
Lap . Sejtek (szerelvények, tekercsek). Érték \u003d iphello;// A fájl mentése
Könyv . Saveas (névfájl);
Kitűnő . Kilépés ();
Excel \u003d 0;
Példák olvasás:
// -- 1.OPCIÓ --
// COM objektum létrehozása
Excel \u003d New Comback ("Excel.Application");
// megnyitó könyv
Könyv \u003d Excel. Munkafüzetek. Nyisd ki ( A fájl elérési útja);
Lap \u003d Könyv. Munkalapok (1);// a könyv bezárása
Könyv . Zárja be (0);// bezárása Excel és a memória kiadása
Kitűnő . Kilépés ();
Excel \u003d 0;// - 2. lehetőség -
// megnyitó könyv
Könyv \u003d Reter objektum ( A fájl elérési útja);
// Helymeghatározás a kívánt lapon
Lap \u003d Könyv. Munkalapok (1);// Olvassa el a sejtértéket, általában itt van a sejtáramkör
Teljesítmény \u003d lap. Sejtek (szerelvények, tekercsek). Érték;// a könyv bezárása
Könyv . Alkalmazás. Quit ();
-Ért kitérő A levél Excel összes befejezett vonala a következő technikákat használhatja:
// -- 1.OPCIÓ --
Mennyiség \u003d lap. Sejtek (1, 1). SpecialCells (11). SOR;
Az A2Rows \u003d 1 ciklus számával
Teljesítmény \u003d lap. Sejtek (szerelvények, tekercsek). Érték.;
Endcycle;// - 2. lehetőség -
Tinker \u003d 0;
Míg az igazság ciklus
Tinetings \u003d + 1 szám;
Teljesítmény \u003d lap. Sejtek (szerelvények, tekercsek). Érték;
Ha nem denominált (elemek)) Azután
Megszakítás;
Vége lett;
Endcycle;
Ahelyett, hogy az összes vonal egymás utáni megkerülése lenne, akkor távolítsa el az összes adatot egy tömbbe És dolgozzon vele. Ez a megközelítés gyorsabb lesz, ha nagy mennyiségű adatot olvas:
Allokém \u003d levél. Sejtek (1, 1). SpecialCells (11). Oszlop;
Vgogostrok \u003d Levél. Sejtek (1, 1). SpecialCells (11). SOR;Vidék \u003d Levél. Tartomány (lap. Cellák (1, 1), lap. Cellák (kihívás, allokém));
Adat \u003d Terület. Érték. Kirak();
Az alábbi táblázat mutatja a legnépszerűbb tulajdonságokat és módszereket az OLE-en keresztül történő működéshez:
törvény | A kód | Megjegyzés |
Dolgozzon az alkalmazással | ||
Alkalmazás alkalmazás ablakának telepítése | Kitűnő . Látható \u003d Hamis; | |
A figyelmeztetések kimeneti módjának beállítása (kimenet / nem kimenet) | Kitűnő . Kijelentkezés. \u003d Hamis; | |
Az alkalmazás bezárása | Kitűnő . Kilépés (); | |
Egy könyvben dolgozik | ||
Új könyv létrehozása | Könyv \u003d Excel. Munkafüzetek. Add.(); | |
Meglévő könyv megnyitása | Könyv \u003d Excel. Munkafüzetek. Nyitott (névfájl); | |
Egy könyv megőrzése | Könyv . Saveas (névfájl); | |
Egy könyv bezárása | Könyv . Zárja be (0); | |
Munka a lapon | ||
Az aktuális lap felszerelése | Lap \u003d Könyv. Munkalapok (szám); | |
Név telepítése | Lap . NAME \u003d NAME; | |
A védelem telepítése | Lap . Védelem.(); | |
A védelem eltávolítása | Lap . Védelem nélkül.(); | |
Az oldal tájolásának beállítása | Lap . Oldal beállítása. Orientation \u003d 2.; | 1 - könyv, 2 - táj |
A bal oldali határ | Lap . Oldal beállítása. Leftmargin \u003d Excel. Centimeterstopoints (Santimeters)); | |
A felső határ telepítése | Lap . Oldal beállítása. Topmargin \u003d Excel. Centimeterstopoints (Santimeters)); | |
A helyes határ meghatározása | Lap . Oldal beállítása. RightMargin \u003d Excel. Centimeterstopoints (Santimeters)); | |
Az alsó határ telepítése | Lap . Oldal beállítása. Bottommargin \u003d Excel. Centimeterstopoints (Santimeters)); | |
Munka sorokkal, hangszórókkal, sejtekkel | ||
Az oszlop szélességének beállítása | Lap . Oszlopok. Columedwidth \u003d Szélesség; | |
Sztring törlése | Lap . Sorok (készlet). Töröl.(); | |
A hangszóró törlése | Lap . Oszlopok. Törlés (); | |
Sejteltávolítás | Lap . Sejtek (szerelvények, tekercsek). Töröl.(); | |
Értékérték | Lap . Sejtek (szerelvények, tekercsek). Érték \u003d érték; | |
A sejtek kombinációja | Lap . Tartomány (lap. Cellák (tekercsek, tekercsek), lap. Cellák (Rodka1, Rolls1)). Összeolvad.(); | |
Font telepítés | Lap . Sejtek (szerelvények, tekercsek). Betűtípus. NAME \u003d NAMESHIFT; | |
Betűméret telepítése | Lap . Sejtek (szerelvények, tekercsek). Betűtípus. Méret \u003d dimenziós; | |
Bold betűtípus telepítése | Lap . Sejtek (szerelvények, tekercsek). Betűtípus. Bátor. = 1 ; | 1 - FAT betűtípus, 0 - Normál |
A Cursiva telepítése | Lap . Sejtek (szerelvények, tekercsek). Betűtípus. Dőlt = 1 ; | 1 - dőlt betű, 0 - normális |
Az aláhúzott betűtípus telepítése | Lap . Sejtek (szerelvények, tekercsek). Betűtípus. Aláhúzás = 2 ; | 2 - aláhúzott, 1 - nem |
Annak érdekében, hogy megtudja, milyen tulajdonságot kell megváltoztatni, vagy milyen módszert lehet hívni makrók Excel. Ha makrót rögzít a szükséges műveletekkel, akkor miután megtekintheti a VBA rögzített makró szoftverkódját.
Comsafearray használatával.
Ha nagy mennyiségű adatot kell kiraknunk 1c-től az Excel-ben, akkor az objektumot használhatja Comsafearray.. Az asszisztens szintaxis definíciója szerint a Comsafearray - objektumhéj többdimenziós tömb felett Safearray. Com. Lehetővé teszi a Safearray létrehozását és használatát a COM objektumok közötti adatok cseréjéhez. Egyszerűen tegye, ez egy sor érték, amelyet az OLE technológiai alkalmazások közötti cserére lehet használni.
// Comsafearray létrehozása.
Massive \u003d New Comsafearray ("vt_variant", allokém, bajnokság);
// Comsafearray kitöltése.
-Ért Oldal \u003d 0 az Ogoskost - 1 cikluson keresztül
-Ért COUNT \u003d 0 az Allocolon - 1 ciklus
Tömeges . SetValue (szám, p);
Endcycle;
Endcycle;
// A Comsafearray értékek Excel lapterületének hozzárendelése
Lap . Tartomány (lap. Cellák (1, 1), lap. Cellák (kihívás, vgathonok)). Érték \u003d masszív;
Csere az ADO-n keresztül.
Az Excel fájl az ADO-val történő cseréje során olyan adatbázis, amelyhez kapcsolódhat az SQL lekérdezésekkel. Az MS Excel telepítése nem szükséges, de szükségszerűen az ODBC illesztőprogram, amelyhez hozzáférés áll rendelkezésre. A használt ODBC-illesztőprogramot a csatlakozási karakterláncot a fájlhoz való meghatározásakor definiáljuk. A rendszerint szükséges illesztőprogram már telepítve van a számítógépen.
Cserélje át az ADO-t észrevehetően gyorsabb csere az OLE-en keresztül, de ha kirakod, akkor nem lehet excel funkcionalitást használni a sejtek tervezéséhez, az oldalak, a képletek feladatait stb.
Példa kirakodás:
Csatlakozás \u003d Új kombolás ("adodb.connection");
Összetett . ConnectionString \u003d "
| Adatforrás \u003d » + Fájl + ";
;
Összetett . Nyisd ki (); // nyitó vegyület// létrehozása Com-objektum a csapat számára
Csapat \u003d új komback ("adodb.command");
Csapat// szöveges szöveg hozzárendelése táblázat létrehozásához
Csapat . CommandText \u003d. "Táblázat létrehozása [List1] (oszlop1 Char (255), oszlop2 dátum, oszlop3 int, oszlop4 lebegés)";
Csapat . Végrehajtja (); // parancs végrehajtása// szöveges hozzárendelési parancs, hogy hozzáadjon egy táblázatot
Csapat . CommandText \u003d. "Helyezzen be [LED1] (oszlop1, oszlop2, oszlop, oszlop, oszlop3, oszlop4, oszlop4) értékek (" abvgdeyo ", '8/11/2017', '12345', '12345,6789');
Team.Execute (); // parancs végrehajtása// törölje a parancsot és zárja le a kapcsolatot
Csapat \u003d meghatározatlan;
Összetett . Bezárás();
Összetett \u003d bizonytalan;
Új lap létrehozásához és szerkezetének kialakításához objektumokat használhat Adox.catalog és Adox.table. Ebben az esetben a kód:
// COM objektum létrehozása egy könyvvel való együttműködéshez
Könyv \u003d Új összegyűjtés ("adox.catalog");
Könyv . Activeconnection \u003d kapcsolat;// COM objektum létrehozása a lapon lévő adatstruktúrával való együttműködéshez
Táblázat \u003d Új COM objektum ("adox.table");
asztal . NAME \u003d "LIST1";
asztal . Oszlopok. ("Oszlop", 202);
asztal . Oszlopok. Hozzáfűzése ("oszlop", 7);
asztal . Oszlopok. ("Oszlop", 5);
asztal . Oszlopok. Hozzáfűzése ("oszlop4", 5);// Hozzon létre egy lapot a könyvben a leírt struktúrával
Könyv . Táblázatok. Függelék (táblázat);
Táblázat \u003d Nincs meghatározva;
Könyv \u003d meghatározatlan;
A módszerben megadott példában
asztal . Oszlopok. Mellékel.("Oszlop1", 202);
a második paraméter az oszlop típusát jelzi. Az opció opcionális, itt található az oszlop típusának néhány értéke:
- 5 - addouple;
- 6 - Adcurrencia;
- 7 - addate;
- 11 - adboolean;
- 202 - Advarwar;
- 203 - Adlongvarwchar.
Példa olvasás:
// COM objektum létrehozása a csatlakozáshoz
Csatlakozás \u003d Új kombolás ("adodb.connection");// Állítsa be a csatlakozási karakterláncot
Összetett . ConnectionString \u003d "
| Provider \u003d Microsoft.ace.oledb.12.0;
| Adatforrás \u003d » + Fájl + ";
| Bővített tulajdonságok \u003d »» Excel 12.0 xml; HDR \u003d igen »»;;
Összetett . Nyisd ki (); // nyitó vegyület// COM objektum létrehozása a mintavételhez
Mintavétel \u003d új kombináció ("adodb.recordset");
Szövegkérés \u003d. "Válassza a * lehetőséget a [SHEET1 $] -ból";// kérés végrehajtása
Minta . Nyitott (szöveges képernyő, kapcsolat);// bypass mintavétel
Még nem minta. EoF () ciklus
Vaccinecoloneque1 \u003d minta. Mezők. Elem ("oszlop1"). Érték. ; // Fellebbezés az oszlop nevével
Vaccinecoloneque2 \u003d minta. Mezők. Elem (0). Érték; // Az oszlop indexe
Minta . Movenenext ();
Endcycle;Minta . Bezárás ();
Mintavétel \u003d nincs meghatározva;
Összetett . Bezárás ();
Vegyület \u003d meghatározatlan;
A csatlakozási karakterláncban a paraméter Hdr Meghatározza, hogy az első sor a lapon érhető el. Opciók lehetségesek:
- Igen - Az első sor az oszlopok nevének tekinthető. A névjegyekkel és az oszlop indexével kapcsolatba léphet az értékekkel.
- Nem - az első sor adatként érzékelhető. Csak az oszlopindexhez fordulhat.
A példákban csak néhány ado objektumot veszünk figyelembe. Az ADO objektummodell az alábbi objektumokból áll:
- Kapcsolat;
- Parancs;
- Felvétel;
- Rekord;
- Mezők;
- Folyam;
- Hibák;
- Paraméterek;
- Tulajdonságok.
Kirakodás programozás nélkül
Az adatok mentése az 1c-ről Excel-ben, nem mindig ajánlatos programozni. Ha a vállalati módban a felhasználó megjelenítheti a kirakodáshoz szükséges adatokat, akkor programozás nélkül lehet menteni az Excel-be.
Táblázási dokumentum mentéséhez (például egy jelentés eredmény) parancsot hívhat Mentés vagy Mentés másként… Főmenü.
A megnyíló ablakban ki kell választania a könyvtárat, a tárolt fájl nevét és formátumát.
A dinamikus listák mentéséhez (például a nómenklatúra listája) szükséges:
- Adatok megjelenítése táblázatos dokumentumhoz a parancs segítségével Még ⇒ lista ...;
- Mentse a táblázatos dokumentumot a kívánt formátumhoz.
A táblázatban bemutatott adatokkal kapcsolatos további munkákhoz bármely verzió 1c rendszeréből származó adatokkal az XLS (X) formátumban menthető.
Minden jó lenne, de amikor az Excel-E-ben nyílik meg, a felhasználó azonnal megérti, hogy valami baj van az asztalnál, igen, igen, nincsenek címkék a könyv könyvében. %)
Tehát az 1C 7. verziójában volt, és a 8. helyen csavart, igen, van előrehaladás, a 8-kE-ben formátumban menthet xLSX, a legújabb Excel verziók natív formátuma.
A probléma megoldása érdekében számos egyszerű manipulációk, az első dolog, ami az elme minden felhasználó kiszáradni az asztal másik formátumra, de nincs szükség van, eredmény, akkor elkezdhetsz copy-paste egy új könyv Excel.
Van egy másik lehetőség, mintha a fejlett felhasználók számára - a beállításokba kerül Excel-i és továbbá csekk jelölést helyeznek meg a "lapok címkéinek" címkéjét. Helyes, de rutin is, az 1C-ből kapott adatok gyakori feldolgozása lapos táblák és további adatelemzés formájában összefoglaló táblázatok és egyéb módok formájában az Excel-ben.
Önmagában ez is ugyanabban az időben, hogy szaladgálni a kullancsok és úgy döntött, egy probléma, beletúrt a kiterjedésű az Internet, például, és vizsgáljunk meg néhány további fejlesztések, kiderült, végre kell hajtani egyszerű (valaki azt Baján , Valaki a CRUTZOWN, azonban az ízek nem vitatják) az automatizálási mechanizmus, amely megoldja a problémát a lapcímkék megjelenítésével.
Mindössze annyit kell használni, hogy az Excel ablak két tulajdonságait használja:
DisplayWorkBookTabs // A könyv Tabratio könyvjelzőinek megjelenítésének jele // A With With Bookmarkok szélességének aránya az ablakgörgetés vízszintes csíkjának szélességéhez (0 (nulla) és 1, az alapértelmezett érték 0,6)
Tabdocumen.ship-up (teljes fájl, tipadail ömlesztett kutya.xls); Excel \u003d New Comback ("Excel.Application"); Excel.workbooks.s.Open (teljes); Excel.visible \u003d 0; Excel.activewendow.displayworkbookTabs \u003d 1; Excel.activewindow.tabratio \u003d 0,6; Fullname \u003d excel.activeworkbook.fullname; Excel.displayalerts \u003d FALSE; Excel.activeworkbook.saveas (fullname, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.Visible \u003d 1; // Ha dolgozni kell a könyvvel
//Excel.Application.Quit () // Ha csak menjen ki
TABDOCUMEN.Ship-up (teljes, "XLS"); Excel \u003d Objektum létrehozása ("Excel.Application"); Excel.workbooks.s.Open (teljes); Excel.visible \u003d 0; Excel.activewendow.displayworkbookTabs \u003d 1; Excel.activewindow.tabratio \u003d 0,6; Fullname \u003d excel.activeworkbook.fullname; Excel.displayalerts \u003d FALSE; Excel.activeworkbook.saveas (fullname, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.Visible \u003d 1; // Ha dolgozni kell a könyvvel
//Excel.Application.Quit () // Ha csak menjen ki
A táblázatban bemutatott adatokkal kapcsolatos további munkákhoz bármely verzió 1c rendszeréből származó adatokkal az XLS (X) formátumban menthető.
Minden jó lenne, de amikor az Excel-E-ben nyílik meg, a felhasználó azonnal megérti, hogy valami baj van az asztalnál, igen, igen, nincsenek címkék a könyv könyvében. %)
Tehát az 1C 7. verziójában volt, és a 8. helyen csavart, igen, van előrehaladás, a 8-kE-ben formátumban menthet xLSX, a legújabb Excel verziók natív formátuma.
A probléma megoldása érdekében számos egyszerű manipulációk, az első dolog, ami az elme minden felhasználó kiszáradni az asztal másik formátumra, de nincs szükség van, eredmény, akkor elkezdhetsz copy-paste egy új könyv Excel.
Van egy másik lehetőség, mintha a fejlett felhasználók számára - a beállításokba kerül Excel-i és továbbá csekk jelölést helyeznek meg a "lapok címkéinek" címkéjét. Helyes, de rutin is, az 1C-ből kapott adatok gyakori feldolgozása lapos táblák és további adatelemzés formájában összefoglaló táblázatok és egyéb módok formájában az Excel-ben.
Önmagában ez is ugyanabban az időben, hogy szaladgálni a kullancsok és úgy döntött, egy probléma, beletúrt a kiterjedésű az Internet, például, és vizsgáljunk meg néhány további fejlesztések, kiderült, végre kell hajtani egyszerű (valaki azt Baján , Valaki a CRUTZOWN, azonban az ízek nem vitatják) az automatizálási mechanizmus, amely megoldja a problémát a lapcímkék megjelenítésével.
Mindössze annyit kell használni, hogy az Excel ablak két tulajdonságait használja:
DisplayWorkBookTabs // A könyv Tabratio könyvjelzőinek megjelenítésének jele // A With With Bookmarkok szélességének aránya az ablakgörgetés vízszintes csíkjának szélességéhez (0 (nulla) és 1, az alapértelmezett érték 0,6)
Tabdocumen.ship-up (teljes fájl, tipadail ömlesztett kutya.xls); Excel \u003d New Comback ("Excel.Application"); Excel.workbooks.s.Open (teljes); Excel.visible \u003d 0; Excel.activewendow.displayworkbookTabs \u003d 1; Excel.activewindow.tabratio \u003d 0,6; Fullname \u003d excel.activeworkbook.fullname; Excel.displayalerts \u003d FALSE; Excel.activeworkbook.saveas (fullname, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.Visible \u003d 1; // Ha dolgozni kell a könyvvel
//Excel.Application.Quit () // Ha csak menjen ki
TABDOCUMEN.Ship-up (teljes, "XLS"); Excel \u003d Objektum létrehozása ("Excel.Application"); Excel.workbooks.s.Open (teljes); Excel.visible \u003d 0; Excel.activewendow.displayworkbookTabs \u003d 1; Excel.activewindow.tabratio \u003d 0,6; Fullname \u003d excel.activeworkbook.fullname; Excel.displayalerts \u003d FALSE; Excel.activeworkbook.saveas (fullname, 18); // 18 - XLS 97-2003; 51 - XLSX 2007-2013 //excel.Visible \u003d 1; // Ha dolgozni kell a könyvvel
//Excel.Application.Quit () // Ha csak menjen ki