Для импорта и экспорта данных XML в Excel удобно использовать карту XML, которая связывает XML-элементы с данными в ячейках для получения нужных результатов. Чтобы создать такую карту, нужны файл схемы XML (XSD-файл) и файл данных XML (XML-файл). После создания карты XML можно сопоставить XML-элементы нужным образом.
Совет
Дополнительные сведения об использовании XML в Excel см. в этом обзоре XML в Excel.
- Поиск или создание файлов схемы XML и данных XML
- Использование образцов файлов схемы XML и данных XML
- Создание карты XML
- Сопоставление XML-элементов
Поиск или создание файлов схемы 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-таблицей, сделайте следующее: > 1. Добавьте карту XML в новую книгу с помощью XML- или XSD-файла, который использовался при создании исходной карты XML. Эти файлы следует хранить, если вы планируете добавлять карты XML в другие книги. > 2. Сопоставьте эти XML-элементы таблице, чтобы сделать ее XML-таблицей. > > — При сопоставлении повторяющегося XML-элемента с объединенной ячейкой Excel отменяет ее. Это ожидаемое поведение, так как повторяющиеся элементы предназначены только для работы с ячейками, которые не объединены.
С объединенной ячейкой можно сопоставлять отдельные, неповторяющиеся XML-элементы, но сопоставление с такими ячейками повторяющихся XML-элементов (или элементов, содержащих повторяющиеся элементы) не допускается. Объединение ячейки будет отменено, а элемент будет сопоставлен с ячейкой, в которой находится указатель.
Совет
- Вы можете отменить сопоставление XML-элементов, которые вы не хотите использовать, или предотвратить перезапись содержимого ячеек при импорте XML-данных. Например, можно временно отменить сопоставление XML-элемента с одной ячейкой или с повторяющимися ячейками, содержащими формулы, которые не должны быть перезаписаны при импорте XML-файла. После завершения импорта можно снова сопоставить XML-элемент с ячейками формул, чтобы можно было экспортировать результаты формул в XML-файл данных.
- Чтобы отменить сопоставление XML-элемента, щелкните правой кнопкой мыши его имя в области задач Источник XML и выберите команду Удалить элемент.
Отображение вкладки "Разработчик"
Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.
- Щелкните Параметры файла>.
- Щелкните категорию Настроить ленту.
- В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.
См. также
Удаление сведений карты XML из книги
Добавление или перезапись сопоставленных XML-данных