Office XP і обмін XML-даними

Зміст



У нашому журналі ми вже писали про те, що нового з'явилося в додатках Microsoft Office XP. Ця стаття присвячена лише одному, але дуже корисного нововведення – підтримці мови XML (Extensible Markup Language), який увійшов в останні роки до числа найпопулярніших індустріальних стандартів і широко застосовується для обміну даними між додатками.


При всій популярності XML на сьогоднішній день відомо не так вже й багато засобів підготовки XML-даних. В даний час XML в тому чи іншому вигляді підтримується переважною більшістю СУБД і засобів розробки, проте утиліти маніпуляції XML-даними з їх комплектів поставки – далеко не самий відповідний інструмент для кінцевих користувачів. Тому включення до Office XP (а саме – в Excel і Access) можливості збереження документів у форматі XML, так само як і читання XML-даних, представляється досить своєчасним.


Обмін XML-даними з Excel 2002


Де і як можна застосовувати підтримку XML в Excel? Один з типових прикладів – аналіз за допомогою Excel (або за допомогою додатків – контролерів автоматизації Excel) даних, отриманих з декількох різнорідних джерел, наприклад з BizTalk Server або з додатків для інших операційних систем, або надсилання даних з робочої книги Excel у такі додатки. Перевага такого підходу в порівнянні з застосуванням XML-редакторів очевидно: Excel на відміну від XML-редакторів, добре знайома багатьом користувачам і розробникам.


Відкриття та збереження XML-документів


Спробуємо зберегти робочу книгу Excel (рис. 1) у вигляді XML-документа, вибравши відповідний його тип – XML Spreadsheet – у діалозі збереження файлу. У цьому випадку робоча книга буде збережена в XML-файлі, структура якого заснована на схемі, розробленої Microsoft.

Рис. 5. Діалог експорту об'єктів Access у документ XML


Крім таблиць у формат XML (з можливим одночасним створенням XSD-схеми) можна експортувати результати запитів, звіти, форми. При необхідності можна зберегти структуру таблиці, запиту, форми або звіту у файлі, що містить відомості не тільки про типи полів, але й про те, як здійснюється з'єднання з джерелом даних і яким чином ці дані повинні бути представлені. Для форм і звітів такий файл зберігається у вигляді коду мовою ReportML, спеціально розробленому Microsoft для XML-опису об'єктів баз даних Access. ReportML містить набір тегів для опису елементів форм, звітів і сторінок доступу до даних і застосовується для перетворення збережених звітів і форм в сторінки доступу до даних.


Імпорт і експорт XML-документів за допомогою VBA


Імпорт XML-документа в VBA може бути здійснений за допомогою методу ImportXML об'єкта Application:


Application.ImportXML “D:article.xml”, acStructureAndData


Другий параметр представляє собою константу, приймаючу наступні значення: acStructureOnly – імпортувати тільки структуру даних; acStructureAndData – імпортувати і структуру, і дані; acAppendData – Додати дані до вже існуючої таблиці. Таким чином, список параметрів повністю відповідає опцій, вибираним при імпорті файлів (див. рис. 3).


Експорт XML-документа в VBA можна здійснювати за допомогою методу ExportXML об'єкта Application:

Application.ExportXML acExportTable, "Article", "D: article.xml", "D: article.xsd" 

Перший параметр цього методу вказує, який саме об'єкт експортується – форма, запит, таблиця або звіт. Якщо експорт здійснюється з проекту Access, для експорту також доступні подання і збережені процедури MSDE. Другий параметр вказує ім'я експортованого об'єкта, третій і четвертий – імена XML-і XSD-файлів (останній може бути опущений). Цей метод містить ще кілька необов'язкових параметрів, описують деталі експорту, про які було сказано в попередньому розділі.


Зверніть увагу, що експортувати таблиці і звіти в формат XDR (як уже говорилося вище, він нерідко застосовується для обміну даними з іншими ADO-додатками) за допомогою методу ExportXML, так само як і імпортувати такі дані за допомогою ImportXML, не вдасться. Проте для цієї мети можна створити об'єкт типу ADO Recordset, виконати запит, що заповнює його даними, і потім зберегти в XDR-файлі:

Set rs = New Recordset
rs.Open “SELECT * FROM Article”, CurrentProject.Connection
rs.Save “D:Article.xml”, adPersistXML

Прочитати XDR-файл можна за допомогою методу Open того ж об'єкта ADO Recordset – цей метод завантажує XDR-файл у буфер об'єкта Recordset:

Set rs = New Recordset
rs.Open “D:Article.xml”

Далі з об'єктом Recordset можна робити все що завгодно – додавати, видаляти, змінювати записи, додавати його дані в наявні таблиці.


Висновок


У цій статті ми розглянули підтримку обміну XML-даними в деяких додатках Office XP. Ми розповіли про можливості читання та збереження XML-документів в Excel 2002, а також про можливості та способи імпорту XML-даних в Access і експорту таблиць, запитів, форм і звітів Access у XML-документи. Ми також з'ясували, які об'єкти і методи дозволяють здійснювати ці дії у VBA-програмах.


Відзначимо, однак, що XML застосовується в самому Office XP не тільки для обміну даними з іншими додатками, але і для власних, «внутрішніх», цілей, зокрема для створення смарт-тегів. Але про це ми розповімо наступного разу.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*