Создание файла XML-данных и файла схемы XML из данных листа. Собрать данные из XML файлов в Excel и экспортировать Создание xml файла из excel

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

В последние несколько лет язык XML (Extensible Markup Language, букв, «расширяемый язык разметки») стал распространенным форматом обмена информацией, и нет ничего необычного в том, что люди и организации отправляют друг другу файлы XML. Простые структуры, лежащие в основе XML, делают обмен информацией чрезвычайно простым, причем неважно, используют ли все стороны одно и то же программное обеспечение и браузеры . Однако до недавних пор, хотя общие утилиты XML стали широко распространены, заполнить пробел между документами XML и пользовательским интерфейсом было еще достаточно трудно. Microsoft Excel упрощает эту задачу, по крайней мере, для данных в сетке таблицы.

В этом трюке используются возможности Excel, доступные только в Excel для Windows старше 2003 года. Более ранние версии Excel не поддерживают их; эти возможности не поддерживаются и в существующих, и планируемых версиях Excel для Macintosh.

Начнем с простого документа XML, приведенного в листинге 8.1.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 < ?xml version- "1.0" encoding- "UTF-8" ?> < sales> < sale> < date> 2003 - 10 - 05 < isbn> 0596005385 < title> Off1ce 2003 XML Essentia1s < priceus> 34.95 < quantity> 200 < customer IO= "1025" > Zork"s Books 2003-10-05 0596002920 <priceus>39.95</priceus> <quantity>90</quantity> <customer ID="1025">Zork" </span>s Books</ customer> </ title></ sale> < sale> < date> 2003 - 10 - 05 </ date> < isbn> 0596002378 </ isbn> < title> SAX2</ title> < priceus> 29.95 </ priceus> < quantity> 300 </ quantity> < customer ID= "1025" > Zork<span>"s Books</customer> </sale> <sale> <date>2003-10-05</date> <isbn>0596005385</isbn> <title>Office 2003 XML Essentials 34.95 10 Books of Glory 2003-10-05 0596002920 39.95 25 Books of Glory 2003-10-07 0596002378 SAX2 29.95 5 Books of Glory 2003-10-18 0596002378 SAX2 29.95 15 Title Wave 2003-10-21 0596002920 39.95 15 Books for You

// Листинг 8.1. Простой документ XML для анализа в Excel < ?xml version-"1.0" encoding-"UTF-8"?> 2003-10-05 0596005385 Off1ce 2003 XML Essentia1s 34.95 200 Zork"s Books 2003-10-05 0596002920 XML in a Nutshell. 2nd Edition <priceus>39.95</priceus> <quantity>90</quantity> <customer ID="1025">Zork"s Books</customer> 2003-10-05 0596002378 SAX2 29.95 300 Zork"s Books 2003-10-05 0596005385 Office 2003 XML Essentials 34.95 10 Books of Glory 2003-10-05 0596002920 XML in a Nutshell, 2nd Edition 39.95 25 Books of Glory 2003-10-07 0596002378 SAX2 29.95 5 Books of Glory 2003-10-18 0596002378 SAX2 29.95 15 Title Wave 2003-10-21 0596002920 XML in a Nutshell. 2nd Edition 39.95 15 Books for You

Этот документ можно открыть непосредственно в Excel командой Файл → Открыть (File → Open). Откроется диалоговое окно (рис. 8.1).

Если вы выберете переключатель XML-список (As an XML list), то увидите предупреждение, что Excel создаст собственную схему для этого документа, не имеющего схемы (рис. 8.2).

Щелкнув кнопку ОК, вы увидите, какой способ Excel выбрал для представления информации в открываемом документе в виде электронной таблицы (рис. 8.3). Обратите внимание, что Excel ожидает встретить формат даты, который используется для элемента даты, поэтому даты, импортированные как 2003-10-05, будут отображаться как 10/5/2003.

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

Раскрывающиеся списки в заголовках столбцов позволяют выбирать способ сортировки данных (по умолчанию данные выводятся в том порядке, в котором они записаны в исходном документе). Можно также включить отображение строки итогов Итог (Total); для этого можно воспользоваться панелью инструментов Список (List) или щелкнуть правой кнопкой мыши в любом месте списка и в контекстном меню выбрать команду Список → Строка итогов (List → Total Row). Когда строка итогов появится, выбрать вид итоговой информации можно будет в раскрывающемся меню (рис. 8.4).

