Для импорта и экспорта данных 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
-
Импортируйте текстовый файл, который требуется преобразовать, и свяжите его с новой таблицей.
-
Выберите команду Файл > Открыть.
-
В диалоговом окне Открытие найдите и откройте базу данных, в которой требуется создать новую таблицу.
-
На вкладке Внешние данные выберите команду Текстовый файл и выполните инструкции для каждого шага, связав таблицу с нужным текстовым файлом.
Access создает новую таблицу, имя которой отображается в области навигации.
-
-
Экспортируйте данные из связанной таблицы в файл XML-данных и файл схемы XML.
-
На вкладке Внешние данные выберите команду XML-файл (в группе Экспорт).
-
В диалоговом окне Экспорт — XML-файл укажите имя и формат файла и нажмите кнопку ОК.
-
-
Выйдите из Access.
Excel
-
Создайте карту XML на основе файла схемы XML, экспортированного из Access.
Если открывается диалоговое окно Несколько корней, выберите элемент dataroot, чтобы создать XML-таблицу.
-
Создайте XML-таблицу, сопоставив элемент dataroot. Дополнительные сведения см. в разделе Сопоставление XML-элементов.
-
Импортируйте XML-файл, экспортированный из Access.
Примечания:
-
В Excel не поддерживаются некоторые типы конструкций элементов схем XML. Ниже перечислены конструкции элементов схем XML, которые невозможно импортировать в Excel.
-
<любые> Этот элемент позволяет вам включить в схему элементы, не объявленные в схеме.
-
<>anyAttribute Этот элемент позволяет вам включить в схему атрибуты, не объявленные в схеме.
-
Рекурсивные структуры. Типичный пример рекурсивной структуры — иерархия сотрудников и руководителей, в которой одни и те же XML-элементы вложены на нескольких уровнях. В Excel не поддерживаются рекурсивные структуры глубиной более одного уровня.
-
Абстрактные элементы. Эти элементы объявляются в схеме, но никогда не используются как элементы. Абстрактные элементы зависят от других элементов, которыми они заменяются.
-
Группы подстановки. Эти группы позволяют менять элемент везде, где встречается ссылка на него. Принадлежность элемента к группе подстановки другого элемента указывается с помощью атрибута <substitutionGroup>.
-
Смешанное содержимое. Это содержимое объявляется при определении сложного типа с помощью параметра mixed="true". Excel не поддерживает простое содержимое сложного типа, но поддерживает дочерние теги и атрибуты, определенные в этом сложном типе.
Использование образцов файлов схемы XML и данных XML
В приведенном ниже примере данные содержат базовые элементы и структуры XML, которые можно использовать для проверки сопоставления XML, если отсутствуют XML-файлы или текстовые файлы для создания нужных XML-файлов. Вы можете сохранить этот пример данных в файлы на своем компьютере, сделав следующее.
-
Выделите текст примера файла, который требуется скопировать, и нажмите клавиши CTRL+C.
-
Запустите Блокнот и нажмите клавиши CTRL+V, чтобы вставить текст примера.
-
Нажмите клавиши CTRL+S, чтобы сохранить файл с именем и расширением, указанными для скопированного образца данных.
-
Нажмите клавиши CTRL+N в приложении Блокнот и повторите шаги 1–3, чтобы создать файл для текста второго примера.
-
Выйдите из Блокнота.
Образец данных 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-файла).
-
На вкладке Разработчик выберите команду Источник.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".
-
В области задач Источник XML нажмите кнопку Карты XML, а затем нажмите кнопку Добавить.
-
В списке Папка выберите диск, папку или веб-адрес, где расположен нужный файл.
-
Щелкните файл, а затем нажмите кнопку Открыть.
-
Для файла схемы XML будет создана карта XML, основанная на данной схеме XML. Если откроется диалоговое окно Несколько корней, выберите один из корневых узлов, определенных в файле схемы XML.
-
Для файла данных XML Excel попытается определить схему XML на основе данных, а затем создать карту XML.
-
-
Нажмите кнопку ОК.
Карта XML отображается в области задач Источник XML.
Сопоставление XML-элементов
XML-элементы сопоставляются с отдельно сопоставленными ячейками и повторяющимися ячейками в XML-таблицах, что позволяет создать связь между такой ячейкой и элементом XML-данных в схеме XML.
-
На вкладке Разработчик выберите команду Источник.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".
-
В области задач Источник XML выделите элементы, которые требуется сопоставить.
Чтобы выделить несмежные элементы, щелкните один из них, а затем, удерживая нажатой клавишу CTRL, поочередно щелкните все нужные элементы.
-
Чтобы сопоставить элементы, выполните указанные ниже действия.
-
Щелкните выделенные элементы правой кнопкой мыши и выберите команду Сопоставить элемент.
-
В диалоговом окне Сопоставление 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-таблицы в новую книгу карта XML не копируется автоматически. Вместо копирования XML-таблицы Excel создает таблицу Excel с такими же данными. Чтобы превратить новую таблицу в XML-таблицу, сделайте следующее.
-
Добавьте карту XML в новую книгу с помощью XML- или XSD-файла, который использовался при создании исходной карты XML. Эти файлы следует хранить, если вы планируете добавлять карты XML в другие книги.
-
Сопоставьте эти XML-элементы таблице, чтобы сделать ее XML-таблицей.
-
-
При сопоставлении повторяющегося XML-элемента с объединенной ячейкой Excel отменяет это объединение. Это ожидаемое поведение, так как повторяющиеся элементы предназначены только для работы с ячейками, которые не объединены.
С объединенной ячейкой можно сопоставлять отдельные, неповторяющиеся XML-элементы, но сопоставление с такими ячейками повторяющихся XML-элементов (или элементов, содержащих повторяющиеся элементы) не допускается. Объединение ячейки будет отменено, а элемент будет сопоставлен с ячейкой, в которой находится указатель.
-
-
Советы:
-
Вы можете отменить сопоставление XML-элементов, которые вы не хотите использовать, или предотвратить перезапись содержимого ячеек при импорте XML-данных. Например, можно временно отменить сопоставление XML-элемента с одной ячейкой или с повторяющимися ячейками, содержащими формулы, которые не должны быть перезаписаны при импорте XML-файла. После завершения импорта можно снова сопоставить XML-элемент с ячейками формул, чтобы можно было экспортировать результаты формул в XML-файл данных.
-
Чтобы отменить сопоставление XML-элемента, щелкните правой кнопкой мыши его имя в области задач Источник XML и выберите команду Удалить элемент.
Отображение вкладки "Разработчик"
Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.
-
Выберите Файл > Параметры.
-
Щелкните категорию Настроить ленту.
-
В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.
См. также
Удаление сведений карты XML из книги
Добавление или перезапись сопоставленных XML-данных