ExcelADO показва как да използвате ADO за четене и запис на данни в работни книги на Excel

Обобщена информация

Извадката от ExcelADO. exe илюстрира как можете да използвате ActiveX обекти с данни (ADO) с доставчика на Microsoft Jet OLE DB 4,0, за да четете и пишете данни в работни книги на Microsoft Excel.

Повече информация

Защо да използвам ADO?

Използването на ADO за прехвърляне на данни към или извличане на данни от работна книга на Excel ви дава, разработчикът, няколко предимства пред автоматизацията в Excel:

  • Performance. Microsoft Excel е сървър на ActiveX извън процеса. ADO се изпълнява в процес и пести режийните на скъпите обаждания извън процеса.

  • Скалируемост. За уеб приложения не винаги е желателно да автоматизирате Microsoft Excel. ADO ви представя с по-мащабирано решение за обработка на данни в работна книга.

ADO може да се използва стриктно за прехвърляне на сурови данни към работна книга. Не можете да използвате ADO, за да прилагате формати или формули към клетки. Можете обаче да прехвърляте данни в работна книга, която е предварително форматирана и форматът се запазва. Ако имате нужда от "условно форматиране", след като данните са вмъкнати, можете да постигнете това форматиране с автоматизация или с макрос в работната книга.

Специфични данни за доставчици на "джет OLE DB" за работни книги на Excel

Ядрото на базата данни на Microsoft Jet може да се използва за достъп до данни в други файлови формати на бази данни, като например работни книги на Excel, чрез инсталиране на индекси на премерен последователен метод на достъп (ISAM). За да отворите външни формати, поддържани от доставчика на OLE база данни на Microsoft Jet 4,0, вие задавате типа на базата на данните в разширените свойства на връзката. Доставчикът на OLE база данни поддържа следните типове файлове за работни книги на Microsoft Excel.

  • Excel 3,0

  • Excel 4,0

  • Excel 5,0

  • Excel 8,0