Рис. 8.4. Выбор итогов для списка XML в Excel

Данные можно обновить, добавив при этом в обновляемую область информацию из документа XML с такой же структурой. Если у вас есть еще один документ с такой структурой, можете щелкнуть список правой кнопкой мыши, в контекстном меню выбрать команду XML → Импорт (XML → Import) и выбрать второй документ. Кроме того, после редактирования данные можно экспортировать обратно в файл XML, щелкнув список правой кнопкой мыши и выбрав в контекстном меню команду XML → Экспорт (XML → Export). Это превращает Excel в очень удобный инструмент редактирования простых XML-документов с табличной структурой.

Если данные достаточно простые, вы чаще всего можете доверить Excel выбор способа представления содержимого файла и использовать предусмотренные настройки по умолчанию. Если же данные усложняются, особенно если они содержат даты или текст, который выглядит как числа, то вы, возможно, захотите использовать схемы XML, чтобы указать Excel, как следует читать данные и какие данные подойдут к данной карте. Для нашего документа XML-схема может выглядеть, как в листинге 8.2.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 < ?xml version= "1.0" encoding= "UTF-8" ?> < xs: schema xmlns: xs= "http://www.w3.org/2001/XMLSchema" elementFormDefault= "qualified" > < xs: element name= "sales" > < xs: complextype> < xs: sequence> < xs: element maxOccurs= "unbounded" ref= "sale" > < xs: element name= "sale" > < xs: complextype> < xs: sequence> < xs: element ref= "date" > < xs: element ref= "ISBN" > < xs: element ref= "T1tle" > < xs: element ref= "PriceUS" > < xs: element ref= "quantity" > < xs: element ref= "customer" > < xs: element name= "date" type= "xs:date" > < xs: element name= "ISBN" type= "xs:string" > < xs: element name= "Title" type= "xs:string" > < xs: e1ement name= "PriceUS" type= "xs:decimal" > < xs: element name= "quant1ty" type= "xs:integer" > < xs: element name= "customer" > < xs: complextype mixed= "true" > < xs: attribute name= "ID" use = "required" type= "xs:integer" >

// Листинг 8.2. Схема для данных о продаже книг < ?xml version="1.0" encoding="UTF-8"?>

Обратите внимание, что элемент date определен как дата, а элемент ISBN определен как строка, а не как целое число. Если вы начнете с открытия этой схемы, а не документа, то заставите Excel загружать документ, сохранив ведущий нуль в ISBN.

На этот раз вы создадите список до загрузки документа XML, начав с пустого рабочего листа. Вам понадобится открыть область задач Источник XML (XML Source). Если она еще не открыта, нажмите сочетание клавиш Ctrl+Fl. Затем в раскрывающемся списке вверху области задач выберите Источник XML (XML Source) и вы увидите что-то похожее на рис. 8.6.

Чтобы загрузить схему, щелкните кнопку Карты XML (XML Maps). Откроется диалоговое окно Карты XML (XML Maps) (рис. 8.7).

Щелкните кнопку Добавить (Add), чтобы открыть схему, и выберите схему (рис. 8.8). Если схема не ограничивает документы одним начальным элементом, появится диалоговое окно с просьбой выбрать корневой элемент. Так как документы в этом примере начинаются с элемента sales, выберите «sales».

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

В диалоговом окне Карты XML (XML Maps) Excel сообщит, что схема была добавлена к электронной таблице. Если вы щелкнете кнопку ОК, то вернетесь в главное окно Excel и в области задач Источник XML (XML Source) появится диаграмма, отображающая структуру схемы. Теперь, когда у вас есть структура, можно создать список. Самый простой способ сделать это, особенно с небольшими документами, как наш, - перетащить значок sales на ячейку А1.

Теперь, обустроив дом для данных, нужно заселить его. Можно щелкнуть кнопку Импорт XML-данных (Import XML Data) на панели инструментов Список (List) или щелкнуть правой кнопкой мыши список и в контекстном меню выбрать кнопку XML → Импорт (XML → Import). Если вы выберете файл, который уже открывали ранее (в листинге 8.1), то увидите результат, как на рис. 8.3. Обратите внимание на добавление ведущих нулей к значениям, которые теперь являются текстовыми, как и должно быть.

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

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

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

Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.

Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.

