Applies ToExcel для Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Для импорта и экспорта данных XML в Excel удобно использовать карту XML, которая связывает XML-элементы с данными в ячейках для получения нужных результатов. Чтобы создать такую карту, нужны файл схемы XML (XSD-файл) и файл данных XML (XML-файл). После создания карты XML можно сопоставить XML-элементы нужным образом.

Совет: Дополнительные сведения об использовании XML в Excel см. в этом обзоре XML в Excel.

Поиск или создание файлов схемы XML и данных XML

Файлы схемы XML и данных XML уже могут быть доступны, если они были созданы другой базой данных или приложением. Например, у вас могут быть бизнес-приложение, которое экспортирует данные в эти форматы XML-файлов, коммерческий веб-сайт или веб-служба, которые поставляют такие XML-файлы, или пользовательское приложение, разработанное в вашем ИТ-отделе, которое автоматически создает такие XML-файлы.

Если нужные XML-файлы отсутствуют, их можно создать, сохранив в текстовом файле данные, которые требуется использовать. Затем с помощью Access и Excel этот текстовый файл можно преобразовать в нужные XML-файлы. Ниже описано, как это сделать.

Access

  1. Импортируйте текстовый файл, который требуется преобразовать, и свяжите его с новой таблицей.

    1. Выберите команду Файл > Открыть.

    2. В диалоговом окне Открытие найдите и откройте базу данных, в которой требуется создать новую таблицу.

    3. На вкладке Внешние данные выберите команду Текстовый файл и выполните инструкции для каждого шага, связав таблицу с нужным текстовым файлом.

      Access создает новую таблицу, имя которой отображается в области навигации.

  2. Экспортируйте данные из связанной таблицы в файл XML-данных и файл схемы XML.

    1. На вкладке Внешние данные выберите команду XML-файл (в группе Экспорт).

    2. В диалоговом окне Экспорт — XML-файл укажите имя и формат файла и нажмите кнопку ОК.

  3. Выйдите из Access.

Excel

  1. Создайте карту XML на основе файла схемы XML, экспортированного из Access.

    Если открывается диалоговое окно Несколько корней, выберите элемент dataroot, чтобы создать XML-таблицу.

  2. Создайте XML-таблицу, сопоставив элемент dataroot. Дополнительные сведения см. в разделе Сопоставление XML-элементов.

  3. Импортируйте XML-файл, экспортированный из Access.

Примечания: 

  • В Excel не поддерживаются некоторые типы конструкций элементов схем XML. Ниже перечислены конструкции элементов схем XML, которые невозможно импортировать в Excel.

  • <любые>    Этот элемент позволяет вам включить в схему элементы, не объявленные в схеме.

  • <>anyAttribute     Этот элемент позволяет вам включить в схему атрибуты, не объявленные в схеме.

  • Рекурсивные структуры.    Типичный пример рекурсивной структуры — иерархия сотрудников и руководителей, в которой одни и те же XML-элементы вложены на нескольких уровнях. В Excel не поддерживаются рекурсивные структуры глубиной более одного уровня.

  • Абстрактные элементы.    Эти элементы объявляются в схеме, но никогда не используются как элементы. Абстрактные элементы зависят от других элементов, которыми они заменяются.

  • Группы подстановки.    Эти группы позволяют менять элемент везде, где встречается ссылка на него. Принадлежность элемента к группе подстановки другого элемента указывается с помощью атрибута <substitutionGroup>.

  • Смешанное содержимое.    Это содержимое объявляется при определении сложного типа с помощью параметра mixed="true". Excel не поддерживает простое содержимое сложного типа, но поддерживает дочерние теги и атрибуты, определенные в этом сложном типе.

Использование образцов файлов схемы XML и данных XML

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

  1. Выделите текст примера файла, который требуется скопировать, и нажмите клавиши CTRL+C.

  2. Запустите Блокнот и нажмите клавиши CTRL+V, чтобы вставить текст примера.

  3. Нажмите клавиши CTRL+S, чтобы сохранить файл с именем и расширением, указанными для скопированного образца данных.

  4. Нажмите клавиши CTRL+N в приложении Блокнот и повторите шаги 1–3, чтобы создать файл для текста второго примера.

  5. Выйдите из Блокнота.

Образец данных XML (Расходы.xml)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
  <EmployeeInfo>
    <Name>Jane Winston</Name>
    <Date>2001-01-01</Date>
    <Code>0001</Code>
  </EmployeeInfo>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Airfare</Description>
    <Amount>500.34</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Hotel</Description>
    <Amount>200</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Taxi Fare</Description>
    <Amount>100.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Long Distance Phone Charges</Description>
    <Amount>57.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Food</Description>
    <Amount>82.19</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Food</Description>
    <Amount>17.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Personal Items</Description>
    <Amount>32.54</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Taxi Fare</Description>
    <Amount>75.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Food</Description>
    <Amount>36.45</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>New Suit</Description>
    <Amount>750.00</Amount>
  </ExpenseItem>
</Root>

Образец схемы XML (Расходы.xsd)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="1" name="EmployeeInfo">
          <xsd:complexType>
            <xsd:all>
              <xsd:element minOccurs="0" maxOccurs="1" name="Name" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Date" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Code" />
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="ExpenseItem">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Date" type="xsd:date"/>
              <xsd:element name="Description" type="xsd:string"/>
              <xsd:element name="Amount" type="xsd:decimal" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Создание карты XML

