Создание схемы сопоставления XML в Excel 2010

Баннер быстрых заметок Office

Начало работы с возможностями расширения Excel 2010: создание и использование схем сопоставления Xml в Excel 2010.

Дата последнего изменения: 28 апреля 2015 г.

Применимо к: Excel 2010 | Office 2010 | VBA

В этой статье
Создание XML-файла данных
Создание файла схемы сопоставления XML
Импорт схемы и данных XML в Excel
Дальнейшие действия

Дата публикации: ноябрь 2010 г.

В этом упражнении создается учебный XML-файл данных. Затем одним из двух способов создается схема сопоставления XML, на основе которой далее создается таблица, сопоставленная данным XML. Для выполнения этой задачи необходимо выполнить указанные ниже действия.

  • Создание XML-файла данных

  • Создание файла схемы сопоставления XML

  • Импорт схемы и данных XML в Excel

Создание XML-файла данных

В этой задаче в текстовом редакторе создается XML-файл данных, который будет использоваться далее.

Создание XML-файла данных

  1. Откройте текстовый редактор, например блокнот.

  2. Вставьте через буфер обмена или введите вручную указанный ниже XML-код.

    <?xml version='1.0'?>
    <BookInfo>
       <Book>
          <ISBN>989-0-487-04641-2</ISBN>
          <Title>My World</Title>
          <Author>Nancy Davolio</Author>
          <Quantity>121</Quantity>
       </Book>
       <Book>
          <ISBN>981-0-776-05541-0</ISBN>
          <Title>Get Connected</Title>
          <Author>Janet Leverling</Author>
          <Quantity>435</Quantity>
       </Book>
       <Book>
          <ISBN>999-1-543-02345-2</ISBN>
          <Title>Honesty</Title>
          <Author>Robert Fuller</Author>
          <Quantity>315</Quantity>
       </Book>
    </BookInfo>
    
  3. Сохраните документ в файл C:\BookData.xml.

  4. Закройте текстовый редактор.

Создание файла схемы сопоставления XML

В этой задаче создается пользовательская схема сопоставления XML на языке Microsoft Visual Basic for Applications (VBA). Создать схему можно двумя способами: явным образом записать XML-код шаблона в программе или считать XML-файл в строку и создать схему на основе этой строки.

Создание XSD-кода в Excel путем явной записи XML-кода в программе

  1. Создайте в Excel 2010 пустую книгу.

  2. Откройте редактор Visual Basic, нажав клавиши ALT+F11.

  3. Вставьте общий модуль, нажав кнопку Вставка и выбрав пункт Модуль.

  4. Вставьте через буфер обмена или введите вручную указанный ниже код.

    	Sub Create_XSD()
           Dim StrMyXml As String, MyMap As XmlMap
           Dim StrMySchema As String
           StrMyXml = "< BookInfo >"
           StrMyXml = StrMyXml & "<Book>"
           StrMyXml = StrMyXml & "<ISBN>Text</ISBN>"
           StrMyXml = StrMyXml & "<Title>Text</Title>"
           StrMyXml = StrMyXml & "<Author>Text</Author>"
           StrMyXml = StrMyXml & "<Quantity>999</Quantity>"
           StrMyXml = StrMyXml & "</Book>"
           StrMyXml = StrMyXml & "<Book></Book>"
           StrMyXml = StrMyXml & "</ BookInfo >"
    
           ' Turn off async loading.
           Application.DisplayAlerts = False
           ' Add the string to the XmlMaps collection.
           Set MyMap = ThisWorkbook.XmlMaps.add(StrMyXml)
           Application.DisplayAlerts = True
    
           ' Create an empty file and output the schema.
           StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML
           Open "C:\MySchema.xsd" For Output As #1
           Print #1, StrMySchema
           Close #1
        End Sub
    
  5. Закройте редактор Visual Basic.

  6. Запустите код. На вкладке Разработчик нажмите кнопку Макросы, выберите макрос Create_XSD и нажмите кнопку Выполнить. Просмотрите файл схемы C:\MySchema.xsd. Этот файл будет загружен в Excel для создания сопоставления XML.

Создание схемы в Excel путем считывания данных XML в строку

  1. В пустой книге Excel 2010 откройте редактор Visual Basic, нажав клавиши ALT+F11.

  2. Вставьте общий модуль, нажав кнопку Вставка и выбрав пункт Модуль.

  3. Вставьте через буфер обмена или введите вручную указанный ниже код.

    	Sub Create_XSD2()
           Dim StrMyXml As String, MyMap As XmlMap
           Dim StrMySchema As String
           ' Book.xml is the file created in section one of this topic.
           StrMyXml = "C:\BookData.xml"
    
           ' Turn off async loading.
           Application.DisplayAlerts = False
           ' Add the string to the XmlMaps collection.
           Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml)
           Application.DisplayAlerts = True
    
           ' Create an empty file and output the schema.
           StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML
           Open "C:\BookData2.xsd" For Output As #1
           Print #1, StrMySchema
           Close #1
        End Sub
    
  4. Закройте редактор Visual Basic.

  5. Запустите код. На вкладке Разработчик нажмите кнопку Макросы, выберите макрос Create_XSD и нажмите кнопку Выполнить. Просмотрите файл схемы C:\MySchema.xsd. Этот файл будет загружен в Excel 2010 для создания сопоставления XML.

Импорт схемы и данных XML в Excel

В этой задаче схема, созданная в предыдущем разделе, импортируется в Excel для создания сопоставления XML и последующего импорта XML-файла данных.

Создание сопоставления XML и последующий импорт данных XML в Excel

  1. На вкладке Разработчик в группе XML нажмите кнопку Источник, чтобы открыть область задач Источник XML.

  2. В области задач нажмите кнопку Карты XML.

  3. В диалоговом окне Карты XML нажмите кнопку Добавить, перейдите к файлу BookInfo.xsd и последовательно нажмите кнопки Открыть и ОК.

  4. В области задач Источник XML перетащите узел BookInfo в ячейку A1. При этом на листе будет создана таблица, как показано на рис. 1. При необходимости формат таблицы можно изменить.

    Рис. 1. Таблица, созданная на основе сопоставления XML

    Таблица, созданная на основе сопоставления XML

  5. Импортируйте XML-файл данных. На вкладке Разработчик нажмите кнопку Импорт.

  6. В диалоговом окне Импорт XML перейдите к XML-файлу данных и нажмите кнопку Импорт. Данные будут загружены в форматированную таблицу, как показано на рис. 2.

    Рис. 2. Данные XML, импортированные в таблицу

    Данные XML, импортированные в таблицу

Дальнейшие действия