ExcelADO ukazuje, jak pomocí objektů ADO číst a zapisovat data v sešitech Excelu.

Shrnutí

Ukázka ExcelADO. exe ukazuje, jak můžete používat objekty ADO (ActiveX Data Objects) s poskytovatelem Microsoft Jet OLE DB 4,0 ke čtení a zápisu dat do sešitů Microsoft Excelu.

Další informace

Proč používat objekty ADO?

Použití objektů ADO k přenosu dat nebo načtení dat z excelového sešitu vám poskytne vývojář, několik výhod oproti automatizaci do Excelu:

  • Výkon. Microsoft Excel je server ActiveX mimo proces. ADO funguje vnitroprocesově a ukládá režii nákladných mimoprocesových volání.

  • Škálovatelnost. U webových aplikací není vždy vhodné automatizovat aplikaci Microsoft Excel. Objekty ADO vám nabízí více možností, jak s měřítkem manipulovat s daty v sešitu.

Objekty ADO lze použít výhradně k přenosu nezpracovaných dat do sešitu. Objekty ADO nelze použít k použití formátů nebo vzorců u buněk. Můžete však přenést data do sešitu, který je naformátovaný, a zachovat formát. Pokud po vložení dat potřebujete podmíněné formátování, můžete toto formátování provést pomocí automatizace nebo pomocí makra v sešitu.

Specifický zprostředkovatel Jet OLE DB pro excelové sešity

Databázový stroj Microsoft Jet lze použít pro přístup k datům v jiných formátech souborů databáze, jako jsou excelové sešity, pomocí instalovatelných ovladačů ISAM (indexed sekvenčního). Pokud chcete otevřít externí formáty podporované poskytovatelem OLE DB 4,0 Microsoft Jet, zadejte do rozšířených vlastností připojení typ databáze. Zprostředkovatel Jet OLE DB podporuje následující typy databází pro sešity aplikace Microsoft Excel:

  • Excel 3,0

  • Excel 4,0

  • Excel 5,0

  • Excel 8,0

Poznámka: použijte typ zdroje Excel 5,0 pro microsoft Excel 5,0 a 7,0 (95) sešity a použijte zdrojový typ databáze v excelu pro 8,0 (8,0) a 97 (9,0). Ukázka ExcelADO. exe používá sešity aplikace Excel ve formátu Excel 97 a Excel 2000. Následující ukázky ukazují připojení objektů ADO k sešitu Excelu 97 (nebo 2000):

Dim oConn As New ADODB.ConnectionWith oConn    .Provider = "Microsoft.Jet.OLEDB.4.0"    .Properties("Extended Properties").Value = "Excel 8.0"    .Open "C:\Book1.xls"    '....    .CloseEnd With

,