Как создать XML-файл из Excel

XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.

Рассмотрим создание XML-файла на примере производственного календаря.

  1. Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
  2. Создадим и вставим карту XML с необходимой структурой документа.
  3. Экспортируем данные таблицы в XML формат.

Сохраняем в XML файл.

Другие способы получения XML-данных (схемы):

  1. Скачать из базы данных, специализированного бизнес-приложения. Схемы могут предоставляться коммерческими сайтами, службами. Простые варианты находятся в открытом доступе.
  2. Использовать готовые образцы для проверки карт XML. В образцах – основные элементы, структура XML. Копируете – вставляете в программу «Блокнот» - сохраняете с нужным расширением.


Как сохранить файл Excel в формате XML

Один из вариантов:

  1. Нажимаем кнопку Office. Выбираем «Сохранить как» - «Другие форматы».
  2. Назначаем имя. Выбираем место сохранения и тип файла – XML.

Еще варианты:

  1. Скачать конвертер XLC в XML. Либо найти сервис, с помощью которого можно экспортировать файл онлайн.
  2. Скачать с официального сайта Microsoft надстройку XML Tools Add-in. Она в бесплатном доступе.
  3. Открываем новую книгу. Кнопка Office – «Открыть».

Как открыть XML файл в Excel

Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.

Как преобразовать файл XML в Excel

Созданную таблицу редактируем и сохраняем уже в формате Excel.

Как собрать данные из XML файлов в Excel

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

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

Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».


Возможности:

  1. Каждый новый файл будет проверяться программой Excel на соответствие установленной карте (если поставим галочку напротив этого пункта).
  2. Данные могут обновляться. Либо новая информация добавится в существующую таблицу (имеет смысл, если нужно собрать данные из похожих файлов).

Это все ручные способы импорта и экспорта файлов.

Те, кто владеет замечательной программой TextKit, или по крайней мере слышали о ней, (кто не слышал, срочно ) должны были заметить в числе ее возможностей разбор XML-документов в любой шаблон. Т.е, если у нас есть XML документ, мы без проблем стряпаем сайт при помощи ТекстКита.

Остается одна маленькая проблема, как получить этот XML. В действительности, для целей создания сайта можно брать готовые документы различных партнерок, типа МиксМаркета или Озона . Но про них как-нибудь в другой раз. Я расскажу, как получить XML из обычной XLS-таблицы. Фактически, это формат MS Excel.

Владение этим знанием позволит нам делать сайты при помощи ТекстКита из любых баз в Экселе. Работать будем в 2007-м офисе.

1) Загружаем надстройку для работы с XML отсюда .

2) Заходим в главное меню экселя, параметры.

3) В открывшемся меню выбираем «Надстройка». Ищем пункт «Управление», выбираем «Надстройки Excel» и жмем «Перейти»:

4) В открывшемся окне через «Обзор» выбираем нужный нам файл XmlTools.xla , добавляем его в панель и активируем, поставив галочку напротив него.

По умолчанию этот файл хранится в следующей папке на жестком диске:
\Office Samples\OfficeExcel2003XMLToolsAddin.

5) Если вы все сделали правильно, то в «Параметрах» в разделе «Надостройки» вы увидите установленное расширение:

Теперь берем наши данные для создания XML документа и работаем с ними.

1) Жмем на кнопку на панели. Выбираем первый пункт:

2) В появившемся окне выбираем yes/no если наши данные содержат / не содержат заголовка, в моем случае содержат, потому переставляю галочку на yes. Здесь же зажимаем маленькую «пипку», чтобы выбрать ячейки с данными:

3) Протягиванием выбираем данные для создания XML — документа. Отжимаем «пипку» и жмем ОК.

Если все сделали верно, то табличка станет сине-белой, и менюшка здорово изменится:

Ну, уже почти все. Теперь идем в параметры сохранения документа и там выбираем XML — данные.

Собственно, вот и все! Мы получили на выходе готовый XML-документ, который теперь без проблем можем разобрать в парсере . Но про это как-нибудь в другой раз 🙂