Чтобы создать карту XML, добавьте схему XML в книгу. Можно скопировать схему из файла схемы XML (XSD-файла) или позволить Excel попытаться построить такую схему на основе файла данных XML (XML-файла).

  1. На вкладке Разработчик выберите команду Источник.

    Команды XML на вкладке "Разработчик"

    Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

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

  3. В списке Папка выберите диск, папку или веб-адрес, где расположен нужный файл.

  4. Щелкните файл, а затем нажмите кнопку Открыть.

    • Для файла схемы XML будет создана карта XML, основанная на данной схеме XML. Если откроется диалоговое окно Несколько корней, выберите один из корневых узлов, определенных в файле схемы XML.

    • Для файла данных XML Excel попытается определить схему XML на основе данных, а затем создать карту XML.

  5. Нажмите кнопку ОК.

    Карта XML отображается в области задач Источник XML.

Сопоставление XML-элементов

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

  1. На вкладке Разработчик выберите команду Источник.

    Команды XML на вкладке "Разработчик"

    Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

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

    Чтобы выделить несмежные элементы, щелкните один из них, а затем, удерживая нажатой клавишу CTRL, поочередно щелкните все нужные элементы.

  3. Чтобы сопоставить элементы, выполните указанные ниже действия.

    1. Щелкните выделенные элементы правой кнопкой мыши и выберите команду Сопоставить элемент.

    2. В диалоговом окне Сопоставление XML-элементов выберите ячейку и нажмите кнопку ОК.

      Совет: Вы также можете перетащить выделенные элементы в то место книги, где они должны отображаться.

      Каждый такой элемент будет выделен в области задач XML-источник полужирным шрифтом. Это означает, что данный элемент сопоставлен.

  4. Выберите, как должны обрабатываться подписи данных и заголовки столбцов.

    • При перетаскивании в книгу неповторяющегося XML-элемента для создания отдельно сопоставленной ячейки отображается смарт-тег с тремя командами, которые позволяют управлять расположением заголовка или подписи.

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

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

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

    • При перетаскивании в книгу повторяющегося XML-элемента для создания повторяющихся ячеек в XML-таблице имена XML-элементов автоматически используются в качестве заголовков столбцов этой таблицы. Но эти заголовки столбцов можно изменить на любые другие, редактируя ячейки заголовка столбца.

      В области задач XML-источник нажмите Параметры, чтобы уточнить поведение XML-таблицы.

      Автоматическое объединение элементов при сопоставлении.    Если этот флажок установлен, XML-таблицы будут автоматически расширяться при перетаскивании элемента в ячейку, смежную с этой XML-таблицей.

      Данные с заголовками.    Если этот флажок установлен, существующие данные могут использоваться как заголовки столбцов при сопоставлении повторяющихся элементов листу.

      Примечания: 

      • Если все команды XML затенены и XML-элементы не удается сопоставить с ячейками, возможно, к книге предоставлен общий доступ. Чтобы проверить это и при необходимости отключить общий доступ, на вкладке Рецензирование выберите команду Доступ к книге.

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

      • Если XML-таблицу с данными не удается скопировать в другую книгу, возможно, XML-таблица имеет связанную карту XML, которая определяет структуру данных. Такая карта XML хранится в книге, но при копировании XML-таблицы в новую книгу карта XML не копируется автоматически. Вместо копирования XML-таблицы Excel создает таблицу Excel с такими же данными. Чтобы превратить новую таблицу в XML-таблицу, сделайте следующее.

        1. Добавьте карту XML в новую книгу с помощью XML- или XSD-файла, который использовался при создании исходной карты XML. Эти файлы следует хранить, если вы планируете добавлять карты XML в другие книги.

        2. Сопоставьте эти XML-элементы таблице, чтобы сделать ее XML-таблицей.

      • При сопоставлении повторяющегося XML-элемента с объединенной ячейкой Excel отменяет это объединение. Это ожидаемое поведение, так как повторяющиеся элементы предназначены только для работы с ячейками, которые не объединены.

        С объединенной ячейкой можно сопоставлять отдельные, неповторяющиеся XML-элементы, но сопоставление с такими ячейками повторяющихся XML-элементов (или элементов, содержащих повторяющиеся элементы) не допускается. Объединение ячейки будет отменено, а элемент будет сопоставлен с ячейкой, в которой находится указатель.

Советы: 

  • Вы можете отменить сопоставление XML-элементов, которые вы не хотите использовать, или предотвратить перезапись содержимого ячеек при импорте XML-данных. Например, можно временно отменить сопоставление XML-элемента с одной ячейкой или с повторяющимися ячейками, содержащими формулы, которые не должны быть перезаписаны при импорте XML-файла. После завершения импорта можно снова сопоставить XML-элемент с ячейками формул, чтобы можно было экспортировать результаты формул в XML-файл данных.

  • Чтобы отменить сопоставление XML-элемента, щелкните правой кнопкой мыши его имя в области задач Источник XML и выберите команду Удалить элемент.

Отображение вкладки "Разработчик"

Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.

  1. Выберите Файл > Параметры.

  2. Щелкните категорию Настроить ленту.

  3. В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.

См. также

Удаление сведений карты XML из книги

Добавление или перезапись сопоставленных XML-данных

Общие сведения о XML-файлах в Excel

Импорт данных XML

Экспорт данных XML

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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