Dim oConn As New ADODB.ConnectionoConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=C:\Book1.xls;" & _           "Extended Properties=""Excel 8.0;"""oConn.Close

Zásady vytváření názvů tabulekExistuje několik způsobů, jak na tabulku (nebo oblast) v excelovém sešitu odkazovat:

  • Použijte název listu následovaný znakem dolaru (například [List1 $] nebo [list $]). Tabulka sešitu, na kterou tento způsob odkazuje, se skládá z celého používaného rozsahu listu.

    oRS.Open "Select * from [Sheet1$]", oConn, adOpenStatic
  • Použijte oblast s definovaným názvem (například [Tabulka1]).

    oRS.Open "Select * from Table1", oConn, adOpenStatic
  • Použijte oblast s konkrétní adresou (například [List1 $ a1: B10]).

    oRS.Open "Select * from [Sheet1$A1:B10]", oConn, adOpenStatic

Záhlaví tabulkyV sešitech aplikace Excel je první řádek oblasti považován za řádek záhlaví (nebo názvy polí) ve výchozím nastavení. Pokud první oblast neobsahuje záhlaví, můžete v připojovacím řetězci určit HDR = ne v rozšířených vlastnostech. Pokud první řádek neobsahuje záhlaví, zprostředkovatel OLE DB automaticky pojmenuje pole (kde F1 by představovaly první pole, F2 by představovalo druhé pole atd.).Datové typyNa rozdíl od tradiční databáze neexistuje přímý způsob, jak určit datové typy sloupců v excelových tabulkách. Zprostředkovatel OLE DB místo toho hledá ve sloupci omezený počet řádků k "odhad" datového typu pole. Počet řádků, které se mají skenovat, ve výchozím nastavení na 8 (8) řádků; Počet prověřovaných řádků můžete změnit tak, že v rozšířených vlastnostech připojovacího řetězce zadáte hodnotu mezi 1 a 16 (16) pro nastavení MaxScanRows .

Soubory zahrnuté ve vzorci

Soubor ExcelADO. exe obsahuje Visual Basic Standard EXE Project, Active Server Pages (ASP), Excel 97 a Excel 2000 sešitů, které fungují jako šablony a databáze Microsoft 2000 Accessu. K dispozici jsou tyto soubory:soubory projektu standardu Visual Basic

  • ExcelADO.vbp

  • Form1.frm

  • Form1.frx

Active Server Pages

  • EmpData.asp

  • Orders.asp

Sešity aplikace Microsoft Excel

  • OrdersTemplate.xls

  • EmpDataTemplate.xls

  • ProductsTemplate.xls

  • SourceData.xls

Databáze aplikace Microsoft Access

  • Data.mdb

Jak používat ukázku

Extrahujte obsah souboru. exe do složky.Pokud chcete použít projekt v jazyce Visual Basic:

  1. V jazyce Visual Basic otevřete soubor ExcelADO. vbp.

  2. V nabídce projekt vyberte References (odkazy) a pak nastavte odkazy na EXT Microsoft ADO ext. for DDL a Security. a Knihovna datových objektů Microsoft ActiveX. Tento ukázkový kód funguje s rozhraním ADO 2,5 i ADO 2,6 a vyberte odpovídající verzi pro váš počítač.

  3. Stisknutím klávesy F5 spusťte program. Zobrazí se formulář pro ukázku.

  4. Klikněte na Ukázka 1. Tento příklad vytvoří kopii souboru OrdersTemplate. xls. Potom pomocí objektů ADO spojí práci se sešitem a otevře sadu záznamů pro tabulku, která je definovaného rozsahu v sešitu. Název oblasti je Orders_Table. Pomocí metod AddNew/Update objektů ADO přidá záznamy (nebo řádky) do definované oblasti sešitu. Po dokončení přidávání řádků se připojení ADO zavře a sešit se zobrazí v Microsoft Excelu. Postupujte takto:

    1. V nabídce Vložit v Excelu vyberte jménaa pak vyberte definovat.

    2. V seznamu definovaných názvů vyberte Orders_Table. Tento definovaný název se zvětšil na zahrnutí nově přidaných záznamů. Definovaný název se používá ve spojení s funkcí POSUNu v Excelu k výpočtu souhrnu dat přidaných do listu.

    3. Ukončete Microsoft Excel a vraťte se do aplikace Visual Basic.

  5. Klikněte na Ukázka 2. Tento příklad vytvoří kopii souboru EmpDataTemplate. xls. Pomocí objektů ADO se spojí se sešitem a pomocí metody Execute připojení ADO můžete vkládat data (INSERT INTO for SQL) do sešitu. V sešitu se přidají data v definovaných oblastech (nebo tabulkách). Když se data přenesou, zavře se připojení a sešit, který se zobrazí v Excelu. Po zkontrolování sešitu ukončete Microsoft Excel a vraťte se do aplikace Visual Basic.

  6. Klikněte na vzorek 3. Tento příklad vytvoří kopii souboru ProductsTemplate. xls. K přidání nové tabulky (nebo nového listu) do sešitu používá rozšíření Microsoft ADO Extensions 2,1 for DDL a Security Object Library (ADOX). Sada záznamů ADO se pak získá pro novou tabulku a data se přidávají pomocí metod AddNew/Update . Po dokončení přidávání řádků se připojení ADO zavře a sešit se zobrazí v Excelu. Sešit obsahuje kód makra jazyka VBA (Visual Basic for Applications) v události Open sešitu. Makro se spustí při otevření sešitu. Pokud v sešitu existuje nový list Products, kód makra tento list zformátuje a kód makra se odstraní. Tento postup představuje způsob, jak může vývojář webu přesunout formátovací kód mimo webový server a do klienta. Webová aplikace by mohla vytvořit datový proud formátovaného sešitu, který obsahuje data, a povolit kód makra, který by mohl mít jakékoli podmíněné formátování, které nemusí být možné v šabloně spustit u klienta.Poznámka: Pokud chcete zkontrolovat kód makra, podívejte se na modul ThisWorkbook v VBAProject pro ProductsTemplate. xls.

  7. Klikněte na vzorek 4. Tento příklad vytvoří stejné výsledky jako vzorek 1, ale technika, která se používá k přenosu dat, se mírně liší. V ukázce 1 se do listu postupně přidávají záznamy (nebo řádky). Ukázka 4 hromadně sečte záznamy připojením excelové tabulky k databázi Accessu a spuštěním přidávacího dotazu (nebo vložení do.. Vyberte od), pokud chcete přidat záznamy z tabulky v Accessové tabulce do excelové tabulky. Po dokončení přenosu se Excelová tabulka odpojí z Accessové databáze a ze sešitu, který se zobrazí v Excelu. Ukončete Excel a vraťte se do aplikace Visual Basic.

  8. Poslední příklad ukazuje, jak můžete číst data ze sešitu aplikace Excel. V rozevíracím seznamu vyberte tabulku a klikněte na Ukázka 5. V okně Immediate se zobrazí obsah tabulky, kterou jste vybrali. Pokud pro tabulku vyberete celý list ("List1 $" nebo "List2 $"), zobrazí se v okně Immediate obsah použitého rozsahu. Všimněte si, že použitá oblast nemusí nutně začínat na řádku 1 ve sloupci 1 listu. Použitá oblast začíná v levém horním rohu listu, která obsahuje data. Pokud vyberete adresu konkrétní oblasti nebo definovanou oblast, zobrazí se v okně Immediate obsah jenom pro tuto oblast listu.

Používání stránek ASP (Active Server Pages):

  1. V domovském adresáři webového serveru vytvořte novou složku s názvem ExcelADO . Upozorňujeme, že výchozí cesta k domovskému adresáři je C:\InetPut\WWWRoot.

  2. Zkopírujte následující soubory do složky, kterou jste vytvořili v předchozím kroku:

    • EmpData.asp

    • Orders.asp

    • Data.mdb

    • EmpDataTemplate.xls

    • OrdersTemplate.xls

  3. Skripty ASP v tomto příkladu vytvářejí kopie šablon sešitu s metodou kopírováníFileSystemObject. Aby metoda copy proběhla úspěšně, musí mít klient, který přistupuje ke skriptu, oprávnění k zápisu do složky, která obsahuje ASP.

  4. Přejděte na Orders. ASP (to je http://YourServer/ExcelADO/Orders.ASP) a v prohlížeči se zobrazí excelový sešit podobný tomu ve vzorci v aplikaci Visual Basic.

  5. Přejděte na EmpData. ASP (http://YourServer/ExcelADO/EmpData.ASP) a Všimněte si, že prohlížeč zobrazí excelový sešit podobný tomu ve vzorci 2 v aplikaci Visual Basic.

(c) Microsoft Corporation 2000, všechna práva vyhrazena. Příspěvky od Lori B. Turner, Microsoft Corporation.

Odkazy

Další informace najdete v následujících článcích znalostní báze Microsoft Knowledge Base:

195951 Postupy: dotazování a aktualizace dat Excelu pomocí objektů ADO z ASP

194124 PRB: hodnoty Excelu vrácené jako NULL pomocí DAO OpenRecordset

193998 Postupy: čtení a zobrazení binárních dat v prostředí ASP

247412 INFO: metody přenosu dat do Excelu v jazyce Visual Basic

257819 Postupy: použití objektů ADO s daty Excelu v jazyce Visual Basic nebo VBA

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×