Забележка: Използвайте типа на базата данни източник на 5,0 Excel за microsoft Excel 5,0 и 7,0 (95) и използвайте типа на базата данни източник на Excel 8,0 за microsoft Excel 8,0 (97) и 9,0 (2000) работни книги. Пробата ExcelADO. exe използва работни книги на Excel във формат Excel 97 и Excel 2000. Следните образци показват връзка за ADO към работна книга на Excel 97 (или 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

Конвенции за именуване на таблициИма няколко начина, по които можете да препращате към таблица (или диапазон) в работна книга на Excel:

  • Използвайте името на листа, последвано от знака за долар (например [Лист1 $] или [Моят работен лист $]). Таблицата на работната книга, към която има препратки по този начин, се състои от целия използван диапазон на работния лист.

    oRS.Open "Select * from [Sheet1$]", oConn, adOpenStatic
  • Използвайте диапазон с дефинирано име (например [таблица1]).

    oRS.Open "Select * from Table1", oConn, adOpenStatic
  • Използвайте диапазон с определен адрес (например [Лист1 $ a1: B10]).

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

Заглавки на таблицаПри работните книги на Excel първият ред в диапазон се смята за заглавен ред (или имена на полета) по подразбиране. Ако първият диапазон не съдържа заглавки, можете да зададете HDR = не в разширените свойства във вашия низ на връзка. Ако първият ред не съдържа заглавки, доставчикът на OLE DB автоматично именува полетата вместо вас (където F1 би представлявал първото поле, F2 би представлявало второто поле и т. н.).Типове данниЗа разлика от традиционната база данни, няма директен начин да зададете типовете данни за колоните в таблици на Excel. Вместо това доставчикът на OLE DB сканира ограничен брой редове в дадена колона, за да "отгатне" типа на данните за полето. Броят на редовете, за да се сканират стойности по подразбиране на осем (8) реда; Можете да промените броя на редовете, които да се сканират, като зададете стойност между една (1) и шестнадесет (16) за настройката MAXSCANROWS в разширените свойства на вашия низ на връзка.

Файлове, включени в извадката

Файлът ExcelADO. exe съдържа визуална основна стандарт EXE Project, страници с активен сървър (ASP), Excel 97 и Excel 2000, които действат като шаблони, и база данни на Microsoft Access 2000. Файловете включват следните файлове:стандартни проекти за Visual Basic exe

  • ExcelADO.vbp

  • Form1.frm

  • Form1.frx

Страници на активния сървър

  • EmpData.asp

  • Orders.asp

Работни книги на Microsoft Excel

  • OrdersTemplate.xls

  • EmpDataTemplate.xls

  • ProductsTemplate.xls

  • SourceData.xls

Базата данни на Microsoft Access

  • Data.mdb

Как се използва извадката

Извлечете съдържанието на. exe файла в папка.За да използвате проекта Visual Basic:

  1. Във Visual Basic Отворете файла ExcelADO. vbp.

  2. В менюто Project изберете препраткии след това ЗАДАЙТЕ препратки към Microsoft ADO EXT. за DDL и защита и библиотека с обекти на ActiveX данни на Microsoft. Този примерен код работи с ADO 2,5 и ADO 2,6, така че изберете версията, подходяща за вашия компютър.

  3. Натиснете клавиша F5, за да стартирате програмата. Появява се формуляр за демонстрацията.

  4. Щракнете върху пример 1. Тази извадка създава копие на OrdersTemplate. xls. След това то използва ADO, за да се свърже с работната книга и отваря набор записи в таблица, която е дефиниран диапазон в работната книга. Името на диапазона е Orders_Table. Използва методите ADO AddNew/Update , за да добави записи (или редове) към определения диапазон в работната книга. Когато допълненията на реда са изпълнени, ADO връзката се затваря и работната книга се показва в Microsoft Excel. За да направите това, изпълнете следните стъпки:

    1. В менюто Вмъкване в Excel Изберете именаи след това изберете Дефиниране.

    2. В списъка с дефинирани имена изберете Orders_Table. Забележете, че дефинираното име е нараснало така, че да включва току-що добавените записи. Дефинираното име се използва заедно с функцията OFFSET на Excel, за да се изчисли общата сума на данните, добавени в работния лист.

    3. Излезте от Microsoft Excel и се върнете към приложението Visual Basic.

  5. Щракнете върху пример 2. Тази извадка създава копие на EmpDataTemplate. xls. Използва ADO, за да се свърже с работната книга и използва метода за изпълнение на връзката ADO, за да вмъкне данни (Вмъквай в SQL) в работната книга. Данните се добавят към определени диапазони (или таблици) в работната книга. Когато данните бъдат прехвърлени, връзката се закрива и работната книга, която се показва в Excel. След като прегледате работната книга, излезте от Microsoft Excel и след това се върнете към приложението Visual Basic.

  6. Щракнете върху пример 3. Тази извадка създава копие на ProductsTemplate. xls. Използва разширения за Microsoft ADO 2,1 за DDL и библиотека с обекти за защита (ADOX), за да добави нова таблица (или нов работен лист) в работната книга. След това се получава ADO набор записи за новата таблица и се добавят данни с помощта на методите за AddNew/актуализация . Когато допълненията на реда са изпълнени, ADO връзката се затваря и работната книга се показва в Excel. Тази работна книга съдържа код на макрос на Visual Basic for Applications (VBA) в Отворено събитие за работната книга. Макросът се изпълнява, когато работната книга се отваря; Ако в работната книга съществува работен лист "продукти", кодът на макрос форматира работния лист и след това се изтрива кодът на макроса. Тази техника представя начин за уеб разработчика да се мести при форматиране на код извън уеб сървъра и към клиента. Уеб приложение може да поточно форматирана работна книга, която съдържа данни за клиента, и позволяване на код на макрос, който ще изпълни всяко "условно" форматиране, което може да не е възможно само в един шаблон, който да се изпълнява при клиента.Забележка: за да изследвате кода на макроса, прегледайте модула обекта в VBAProject за ProductsTemplate. xls.

  7. Щракнете върху пример 4. Тази извадка произвежда същите резултати като пример 1, но използваната технология за прехвърляне на данните е малко по-различна. В пример 1 записите (или редовете) се добавят към работния лист един по един. Пример 4 сумира записите в групово, като прикачва таблицата на Excel към база данни на Access и изпълнява заявка за добавяне (или ВМЪКни в... Изберете от), за да добавите записи от таблица в таблицата на Access към таблицата на Excel. След завършване на прехвърлянето таблицата на Excel се отделя от базата данни на Access и работната книга, която се показва в Excel. Затворете Excel и се върнете към приложението Visual Basic.

  8. Последната пример показва как можете да четете данни от работна книга на Excel. Изберете таблица от падащия списък и след това щракнете върху пример 5. В непосредствения прозорец се показва съдържанието на избраната от вас таблица. Ако изберете цял работен лист ("Лист1 $" или "Sheet2 $") за таблицата, прозорецът с незабавни съобщения показва съдържанието на използвания диапазон за този работен лист. Забележете, че използваният диапазон не започва задължително на ред 1, колона 1 на работния лист. Използваният диапазон започва в горната лява част на клетката в работния лист, която съдържа данни. Ако изберете определен адрес за диапазон или зададен диапазон, прозорецът незабавно показва съдържанието само на този диапазон в работния лист.

За да използвате страниците на активния сървър (ASP):

  1. Създайте нова папка с име ExcelADO в началния указател на вашия уеб сървър. Имайте предвид, че пътят по подразбиране за директорията за начало е C:\InetPut\WWWRoot.

  2. Копирайте следните файлове в папката, която създадохте в предишната стъпка:

    • EmpData.asp

    • Orders.asp

    • Data.mdb

    • EmpDataTemplate.xls

    • OrdersTemplate.xls

  3. ASP скриптовете в тази извадка създават копия на шаблоните за работна книга с метода за Копиране на FileSystemObject. За да успее методът за Копиране , клиентът, който осъществява достъп до сценария, трябва да има достъп до папката, която съдържа ASP.

  4. Придвижете се до orders. ASP (т. е. http://YourServer/ExcelADO/Orders.ASP) и имайте предвид, че браузърът показва работна книга на Excel, подобна на тази в пример 1 на приложението Visual Basic.

  5. Придвижете се до EmpData. ASP (т. е. http://YourServer/ExcelADO/EmpData.ASP) и имайте предвид, че браузърът показва работна книга на Excel, подобна на тази в пример 2 от приложението Visual Basic.

(в) Microsoft Corporation 2000, всички права запазени. Участия от Лори б. Търнър, Microsoft Corporation.

Препратки

За допълнителна информация щракнете върху номерата по-долу, за да видите статиите в базата знания на Microsoft:

195951 HOWTO: заявка и актуализиране на данни на Excel чрез ADO от ASP

194124 НРБ: стойности на Excel, върнати като NULL чрез ДАО OpenRecordset

193998 HOWTO: четете и показвате двоични данни в ASP

247412 Инфо: методи за прехвърляне на данни в Excel от Visual Basic

257819 HOWTO: използвайте ADO с данни на Excel от Visual Basic или VBA

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×