Содержание
- Excel в xml
- Конвертация форматов Microsoft Excel в XML
- Процедура конвертации
- Способ 1: простое сохранение
- Способ 2: инструменты разработчика
- Экспорт данных XML
- Экспорт данных XML (с не более 65 536 строк)
- Экспорт данных XML (для более 65 536 строк)
- Сохранение данных XML в сопоставленных ячейках в файле данных XML
- Распространенные проблемы при экспорте данных XML
- Эту карту XML можно экспортировать, но некоторые необходимые элементы не сопоставлены
- Невозможно экспортировать карты XML в книге
- Excel не может сохранить книгу, так как в ней нет сопоставленных диапазонов
- Создание файла XML-данных и файла схемы XML из данных листа
- Действие 1. Загрузка надстройки «Средства XML» и ее активация
- Этап 2. Преобразование диапазона ячеек в таблицу XML
- Действие 3. Экспорт XML-таблицы в файл XML-данных (XML)
- Этап 4. Сохранение схемы XML в файле схемы XML (XSD)
- Excel как конвертер XML в XLS, онлайн-сервис как альтернатива
- Способ 1: с помощью программы Excel
- Способ 2: опция «Импорт данных» в Excel
- Способ 3: с помощью интернет-сервиса
- Собрать данные из XML файлов в Excel и экспортировать
- Как создать XML-файл из Excel
- Как сохранить файл Excel в формате XML
- Как открыть XML файл в Excel
- Как преобразовать файл XML в Excel
- Как собрать данные из XML файлов в Excel
Excel в xml
Конвертация форматов Microsoft Excel в XML
Смотрите также 2003 либо веб-страницы.XML – стандарт файла Excel. Теперь его сказать, что Excel на количество строк,Если после нажатия клавиши называемые обычные данные). 2003 и следуйтеПриложение Excel не может не удастся..Примечание: внесения изменений в и кликаем по инструментов разработчика теперь переходим во вкладкуXML – это универсальный С этими форматами для передачи данных
можно сохранить как – это конвертер
Процедура конвертации
которые можно экспортировать. F5 сообщения обНа вкладке указаниям на странице сохранить книгу вXML-таблица содержит смешанное содержимое.Если появится сообщение о Если лист содержит заголовки данные часто бывает кнопке включена.«Файл» формат работы с проблем, как правило, в Сети. Excel XLS. Для этого XML в XLS. При экспорте в ошибке VBA больше
Способ 1: простое сохранение
Надстройки загрузки. файле данных XML,Смешанное содержимое возникает, когда том, что сохранение или метки, отличающиеся нужно экспортировать или«Открыть»Далее открываем таблицу Excel. данными. Его поддерживает не возникает. поддерживает его экспорт по аналогии с
- Рассмотрим, как все XML-файл из Excel не отображается, закройтев группеЗапустите Excel. пока вы не элемент содержит дочерний файла в виде от имен XML-элементов
сохранить данные в. в программе любымПосле этого переходим по множество программ, вЕще варианты: и импорт. предыдущей инструкцией откройте же преобразить формат можно сохранить до редактор Visual Basic,Команды менюНа вкладке
создадите один или элемент и простой данных XML может на карте XML, виде XML-файла.После того, как элементы удобным способом.
пункту том числе изСкачать конвертер XLC вРассмотрим создание XML-файла на
вкладку «Файл», кликните с его помощью: 65 536 строк. Если чтобы вернуться вщелкните стрелку возлеФайл несколько сопоставленных диапазонов. текст за пределами привести к потере то при экспортеВажно: схемы появились вНа её основе нам«Сохранить как…» сферы СУБД. Поэтому XML. Либо найти примере производственного календаря. по «Сохранить как»,
Откройте Excel. файл содержит более книгу. Диапазон ячеек надписивыберите командуЕсли вы добавили в дочернего элемента. Это
предстоит создать схему,. конвертация информации в сервис, с помощью
Способ 2: инструменты разработчика
Сделаем таблицу, по которой укажите директорию, выберитеНа панели нажмите «Файл». 65 536 строк, Excel будет преобразован вСредстваПараметры книгу карту XML, часто бывает вПродолжить XML приложение ExcelПрежде чем экспорт данных с помощью курсора которая формируется вОткрывается окно сохранения. Переходим XML важна именно которого можно экспортировать нужно создать XML формат и сохраните.
- Кликните по опции «Открыть». сможет экспортировать только XML-таблицу., а затем, а затем — пункт для сопоставления XML-элементов случае, когда теги. использует имена XML-элементов. XML, необходимо включить
в соответствующие ячейки любом текстовом редакторе. в ту директорию, с точки зрения файл онлайн. файл в ExcelМожет случиться так, чтоВ появившемся окне «Проводника» первые строки (числоПримечание: нажмите кнопкуНадстройки на листе сделайте форматирования (например, теги
Если откроется небольшое диалоговоеНайдите разность общего количества на вкладке «
наименования столбцов таблицы. Для этих целей в которой желаем, взаимодействия и обменаСкачать с официального сайта и заполним ее вам понадобится конвертер перейдите в директорию строк mod 65 537). Чтобы отобразить все картыПреобразовать диапазон в список. следующее. полужирного начертания) используются окно строк в файлеРазработчикКликаем правой кнопкой мыши
можно использовать и чтобы хранился конвертированный данными между различными Microsoft надстройку XML данными. XLS в XML с XML-файлом и Например, если лист XML в книге, XMLВ Excel 2007 нажмитеНа вкладке для пометки данныхЭкспорт XML и числа 65 537.» на ленте. по полученной таблице. обычный Блокнот Windows, файл. Впрочем, можно приложениями. Excel как Tools Add-in. ОнаСоздадим и вставим карту для НДС, например. откройте его. содержит 70 000 строк, на вкладке.кнопку Microsoft OfficeРазработчик внутри элемента. Дочерний, щелкните карту XML, Обозначим это число Просмотреть вкладку «Разработчик». В контекстном меню
но лучше применять оставить и директорию раз входит в в бесплатном доступе. XML с необходимой В этом случаеДокумент открыт, и вы Excel экспортирует 4464 строкиРазработчикВведите диапазон ячеек си выберите пунктывыберите команду элемент может отображаться которую вы хотите как x.При создании карт XML
последовательно переходим по специализированное приложение для по умолчанию, то число программ, которые
Открываем новую книгу. Кнопка структурой документа. Excel не поможет, можете его прочитать. (70 000 mod 65 537).в группе данными, которые необходимоПараметры Excel
Источник (если он поддерживается использовать, и нажмитеУдалите x строк с и экспорте данных пунктам
. в Excel), но кнопку начала листа Excel. Excel в XML-файлы«XML» с языками разметки предложила сама программа. и даже можетМеняем формат на «файлы XML формат. к другой программе. в XLS-файл, вам одному из следующихнажмите кнопку ссылку в текстовомНадстройкиЕсли вкладка текстовое содержимое теряетсяОКЭкспортируйте лист в виде существует ограничение наи Notepad++. Запускаем эту В этом же выполнять манипуляции с XML». Выбираем нужныйИтак. В данном случае необходимо сделать следующее: советов: 1) используйтеИсточник поле..Разработчик
при импорте данных
Экспорт данных XML
. файла данных XML количество строк, которые«Экспорт…» программу. В ней окне, если возникнет базами данных. Разберемся, файл. Жмем «Открыть».Наша таблица – производственный поговорим об онлайн-сервисеСнова откройте вкладку «Файл». формат XLSX; 2)для отображения областиСовет:В полене отображается, см. и недоступно приЭто диалоговое окно отображается (смотрите в предыдущем можно экспортировать. При. После этого сохраняем
создаем схему. На желание, можно изменить как конвертировать файлыСпособ открытия – XML-таблица. календарь. Convertio:Выберите опцию «Сохранить как». сохраните файл в
задач «Источник XML». Чтобы облегчить ввод правильной
Управление раздел Отображение вкладки экспорте, т. е не только в том разделе процедуры). экспорте в XML-файл
файл в любой нашем примере она наименование файла. Но Эксель в XML. ОК.Создаем в любом текстовомВ любом браузере перейдитеПерейдите в директорию, в формате «Таблица XML В нижней части ссылки на ячейки,выберите «Разработчик». используется ни при случае, если неНажмите кнопку из Excel можно директории. будет выглядеть, как основное внимание нужноСкачать последнюю версиюПоявляется оповещение типа редакторе (например, «Блокнот») на главную страницу которую нужно поместить 2003 (*.xml)» (при области задач «Источник в диалоговом окнеНадстройки ExcelВ области задач прямой, ни при выбрана XML-таблица иЗакрыть сохранить до 65 536
Экспорт данных XML (с не более 65 536 строк)
Как видим, существуют два показано внизу на обратить на поле ExcelЖмем ОК. С полученной
желаемую карту XML данного сервиса. измененный документ. этом будут потеряны XML» нажмите кнопку
нажмите кнопку справа, а затем нажмитеИсточник XML обратной операции. книга содержит несколько, но строк. Если файл основных способа конвертации скриншоте окна Notepad++.
«Тип файла»Конвертация данных в формат таблицей можно работать, структуры для генерацииВыберите способ загрузки файла.В выпадающем списке «Тип
сопоставления); 3) удалитеКарты XML от текстового поля, кнопкувыберите элементы, которыеКарту XML не удастся
карт XML.не сохранить содержит более 65 536
файлов XLS иКак видим, открывающим и. Раскрываем перечень кликом XML не такой как с любым файла сохраним. В Если он расположен файла» определите пункт все строки после
Экспорт данных XML (для более 65 536 строк)
. щелкните левую верхнююНайти вы хотите сопоставить экспортировать, если невозможно
В большом диалоговом окнелист. Снова откройте
строк, Excel сможет XLSX в формат закрывающим тегом для по данному полю.
уж простой процесс, файлом Excel. данном примере буде у вас на «Книга Excel». 65 536 и затем
Если вкладка ячейку диапазона и,. с листом. сохранить отношения сопоставленногоЭкспорт XML
лист Excel. экспортировать только число XML программой Microsoft документа в целомСреди вариантов сохранения ищем так как в
Сохранение данных XML в сопоставленных ячейках в файле данных XML
Меню «Разработчик» — вкладка использовать следующую карту диске, нажмите кнопкуСохраните файл, нажав соответствующую снова выполните экспортРазработчик удерживая кнопку мыши,В диалоговом окнеЧтобы выделить несмежные элементы, элемента с другими
введите в полеУдалите все, кроме первых
строк, определяемое формулой Excel. Первый из служит наименование его ходе должна «Импорт». структуры:
«С компьютера» и кнопку. (при этом сопоставленияне видна, выполните переместите курсор наНадстройки
щелкните один из элементами. Отношение может Имя файла x строк, а ЧСТРОК ОСТАТ 65537. них предельно простой«data-set»«Таблица XML 2003»
быть создана специальнаяВ диалоговом окне выбираемОткрываем инструмент «Разработчик». Диалоговое выберите его в
После всех вышеописанных манипуляций сохранятся, но будут три первых действия, нижнюю правую ячейку.нажмите кнопку них, а затем, не сохраниться по
имя для файла затем экспортируйте в Например, если лист и заключается в. В этой жеили схема (schema.xml). Впрочем, файл XML, который
окно «Источник» на файловом менеджере. Если файл, который изначально потеряны строки в указанных в следующемВ полеОбзор удерживая нажатой клавишу следующим причинам.
данных XML. виде файла данных содержит 70 000 строк, элементарной процедуре сохранения роли для каждой«XML-данные»
для преобразования информации хотим преобразовать. вкладке XML. в «облаке», то имел расширение XML, конце файла).
разделе, чтобы добавитьПервая строка содержит имена, найдите файл
CTRL, поочередно щелкнитеОпределение схемы сопоставленного элементаНажмите кнопку XML (смотрите в Excel экспортирует 4464 строки с заданным расширением строки выступает тег. Выбираем один из в простейший файл
Распространенные проблемы при экспорте данных XML
Нажимаем «Импорт». Программа ExcelЕсли программа Excel не выберите само хранилище,
Эту карту XML можно экспортировать, но некоторые необходимые элементы не сопоставлены
превратится в книгуВыберите любую ячейку в
ее на ленту столбцовXmlTools.xla остальные. содержится в последовательностиЭкспорт
предыдущем разделе процедуры). (70000 ОСТАТ 65537). через функцию«record» этих пунктов. данного формата достаточно предложит самостоятельно создать видит карт XML, а затем файл. Excel, то есть связанной таблице Excel. Excel.
выберите, выберите его и
Перетащите выделенные элементы в со следующими атрибутами:.Эта процедура позволит оставшейся Рекомендуем сделать следующее:«Сохранить как…». Для схемы вполнеПосле этого жмем на иметь под рукой схему на основе их нужно добавить.Документ добавлен и готов будет иметь расширениеНа вкладкеЕсли вкладка
нажмите кнопку то место листа,атрибутПримечание: части строки. На 1) использовать формат. Простота и понятность будет достаточно, если кнопку обычные инструменты сохранения полученных данных. Соглашаемся Жмем «карты XML». к конвертации. Для XLS.НадстройкиРазработчик, если первая строкаОК где они должныmaxoccurs Если лист содержит заголовки
Невозможно экспортировать карты XML в книге
данный момент имеется XLSX; 2) сохранить данного варианта, несомненно, мы возьмем всего«Сохранить» в Excel, а – ОК. Откроется
И указываем путь это из выпадающегоExcel – конвертер XML
в группенедоступна, отобразите ее. содержит данные, или
. отображаться.не равен 1; или метки, отличающиеся два файлы Экспорт файл в формате
являются преимуществами. Но две строки таблицы,. вот для создания окно, где нужно
к нашему файлу списка справа нужно в XLS сКоманды меню Дополнительные сведения см.
ДаПо умолчанию этот файлЕсли вы не добавилипоследовательность содержит более одного
от имен XML-элементов XML, объединяющие Создание «Таблица XML 2003 у него есть а не будем
Таким образом, преобразование файла хорошо структурированного элемента выбрать место для с выше указанной
выбрать формат XML. двумя способами выполнениящелкните стрелку возле в статье Отображение, если первая строка хранится в следующей карту XML в прямого дочернего элемента на карте XML, дубликата исходного листа. (*.xml)» (при этом один очень серьезный переводить её всю
из формата Excel придется основательно повозиться импортируемого файла.
Excel не может сохранить книгу, так как в ней нет сопоставленных диапазонов
схемой карты созданнойНажмите кнопку «Преобразовать». этой задачи. Поэтому элемента вкладки «Разработчик». содержит заголовки столбцов,
папке на жестком книгу или данные или включает в то при экспортеЕсли нужно обеспечить обратную
будут потеряны сопоставления); недостаток. Преобразование выполняется вручную в XML. в XML будет с составлением схемы
Назначаем диапазон для импорта. в текстовом редакторе.После этого файл будет перейдем непосредственно коСредства XML
На вкладке и нажмите кнопку диске: не находятся в себя другой составной
или сохранении данных совместимость с более 3) удалить все без учета определенных Название открывающего и совершено.
и её подключением Лучше брать сДобавить ОК. подготовлен, и вам
второму варианту, которыйи нажмите кнопкуРазработчикОКOffice SamplesOfficeExcel2003XMLToolsAddin. XML-таблице, сохраните книгу объект в качестве XML приложение Excel
Создание файла XML-данных и файла схемы XML из данных листа
ранними версиями функциональности строки после 65 536 стандартов, и поэтому закрывающего тега столбцаКонвертировать формат Excel в к документу. «запасом». Жмем ОК.В правой колонке появляются останется его только подразумевает использование опцииСоздать файлы XSD изв группе.Убедитесь, что флажок в формате книги такого элемента. использует имена XML-элементов. XML, можно сохранить и затем снова файл, конвертируемый таким может быть произвольным, XML можно с
В Excel можно сохранитьСозданную таблицу редактируем и элементы схемы. Их скачать. Convertio – «Импорт данных». Но схемы XML вXMLExcel автоматически создаст схемуXmlTools Excel с поддержкойНеповторяющиеся элементы одного уровняПри экспорте данных XML
Действие 1. Загрузка надстройки «Средства XML» и ее активация
файл в виде выполнить экспорт (при способом, сторонними приложениями но в данном помощью инструментов разработчика данные в формате
сохраняем уже в
нужно перетащить на это не только перед началом надо активной ячейкенажмите кнопку XML, выполнит привязкув списке
макросов (XLSM). с одним и могут появляться сообщения, файла данных XML, этом сопоставления сохранятся, может просто не случае для удобства
на вкладке программы. XML, просто воспользовавшись формате Excel. соответствующие названия столбцов конвертер XLS в включить меню «Разработчик»,.Экспорт
ячеек к схемеДоступные надстройкиПримечание: тем же повторяющимся подобные приведенным ниже. а не использовать но будут потеряны распознаваться. Второй вариант мы предпочли просто При этом, если
менюПринцип сбора информации из таблицы. XML-файлы. Он способен
так как именно
Приложение Excel скопирует схему. и создаст таблицуустановлен, и нажмитеМы стараемся как родительским элементом сопоставленыТакое сообщение может появиться команду
строки в конце предполагает составление карты перевести русскоязычные наименования пользователь все выполнит«Сохранить как…» нескольких XML-файлов такойПроверяем возможен ли экспорт. работать с куда в нем находится
XML и вставитПримечание: XML. кнопку можно оперативнее обеспечивать с разными XML-таблицами. по следующим причинам.Экспорт файла).
XML. В отличие колонок на английский правильно, то на. Правда, нет гарантии, же, как иКогда все элементы будут
Этап 2. Преобразование диапазона ячеек в таблицу XML
большим количеством форматов. нужный инструмент. Далее ее в Блокнот. Если открывается небольшое диалоговоеВажно:ОК вас актуальными справочнымиНесколько повторяющихся элементов сопоставленыНа карте XML, связанной
.На вкладке от первого способа, язык. После того, выходе он получит, что потом все принцип преобразования. Когда сопоставлены, щелкаем правой Просто загружайте файл, нужно сделать следующее:В Блокноте выберите в окно
Если откроется редактор Visual, чтобы загрузить надстройку. материалами на вашем с одной и с этой XML-таблицей,
Нажмите клавиши CTRL+S, чтобыРазработчик таблица, преобразованная по как данные внесены, в отличие от программы будут корректно мы импортируем данные кнопкой мыши по а потом выбирайтеОткройте программу. меню
Экспорт XML Basic и отобразитсяЧтобы убедиться, что надстройка языке. Эта страница той же XML-таблицей, есть один или сохранить файл.нажмите кнопку данной схеме, будет просто сохраняем их предыдущего способа, полноценный работать с файлом, в Excel, одновременно
любой ячейке в формат, в которыйПерейдите в меню «Файл».Файл, содержащее только кнопки
сообщение об ошибке активирована, проверьте, отображается переведена автоматически, поэтому и повторение не несколько необходимых элементов,Это действие гарантирует, чтоЭкспорт
соответствовать всем стандартам через функционал текстового XML-файл, который корректно
который был создан передается карта XML. таблице – XML хотите его преобразить.Следуйте в раздел «Параметры».
пунктОК Visual Basic for
ли на вкладке
ее текст может определено предком.
которые с ней никакие изменения, внесенные. качества XML. Но, редактора в любом будет восприниматься сторонними таким способом. Да В эту же – экспорт.
Вот мы и рассмотрелиОткройте меню «Настройка ленты».Сохранить каки
Applications (VBA), выполнитеНадстройки содержать неточности иДочерние элементы разных родительских не сопоставлены. в книгу, неЕсли вкладка к сожалению, не месте на жестком
приложениями. Но сразу и не во схему можно переноситьСохраняем в XML файл. конверторы XML вПоставьте отметку рядом со.Отмена следующие действия.в категории грамматические ошибки. Для элементов сопоставлены сВ иерархическом списке элементов будут потеряны, еслиРазработчик каждый пользователь сможет
диске в формате нужно сказать, что всех случаях этот и другие данные.Другие способы получения XML-данных XLS и наоборот. строкой «Разработчик», котораяВведите имя и тип
Действие 3. Экспорт XML-таблицы в файл XML-данных (XML)
, щелкните карту XML,Нажмите кнопкуКоманды меню нас важно, чтобы одной и той в области задач
она сохранена вне отображается, см. быстро разобраться с XML под названием не каждому новичку способ работает.Каждый новый файл будет
(схемы): Как можно отметить, находится в правой файла, например которую необходимо использовать,ОКменю эта статья была же XML-таблицей. «Источник XML» необходимые виде файла данных раздел Отображение вкладки нюансами этой процедуры.«schema» может хватить знанийЗапускаем программу Excel. Для привязываться к имеющейсяСкачать из базы данных, для конвертации XML области окна.ProdOrders.xsd
и нажмите кнопку.Средства XML вам полезна. ПросимКроме того, невозможно экспортировать элементы выделены красной
XML. «Разработчик».Автор: Максим Тютюшев
. и умений сразу того, чтобы открыть карте. Каждому элементу специализированного бизнес-приложения. Схемы отлично подходит программаНажмите ОК., и нажмите кнопкуОКВ выделенную строку в. вас уделить пару карту XML, если звездочкой. Она находитсяВыберитеЕсли откроется небольшое диалоговоеПримечание:Опять переходим к программе научится конвертировать данные элемент, подлежащий конвертации в структуре таблицы могут предоставляться коммерческими Excel. Однако онаНужная панель инструментов вынесенаСохранить. Это небольшое диалоговое модуле кода VBAПримечание: секунд и сообщить, она содержит одну в верхнем правомфайл окно Мы стараемся как можно Excel с уже таким способом.
Этап 4. Сохранение схемы XML в файле схемы XML (XSD)
переходим во вкладку соответствует элемент в
сайтами, службами. Простые не может преобразовать в интерфейс программы,. окно удалите из строки Эта надстройка была разработана помогла ли она из следующих конструкций углу значка, который>Экспорт XML
оперативнее обеспечивать вас открытой таблицей. ПеремещаемсяПо умолчанию вкладка инструментов
«Файл» карте. Допускается только варианты находятся в XLS, поэтому для а это означает,При работе с блочными
Экспорт XML «50». Другими словами, для Excel 2003. вам, с помощью схемы XML. расположен слева от
Excel как конвертер XML в XLS, онлайн-сервис как альтернатива
Сохранить как, щелкните карту XML, актуальными справочными материалами во вкладку разработчика отключена. Поэтому,. Далее жмем по одна привязка данных. открытом доступе. этого требуется прибегать что мы можем данными нередко появляетсяотображается только в изменение:
Способ 1: с помощью программы Excel
Документация и пользовательский кнопок внизу страницы.Список списков. элемента. Чтобы сопоставитьи выберите расположение которую вы хотите на вашем языке.«Разработчик» прежде всего, нужно пунктуЧтобы настроить параметры привязки,Использовать готовые образцы для к помощи других приступать к конвертации:
- потребность их конвертации
- том случае, если
- XMLDoc как msxml
- интерфейс ссылаются на Для удобства также В одном списке элементов необходимый элемент, перетащите
для сохранения файла. использовать, и нажмите Эта страница переведена. На ленте в её активировать. Переходим
- «Открыть»
- откройте в меню
- проверки карт XML. программ. В данномПерейдите на вкладку «Разработчик».
- в другие форматы, XML-таблица не выбрана2
- списки, которые в приводим ссылку на
есть другой список его туда, гдеВ Excel 2007 нажмите кнопку автоматически, поэтому ее блоке инструментов во вкладку
Способ 2: опция «Импорт данных» в Excel
. «Разработчик» инструмент «Свойства В образцах – случае это онлайн-сервисНа панели инструментов выберите так сказать, для и книга содержит. DOMDocument50 версиях приложения позднее оригинал (на английском элементов. он должен отображаться.Кнопку Microsoft OfficeОК
- текст может содержать
- «XML»
- «Файл»
- Запускается окно открытия файлов.
- карты». основные элементы, структура Convertio. пункт «Импорт».
- лучшего взаимодействия. В
две или болееКому: Excel 2003 называются языке) .Ненормированные данные.
- Элемент представляет собой рекурсивную
- , щелкните стрелку.
- неточности и грамматическиекликаем по кнопкеи кликаем по
- Переходим в директорию,Возможности: XML. Копируете –Автор: Вадим Матузок
- Откроется окно, в котором этой статье будут карт XML.XMLDoc таблицами Excel.Если необходимо создать файл XML-таблица содержит элемент, который
структуру. рядом с кнопкойЭто диалоговое окно отображается ошибки. Для нас«Источник» пункту где содержится файл,Каждый новый файл будет вставляете в программуMicrosoft Excel – удобный
Способ 3: с помощью интернет-сервиса
необходимо выбрать файл приведены возможные конвертерыВ большом диалоговом окнекак MSXML2 описывается. DOMDocumentДополнительные сведения о работе XML-данных и файл в соответствии сТипичный пример рекурсивной структуры —Сохранить как только в том важно, чтобы эта
- . В открывшемся поле«Параметры» который нам нужен.
- проверяться программой Excel «Блокнот» — сохраняете инструмент для организации формата XML. XML в XLS.Экспорт XMLНажмите клавишу F5 для с этой надстройкой схемы XML из определением в схеме
- иерархия сотрудников ии нажмите кнопку случае, если не статья была вам в левой части
- .
Он должен быть на соответствие установленной с нужным расширением. и структурирования самыхПоявится окно с предложением Другими словами, мыв поле поиска следующей строки, см. в статье диапазона ячеек на должен встречаться один руководителей, в которойДругие форматы
выбрана XML-таблица и полезна. Просим вас окна жмем наВ открывшемся окне параметров в одном из карте (если поставим разнообразных данных. Он создать схему на расскажем о способахИмя файла содержащей текст «XMLDoc Использование надстройки «Средства листе, можно использовать
Собрать данные из XML файлов в Excel и экспортировать
одни и те. книга содержит несколько уделить пару секунд кнопку перемещаемся в подраздел форматов Эксель –
галочку напротив этогоОдин из вариантов: позволяет обрабатывать информацию основе данных. Нажмите преобразования одного форматавведите имя файла As msxml2.DOMDocument50″, нажмите
Как создать XML-файл из Excel
XML» версии 1.1 для версию 1.1 надстройкиmaxoccurs же XML-элементы вложеныВ поле
карт XML. и сообщить, помогла
- «Карты XML…»«Настройка ленты» XLS или XLSX. пункта).Нажимаем кнопку Office. Выбираем
- разными методами, редактировать кнопку ОК. в другой.
- XML-данных. кнопку
- «Средства XML дляприсвоено значение 1).
- на нескольких уровнях.Имя файлаВ большом диалоговом окне ли она вам,.. В правой части Выбираем его иДанные могут обновляться. Либо
- «Сохранить как» - массивы данных.После этого появится второе
- Ввиду того, что ExcelНажмите кнопкуОКВведите данные, для которых Excel 2003″ для При добавлении такого Возможно, вы сопоставиливведите имя файлаЭкспорт XML
- с помощью кнопок
- В открывшемся окне кликаем окна устанавливаем галочку жмем на кнопку новая информация добавится «Другие форматы».
- Рассмотрим возможности использования его
- окно, в котором безупречно работает сЭкспорти измените строку, необходимо создать файл расширения существующих возможностей
элемента в XML-таблицу
все элементы в данных XML.
- в поле внизу страницы. Для по кнопке около значения«Открыть» в существующую таблицу
- Назначаем имя. Выбираем место для формирования и вам нужно определиться файлами блочного формата,. как в предыдущем XML-данных и файл XML в Microsoft
Excel заполнит столбец
Как сохранить файл Excel в формате XML
области задач «Источник
- В спискеИмя файла удобства также приводим
- «Добавить…»«Разработчик», расположенную в нижней
(имеет смысл, если
сохранения и тип обработки файлов веб-приложений. с местом расположения то и расширениеПримечание: пункте. схемы XML. Данные
- таблицы несколькими его XML». Но ExcelТип файлавведите имя файла ссылку на оригинал
- .. После этого жмем части окна. нужно собрать данные
- файла – XML. На конкретном примере
Как открыть XML файл в Excel
- импортируемой таблицы. Кликните XML она может При создании карт XML
- Нажмите F5 еще раз, должны быть представлены
- более поздних версиях.
экземплярами. не поддерживает рекурсивныевыберите тип XML-данных.
Как преобразовать файл XML в Excel
- (на английском языке).Запускается окно выбора источника.
- на кнопкуКак видим, файл был из похожих файлов).
- Сохранить. изучим основы работы по ячейке A1 открыть без проблем. и экспорте данных чтобы найти и в табличном форматеЧтобы скачать надстройку, щелкните
- Выбор. структуры глубиной болееДанные XML
Нажмите кнопкуПосле импорта данных XML, Переходим в директорию
Как собрать данные из XML файлов в Excel
«OK» открыт, а егоЭто все ручные способыЕсли выдает ошибку, книгу с XML в и нажмите ОК. Так что можно в Excel в изменить другие экземпляры в виде столбцов
ссылку Надстройка «Средства Сопоставленный элемент является частью одного уровня, поэтомуи нажмите кнопкуЭкспорт сопоставления данных с расположения схемы составленной
, размещенную в нижней данные отобразились на импорта и экспорта можно сохранить в
- Файл импортируется в программу без зазрения совести XML-файлы существует ограничение строки. и строк (так XML» для Excel
- конструкции схемы . сопоставить все элементыСохранить. ячейками листа и ранее, выбираем её
части окна. Вкладка текущем листе. Опять файлов.
Источник
Содержание
- Процедура конвертации
- Способ 1: простое сохранение
- Способ 2: инструменты разработчика
- Вопросы и ответы
XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.
Процедура конвертации
Конвертация данных в формат XML не такой уж простой процесс, так как в его ходе должна быть создана специальная схема (schema.xml). Впрочем, для преобразования информации в простейший файл данного формата достаточно иметь под рукой обычные инструменты сохранения в Excel, а вот для создания хорошо структурированного элемента придется основательно повозиться с составлением схемы и её подключением к документу.
Способ 1: простое сохранение
В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.
- Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».
- Запускается окно открытия файлов. Переходим в директорию, где содержится файл, который нам нужен. Он должен быть в одном из форматов Эксель – XLS или XLSX. Выбираем его и жмем на кнопку «Открыть», расположенную в нижней части окна.
- Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».
- После этого переходим по пункту «Сохранить как…».
- Открывается окно сохранения. Переходим в ту директорию, в которой желаем, чтобы хранился конвертированный файл. Впрочем, можно оставить и директорию по умолчанию, то есть ту, что предложила сама программа. В этом же окне, если возникнет желание, можно изменить наименование файла. Но основное внимание нужно обратить на поле «Тип файла». Раскрываем перечень кликом по данному полю.
Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.
- После этого жмем на кнопку «Сохранить».
Таким образом, преобразование файла из формата Excel в XML будет совершено.
Способ 2: инструменты разработчика
Конвертировать формат Excel в XML можно с помощью инструментов разработчика на вкладке программы. При этом, если пользователь все выполнит правильно, то на выходе он получит, в отличие от предыдущего способа, полноценный XML-файл, который корректно будет восприниматься сторонними приложениями. Но сразу нужно сказать, что не каждому новичку может хватить знаний и умений сразу научиться конвертировать данные таким способом.
- По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры».
- В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты». В правой части окна устанавливаем галочку около значения «Разработчик». После этого жмем на кнопку «OK», размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
- Далее открываем таблицу Excel в программе любым удобным способом.
- На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки Notepad++. Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.
Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set». В этой же роли для каждой строки выступает тег «record». Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».
- Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик». На ленте в блоке инструментов «XML» кликаем по кнопке «Источник». В открывшемся поле в левой части окна жмем на кнопку «Карты XML…».
- В открывшемся окне кликаем по кнопке «Добавить…».
- Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть».
- После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
- Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «XML» и «Экспорт…». После этого сохраняем файл в любой директории.
Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…». Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.
Еще статьи по данной теме:
Помогла ли Вам статья?
Microsoft Excel makes it easy to import Extensible Markup Language (XML) data that is created from other databases and applications, to map XML elements from an XML schema to worksheet cells, and to export revised XML data for interaction with other databases and applications. Think of these XML features as turning Office Excel into an XML data file generator with a familiar user interface.
In this article
-
Why use XML in Excel?
-
XML data and schema files
-
Key XML and Excel scenarios
-
-
The basic process of using XML data in Excel
-
Working with XML maps
-
Using the XML Source task pane
-
Element types and their icons
-
Working with single-mapped cells
-
Working with repeating cells in XML tables
-
XML map security considerations
-
Importing XML data
-
Working with an inferred schema
-
Exporting XML data
-
Using the Excel macro-enabled Office Open XML Format file
-
Why use XML in Excel?
XML is a technology that is designed for managing and sharing structured data in a human-readable text file. XML follows industry-standard guidelines and can be processed by a variety of databases and applications. Using XML, application designers can create their own customized tags, data structures, and schemas. In short, XML greatly eases the definition, transmission, validation, and interpretation of data between databases, applications, and organizations.
XML data and schema files
Excel works primarily with two types of XML files:
-
XML data files (.xml), which contain the custom tags and structured data.
-
Schema files (.xsd), which contain schema tags that enforce rules, such as data type and validation.
The XML standard also defines Extensible Stylesheet Language Transformation (XSLT) (.xslt) files, which are used to apply styles and transform XML data into different presentation formats. You can apply these transforms before you import XML files into Excel and after you export XML files from Excel. If XSLT files are linked to XML data files that you import into Excel, you do have the option to apply or not apply the formatting before the data is added to the worksheet, but only when you open an XML file by using the Open command from within Excel. Choose the XML Files (*.xml) file type before you click the Open button to see the XML files in the folder.
Key XML and Excel scenarios
By using XML and Excel, you can manage workbooks and data in ways that were previously impossible or very difficult. By using XML maps, you can easily add, identify, and extract specific pieces of business data from Excel documents. For example, an invoice that contains the name and address of a customer or a report that contains last quarter’s financial results are no longer just static reports. You can easily import this information from databases and applications, revise it, and export it to the same or other databases and applications.
The following are key scenarios that the XML features are designed to address:
-
Extend the functionality of existing Excel templates by mapping XML elements onto existing cells. This makes it easier to get XML data into and out of your templates without having to redesign them.
-
Use XML data as input to your existing calculation models by mapping XML elements onto existing worksheets.
-
Import XML data files into a new workbook.
-
Import XML data from a Web service into your Excel worksheet.
-
Export data in mapped cells to XML data files independent from other data in the workbook.
Top of Page
The basic process of using XML data in Excel
The following diagram shows how the different files and operations work together when you use XML with Excel. Essentially, there are five phases to the process:
Adding an XML schema file (.xsd) to a workbook
Mapping XML schema elements to individual cells or XML tables
Importing an XML data file (.xml) and binding the XML elements to mapped cells
Entering data, moving mapped cells, and leveraging Excel functionality, while preserving XML structure and definitions
Exporting revised data from mapped cells to an XML data file
Working with XML maps
You can create or open a workbook in Excel, attach an XML schema file (.xsd) to the workbook, and then use the XML Source task pane to map XML elements of the schema to individual cells or tables. After you map the XML elements to your worksheet, you can import and export XML data into and out of the mapped cells.
When you add an XML schema file (.xsd) to your workbook, you create an XML map. In general, XML maps are used to create mapped cells and to manage the relationship between mapped cells and individual elements in the XML schema. In addition, these XML maps are used to bind the contents of mapped cells to elements in the schema when you import or export XML data files (.xml).
There are two kinds of mapped cells that you can create: single-mapped cells and repeating cells (which appear as XML tables). To make designing your worksheet more flexible, you can drag the mapped cells anywhere on a worksheet and into any order — even one different from the XML schema. You can also choose which elements to map and not map.
The following rules about using XML maps are important to know:
-
A workbook can contain one or more XML maps.
-
You can only map one element to one location in a workbook at a time.
-
Each XML map is an independent entity, even if multiple XML maps in the same workbook refer to the same schema.
-
An XML map can only contain one root element. If you add a schema that defines more than one root element, you are prompted to choose the root element to use for the new XML map.
Using the XML Source task pane
You use the XML Source task pane to manage XML maps. To open it, on the Developer tab, in the XML group, click Source. The following diagram shows the main features of this task pane.
1. Lists XML maps that were added to the workbook
2. Displays a hierarchical list of XML elements in the currently listed XML map
3. Sets options when working with the XML Source task pane and the XML data, such as how to preview the data and control headings
4. Opens the XML Maps dialog box, which you can use to add, delete, or rename XML maps
5. Verifies whether you can export XML data through the current XML map
Top of Page
Element types and their icons
The following table summarizes each type of XML element that Excel can work with and the icon that is used to represent each type of element.
Element type |
Icon |
---|---|
Parent element |
|
Required parent element |
|
Repeating parent element |
|
Required repeating parent element |
|
Child element |
|
Required child element |
|
Repeating child element |
|
Required repeating child element |
|
Attribute |
|
Required attribute |
|
Simple content in a complex structure |
|
Required simple content in a complex structure |
|
Top of Page
Working with single-mapped cells
A single-mapped cell is a cell that has been mapped to a nonrepeating XML element. You create a single-mapped cell by dragging a nonrepeating XML element from the XML Source task pane onto a single cell in your worksheet.
When you drag a nonrepeating XML element onto the worksheet, you can use a smart tag to choose to include the XML element name as a heading above or just to the left of the single-mapped cell, or you can use an existing cell value as a heading.
You can also use a formula in a single-mapped cell, if the cell is mapped to an XML element with an XML Schema Definition (XSD) data type that Excel interprets as a number, date, or time.
Top of Page
Working with repeating cells in XML tables
XML tables are similar in appearance and functionality to Excel tables. An XML table is an Excel table that has been mapped to one or more XML repeating elements. Each column in the XML table represents an XML element.
An XML table is created when you:
-
Use the Import command (in the XML group on the Developer tab) to import an XML data file.
-
Use the Open command from within Excel to open an XML data file — and then select As an XML table in the Open XML dialog box.
-
Use the From XML Data Import command (from the From Other Sources command button, in the Get External Data group, on the Data tab) to import an XML data file — and then select XML table in existing worksheet or New worksheet in the Import Data dialog box.
-
Drag one or more repeating elements from the XML Source task pane to a worksheet.
When you create an XML table, the XML element names are automatically used as column headings. You can change these to any column headings that you want. However, the original XML element names are always used when you export data from the mapped cells.
Two options under the Options button in the XML Source task pane are useful when you work with XML tables:
-
Automatically Merge Elements When Mapping
When selected, Excel creates one XML table from multiple fields as they are dropped onto the worksheet. This option works as long as the multiple fields are dropped on the same row, one adjacent to the other. When this option is cleared, each element appears as its own XML table. -
My Data Has Headings
When selected, existing heading data is used as column headings for repeating elements that you map to your worksheet. When this option is cleared, the XML element names are used as column headings.
Using XML tables, you can easily import, export, sort, filter, and print data based on an XML data source. However, XML tables do have some limitations regarding how they can be arranged on the worksheet.
-
XML tables are row-based, meaning that they grow from the header row down. You cannot add new entries above existing rows.
-
You cannot transpose an XML table so that new entries will be added to the right.
You can use formulas in columns that are mapped to XML elements with an XML Schema Definition (XSD) data type that Excel interprets as a number, date, or time. Just as in an Excel table, formulas in an XML table are filled down the column when new rows are added to the table.
XML map security considerations
An XML map and its data source information are saved with the Excel workbook, not a specific worksheet. A malicious user can view this map information by using a Microsoft Visual Basic for Applications (VBA) macro. Furthermore, if you save your workbook as a macro-enabled Excel Office Open XML Format File, this map information can be viewed through Microsoft Notepad or through another text-editing program.
If you want to keep using the map information but remove the potentially sensitive data source information, you can delete the data source definition of the XML schema from the workbook, but still export the XML data, by clearing the Save data source definition in workbook check box in the XML Map Properties dialog box, which is available from the Map Properties command in the XML group on the Developer tab.
If you delete a worksheet before you delete a map, the map information about the data sources, and possibly other sensitive information, is still saved in the workbook. If you are updating the workbook to remove sensitive information, make sure that you delete the XML map before you delete the worksheet, so that the map information is permanently removed from the workbook.
Top of Page
Importing XML data
You can import XML data into an existing XML map in your workbook. When you import data, you bind the data from the file to an XML map that is stored in your workbook. This means that each data element in the XML data file has a corresponding element, in the XML schema, that you mapped from an XML Schema file or inferred schema. Each XML map can only have one XML data binding, and an XML data binding is bound to all of the mappings that were created from a single XML map.
You can display the XML Map Properties dialog box (Click Map Properties in the XML group on the Developer tab.), which has three options, all selected by default, that you can set or clear to control the behavior of an XML data binding:
-
Validate data against schema for import and export Specifies whether Excel validates data against the XML map when importing data. Click this option when you want to ensure that the XML data that you import conforms to the XML schema.
-
Overwrite existing data with new data Specifies whether data is overwritten when you import data. Click this option when you want to replace the current data with new data, for example, when up-to-date data is contained in the new XML data file.
-
Append new data to existing XML tables Specifies whether the contents of the data source are appended to the existing data on the worksheet. Click this option, for example, when you are consolidating data from several similar XML data files into an XML table, or you do not want to overwrite the contents of a cell that contains a function.
When you import XML data, you may want to overwrite some mapped cells but not others. For example, some mapped cells may contain formulas and you don’t want to overwrite the formula when you import an XML file. There are two approaches that you can take:
-
Unmap the elements that you don’t want overwritten, before you import the XML data. After you import the XML data, you can remap the XML element to the cells containing the formulas, so that you can export the results of the formulas to the XML data file.
-
Create two XML maps from the same XML schema. Use one XML map for importing the XML data. In this «Import» XML map, don’t map elements to the cells that contain formulas or other data that you don’t want overwritten. Use another XML map for exporting the data. In this «Export» XML map, map the elements that you want to export to an XML file.
Note: The ability to import XML data from a Web service by using a Data Retrieval Service Connection (.uxdc) file to connect to a data source is no longer supported in versions later than Excel 2003 through the user interface. If you open a workbook that was created in Excel 2003, you can still view the data, but you cannot edit or refresh the source data.
Working with an inferred schema
If you import XML data without first adding a corresponding XML schema to create an XML map, Excel tries to infer a schema for you based on the tags that are defined in the XML data file. The inferred schema is stored with the workbook, and the inferred schema allows you to work with XML data if an XML schema file isn’t associated with the workbook.
When you work with imported XML data that has an inferred schema, you can also customize the XML Source task pane. Select the Preview Data in Task Pane option from the Options button to display the first row of data as sample data in the element list, if you imported XML data associated with the XML map in the current session of Excel.
You cannot export the Excel inferred schema as a separate XML schema data file (.xsd). Although there are XML schema editors and other methods for creating an XML schema file, you may not have convenient access to them or know how to use them. As an alternative, you can use the Excel 2003 XML Tools Add-in Version 1.1, which can create a schema file from an XML map. For more information, see Using the Excel 2003 XML Tools Add-in Version 1.1.
Exporting XML data
You export XML data by exporting the contents of mapped cells on the worksheet. When you export data, Excel applies the following rules to determine what data to save and how to save it:
-
Empty items are not created when blank cells exist for an optional element, but empty items are created when blank cells exist for a required element.
-
Unicode Transformation Format-8 (UTF-8) encoding is used to write the data.
-
All namespaces are defined in the Root XML element.
-
Excel overwrites existing namespace prefixes. The default namespace is assigned a prefix of ns0. Successive namespaces are designated ns1, ns2 to ns<count> where <count> is the number of namespaces written to the XML file.
-
Comment nodes are not preserved.
You can display the XML Map Properties dialog box (Click Map Properties in the XML group on the Developer tab.) and then use the Validate data against schema for import and export option (active by default) to specify whether Excel validates data against the XML map when exporting data. Click this option when you want to ensure that the XML data you export conforms to the XML schema.
Using the Excel Macro-enabled Office Open XML Format File
You can save an Excel workbook in a variety of file formats, including the Excel macro-enabled Office Open XML Format File (.xlsm). Excel has a defined XML schema that defines the contents of an Excel workbook, including XML tags that store all workbook information, such as data and properties, and define the overall structure of the workbook. Custom applications can use this Excel macro-enabled Office XML Format File. For example, developers may want to create a custom application to search for data in multiple workbooks that are saved in the this format and create a reporting system based on the data found.
Top of Page
Need more help?
You can always ask an expert in the Excel Tech Community or get support in the Answers community.
See Also
Import XML data
Map XML elements to cells in an XML Map
Export XML data
Append or overwrite mapped XML data
XML (eXtensible Markup Language) is a data-management system based on flat files. It is is widely used by small businesses because of its portability and its compatibility with multiple platforms. It provides a means of storing, accessing and sharing data without the complexities or overhead of a relational-database management system. You can create XML data from a Microsoft Excel 2003 worksheet or workbook, but you’ll need to do some manual steps to get the data to conform to valid XML format. You’ll need to create a data map, define the XML tags and then map them to the columns in the worksheet before you can export the XML file.
-
Launch Microsoft Excel 2003.
-
Create a new Excel workbook by selecting “New” from the “File” menu in the Excel application and selecting the option to create a blank workbook.
-
Type the data, including row and column headings, into contiguous worksheet cells and save the file by choosing the “Save” option from the file menu. If you already have an Excel file containing the data that you’d like to export as XML, select the “Open” option from the menu instead and locate and open the file. If the data is in a “.csv” or “.txt” file, use the “Import” option to load the file in the workbook.
-
Create the XML map file for the data in your worksheet by launching the Notepad editor in Windows. The XML map file will serve as the XML schema for exporting properly formatted XML data from Excel, so you will need to create properly formatted XML elements in the map file for each record in your Excel worksheet. For example, if your worksheet contains student data with columns such as “Name” and “Address,” your XML file will need to look like this:
<students> (Add an element for each row.) <student name=”Stephen” address =”Rockfort” /> <student name=”Kingfisher” address =”Castleton” />
</students>
Ensure that you save the map file with a “.xml” extension.
-
Click on the “Data” menu in Excel and choose “XML,» then “XML Source” to open the «XML Source» task pane.
-
Click on the “XML Maps” button, then click “Add” and choose the XML map file you created in Step 4. The elements from the map will be displayed in the pane.
-
Drag each element from the “XML Source” pane to the corresponding column header in the Excel worksheet. This will create the associations and Excel will automatically create the required list objects.
-
Choose “XML” then “Export” from the “Data” menu to create your exported XML data file.
- Download sample files — 2.58 Kb
Introduction
Microsoft Excel 2003 supports XML in a variety of ways. One application of this XML functionality is the ability to export a list of data to an XML format. This is particularly useful when working with data originally in comma-separated value files (.csv files) or fixed-width data files. Both are plain text file formats, and are common import/export options for database and spreadsheet applications.
Normally, an XSL stylesheet would be considered when transforming a data source to an XML output. An XSL stylesheet will not help us transform .csv or fixed-width data into XML however, as XSL requires an XML-based source. A .csv or fixed-width file is easily imported into Excel though, and with a few additional steps, may be exported to an XML format of choice.
An Excel list becomes exportable to XML when assigned an XML map. An XML map is an XML schema or other file showing an example of the desired XML output, in which case Excel can infer the schema. Either is associated with the spreadsheet containing the list data. The user then may perform drag-and-drop operations to connect individual data fields from the map to the list source. Finally, the data is exported with a menu command.
Step-by-step
The starting point for this task is straightforward: Excel is open, and you have either entered or imported a list of data (e.g., a .csv file). Include a heading row, identifying field names at the top of each column. For practice, you may use the file Sample.xls which may be downloaded with the link at the top of this article.
- We will begin by creating the map file, which can be either an XML schema or a file showing example XML output. Open Notepad or your desired text editor.
- Enter and save the map file. For practice, you may use the file sectionsMap.xml that comes with the article download. In this illustration, we are creating an example XML document that demonstrates the output we wish to achieve rather than use a schema. Excel will read the example output and infer a schema appropriate for the map.
For the example output, create a root element. Nested within the root, create an element that is associated with a single row of data in the list. The individual fields of data in the list row may be identified as attributes of that element, or as child elements of the parent.
Once the element representing a full list row is complete, copy and paste it as a second element within the root. It is important that the example output imply multiple elements to associate with multiple list rows. The picture below shows the
<section>
tag repeated twice deliberately; this allows Excel to infer that it will repeat throughout the list of data.If the
<section>
tag were not repeated in the example output, Excel would treat its association as a single cell of data rather than a column of cells. Repeating the<section>
element in the example allows Excel to infer an association to the column across multiple rows. - In Excel, with the sheet containing your list of data active, choose the menu Data -> XML -> XML Source. The XML Source task pane opens.
- In the XML Source task pane, click the XML Maps… button.
- In the XML Maps dialog, click Add…, and select the schema or XML example output file you created in step #2. If you are using an XML example rather than a schema, like the sectionsMap.xml file from the article downloads, you will see the following dialog, which you may dismiss by clicking OK:
- In the XML Maps dialog, the map file will be added. Click OK to dismiss the dialog.
- The XML Source task pane will now display the map elements and attributes.
This is a good time to verify Excel’s interpretation of the example output. Each of the icons in the XML map describes the interpretation of the given element or attribute.
(source: Excel Help)
The picture above shows that the
<section>
element in our example output file has been interpreted as a “repeating parent element”. The “repeating” aspect of this interpretation is necessary to correlate with repeating rows of list data. The element’s “children” are the individual fields of data across a given row. - Now, it’s time to associate an individual child element or attribute in the map with its list column in the source. Do this by clicking and dragging a field from the map to the list column header to which it should be associated. When dropped on the column header, the list column will highlight and is automatically converted to an Excel List object.
- Repeat the drag-and-drop operation for each additional field, associating each field in the map with its respective column of list data by dropping it on top of the column header.
- With the XML associations made, it is time to export the data. Choose the menu Data -> XML -> Export… and specify the location/filename to create the new XML file.
- Open the newly created file in Notepad or another text editor to verify that the export has worked as desired.
Summary
A list of data in Excel, such as that which may be obtained from a .csv or fixed-width data file, may be exported to an XML format, provided an XML map has been assigned to the spreadsheet. An XML map may either be an XML schema describing the source data, or an XML document showing an example of the desired output format. In an example output file, a parent element is defined to correlate with a given list row. The parent element is repeated at least once in the example output, allowing Excel to infer its association to repeated rows in the list. Individual child attributes and elements may then be associated with respective list columns through a drag-and-drop operation, connecting the XML child to its related list field header. With the XML map in place and field items associated to columns of data, the data may be exported with the menu command Data -> XML -> Export. When converted to XML, the list data is then suitable for use as a source in an XSL transformation or any other XML application.
License
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
Written By
University of Nevada, Las Vegas
United States
With a background in education, music, application development, institutional research, data governance, and business intelligence, I work for the University of Nevada, Las Vegas helping to derive useful information from institutional data. It’s an old picture, but one of my favorites.
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.
Собрать данные из XML файлов в Excel и экспортировать
Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.
Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.
Как создать XML-файл из Excel
XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.
Рассмотрим создание XML-файла на примере производственного календаря.
- Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
- Создадим и вставим карту XML с необходимой структурой документа.
- Экспортируем данные таблицы в XML формат.
- Наша таблица – производственный календарь.
- Создаем в любом текстовом редакторе (например, «Блокнот») желаемую карту XML структуры для генерации файла сохраним. В данном примере буде использовать следующую карту структуры:
Сохраняем в XML файл.
Другие способы получения XML-данных (схемы):
- Скачать из базы данных, специализированного бизнес-приложения. Схемы могут предоставляться коммерческими сайтами, службами. Простые варианты находятся в открытом доступе.
- Использовать готовые образцы для проверки карт XML. В образцах – основные элементы, структура XML. Копируете – вставляете в программу «Блокнот» — сохраняете с нужным расширением.
Как сохранить файл Excel в формате XML
Один из вариантов:
- Нажимаем кнопку Office. Выбираем «Сохранить как» — «Другие форматы».
- Назначаем имя. Выбираем место сохранения и тип файла – XML.
Если выдает ошибку, книгу можно сохранить в виде таблицы XML 2003 либо веб-страницы. С этими форматами проблем, как правило, не возникает.
- Скачать конвертер XLC в XML. Либо найти сервис, с помощью которого можно экспортировать файл онлайн.
- Скачать с официального сайта Microsoft надстройку XML Tools Add-in. Она в бесплатном доступе.
- Открываем новую книгу. Кнопка Office – «Открыть».
Как открыть XML файл в Excel
- Меняем формат на «файлы XML». Выбираем нужный файл. Жмем «Открыть».
- Способ открытия – XML-таблица. ОК.
- Появляется оповещение типа
Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.
Как преобразовать файл XML в Excel
- Меню «Разработчик» — вкладка «Импорт».
- В диалоговом окне выбираем файл XML, который хотим преобразовать.
- Нажимаем «Импорт». Программа Excel предложит самостоятельно создать схему на основе полученных данных. Соглашаемся – ОК. Откроется окно, где нужно выбрать место для импортируемого файла.
- Назначаем диапазон для импорта. Лучше брать с «запасом». Жмем ОК.
Созданную таблицу редактируем и сохраняем уже в формате Excel.
Как собрать данные из XML файлов в Excel
Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.
Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.
Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».
- Каждый новый файл будет проверяться программой Excel на соответствие установленной карте (если поставим галочку напротив этого пункта).
- Данные могут обновляться. Либо новая информация добавится в существующую таблицу (имеет смысл, если нужно собрать данные из похожих файлов).
Это все ручные способы импорта и экспорта файлов.
Преобразование файлов Excel в XML и обратно
Немного об Excel и XML
Итак, прежде чем узнать, как открыть, создать или перевести файл XML в Excel и обратно, давайте поближе познакомимся с типами этих файлов. Здесь нужно сразу отметить, что документы Excel имеют множество форматов, в то время, как XML — и есть формат файла. Поэтому не стоит путать эти два понятия.
Microsoft Excel является мощной программой для вычислений с множеством полезных функций
Программа Microsoft Excel является специальной утилитой, предназначенной для создания и редактирования таблиц. С ними вы уже можете делать всё что угодно: создавать базы, диаграммы, формулы и другие типы данных. Это очень мощный инструмент, поэтому все его возможности мы обсуждать не будем. Сегодня наша цель несколько другая, и мы не станем отходить от темы сегодняшней дискуссии.
Файлы XML, для более простого понимания, предназначены для хранения, обмена различных данных между утилитами. Особенно часто пользуются этим языком разметки при передаче информации через интернет. И когда вам нужно перенести табличные данные из Экселя на сайт, например, то вам нужно будет преобразовать свой документ, чтобы он правильно отображался. Поэтому давайте не будем оттягивать момент истины и сразу приступим к выполнению операции.
Как преобразовать Excel в XML
Дорогие друзья, на самом деле преобразование файлов является достаточно простым занятием. Однако, у некоторых пользователей могут возникнуть проблемы при переносе данных, поэтому сегодня мы с вами рассмотрим несколько способов для осуществления нашего замысла. Поэтому набираемся терпения и приступаем к действиям:
- Самый простой способ, который может не сработать в некоторых случаях, это сохранение файла в нужном формате в самой программе Microsoft Excel. Для этого откройте необходимый документ в этом приложении. Затем нажмите на кнопку «Файл» (рассматривается на примере Office 2013, в других версиях процесс сохранения может несколько отличаться) в верхнем левом углу окна Экселя, затем пункт «Сохранить как», после чего выберите место сохранения документа, дайте ему имя и во вкладке типа файла укажите «XML данные». После этого проверьте, правильно ли всё у вас получилось. Если нет, то пробуем следующие способы.
- Итак, если возникает ошибка в предыдущем случае, то, возможно, в вашей копии программы не предусмотрена поддержка и соответствующие надстройки. Чтобы их установить перейдите на сайт компании Microsoft http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=3108, скачайте и инсталлируйте этот файл к себе на компьютер или ноутбук. Далее, запустите программу Microsoft Excel и нажмите на большую цветную кнопку в левом верхнем углу окна приложения (здесь мы уже смотрим пример на версии 2007-го года). В появившемся блоке кликните по параметрам, слева от выхода из утилиты. Теперь зайдите в пункт надстроек и нажмите на кнопку «Перейти» напротив пункта «Управление». Выскочит диалоговое окно, где нужно кликнуть по обзору и найти документ, который вы скачали с сайта Майкрософта ранее. Теперь кликаем ОК и переходим в основное окно программы, где у вас теперь есть вкладка XML Tools — с помощью него теперь вы спокойно можете создать файл XML из существующей таблицы. Сохранять его нужно аналогично предыдущему пункту.
- Если вам совсем не хочется загружать и себя, и свой компьютер такой информацией, то можете прибегнуть к помощи специальных утилит-конвертеров или онлайн-версий этих программ. К примеру, вы можете загрузить приложение Format Factory, которое позволит вам совершить все необходимые действия. Но стоит помнить, что сохранённые и преобразованные таким образом файлы не всегда работают в дальнейшем. То есть во время операции могут повредиться сектора или области в памяти документа, что негативно скажется на нём — он попросту может не открыться в XML-редакторе, например. Поэтому рекомендуется использовать либо профессиональные программы, либо сам Microsoft Excel.
Как перевести XML в Excel
Прежде чем перевести XML в Excel, нужно его для начала открыть. Рассмотрим весь этот непродолжительный процесс ниже. Итак, приступаем:
- Запустите программу Microsoft Excel с помощью ярлыка на рабочем столе или через меню проводника.
- Нажмите на «Открыть другие книги» внизу главной страницы, если вы используете Office В других версиях процесс может несколько отличаться.
- Далее, нажимаем на «Компьютер» или другое место, где расположен ваш XML-файл, затем кликните «Обзор» и смените в появившемся окне тип данных на «Файлы XML».
- Теперь ищем необходимый файл и открываем его в нашей программе с помощью одноимённой кнопки.
- Далее, обсудим то, как преобразовать наш документ. Перейдите во вкладку разработчика, затем нажмите на кнопку импорта.
- В открывшемся окне нужно будет снова найти и выбрать наш документ, над которым вы и хотите произвести действие, затем кликаем на кнопку «Импорт».
- Затем настраиваете всё под себя: область для импорта, место сохранения и другие параметры. После чего вы получите таблицу, которую позже можно сохранить в нужном для вас формате. Как видите, ничего сложного нет.
Подведём итоги
Дорогие читатели, сегодня мы с вами узнали не только как преобразовать файлы XML в Excel и обратно, но и как создать и открыть их при несовместимости версий. Надеемся, что у вас всё получилось и больше не осталось никаких вопросов. Не забываем делиться в комментариях своим мнением и опытом: возможно, вы знаете простой способ конвертации. Расскажите другим пользователям, получилось ли у вас перевести один тип документа. Если сработало, то поделитесь тем, каким способом воспользовались вы.
Конвертируем xls в xml
Расскажу вам быстрый способ создания xml-файла из таблицы экселя!
XML документы — это очень сильная и мощная вещь. С помощью одного XML файла можно наполнить сайт информацией за считанные секунды! Ведь во всех современных движках (CMS) присутствует возможность импорта из хмл файла. Так к чему это я.
Файлы формата XML используются не только для наполнения сайтов, каждый может использовать их в своих целях (о них в последующих статьях поведаю). Совсем недавно мне потребовалось экспортировать файл XLS в XML. Сначала я начал искать конверторы для этого, но ненайдя ничего стоящего, попробовал сделать операцию конвертирования с помощью самого экселя. И теперь хочу с вами поделиться этим «тайным» знанием!
Офф-топ, о том, как из djvu сделать pdf, можно прочесть тут.
Как известно, форматы *.xls (*.xlsx в 2007 офисе) — это форматы Microsoft Office Excel. 2003 офис ушел в прошлое, уже есть 2010, но я работаю на 2007, а, следовательно, рассказывать буду, основываясь на нем. Погнали!
1. Заходим на сайт Microsoft, и скачиваем надстройку для работы с XML. Скачать Excel 2003 Add-in: XML Tools Add-in. Весит она не много, 397 KB.
2. Устанавливаем ее к себе на компьютер. Сложного в установке ничего нет. По умолчанию надстройка устанавливается вот сюда: c:Office SamplesOfficeExcel2003XMLToolsAddin
3. Теперь открываем Excel, заходим в меню и выбираем пункт «Параметры Excel».
4. В появившемся окне, слева, выбираем пункт «Надстройки», а внизу окна, нажимаем на кнопку «Перейти…»
5. Перед вами откроется новое окно, в нем вам необходимо нажать кнопку «Обзор…». Как оно выглядит, показано ниже.
6. Теперь вам необходимо найти установленную надстройку XmlTools (смотреть пункт 2). Выбрать ее и нажать ОК!
7. Если вы все сделали правильно, вы увидите следующее окно! Смело жмем ОК, установка завершена!
8. У вас появилось в верхнем меню вкладка надстройка, а слева пункт XML Tools.
С установкой разобрались, а теперь переходим непосредственно к конвертированию (экспорту) xls в xml.
1. Для этого открываем файл с данными, которые необходимо перегнать. Затем выбираем первый пункт в раскрывающемся меню «Convert a Range to an XML List…»
2. Перед вами откроется небольшое окошко, что вам в нем необходимо? Там есть радио кнопки, No и Yes, для чего они? Все просто, если у вас есть заголовок к данным (в моем случае он есть) выбираем Yes, а если его нет, то соответственно No. Затем нажимаем на маленький прямоугольник в верхней строке.
3. Выделяем область данных, которые конвертируем и нажимаем на кнопку справа в появившемся окне. Возвращается предыдущее окно, в котором жмем ОК.
4. Ваша табличка должна измениться, можно сказать преобразиться, у меня это выглядит вот так:
5. Все готово, осталось только сохранить готовый xml документ. Заходим в меню, выбираем «Сохранить как…», «Другие форматы».
6. В раскрывающемся списке «Тип файла» выбираем XML-данные, нажимаем «Сохранить».
Я вас поздравляю, ваш файл создан!
Надеюсь, все было изложено подробно и понятно, однако если возникнут вопросы, пишите!
Экспорт Excel в XML и наоборот
Вы можете конвертировать файл Excel в файл данных XML или наоборот. Это позволяет обмениваться информацией между различными приложениями. Для начала откройте вкладку Developer (Разработчик).
Вот данные, которые мы хотим преобразовать в файл XML:
Сперва создадим схему, основанную на исходных данных в формате XML. Схема определяет структуру XML-файла.
-
Excel для этой цели не подойдёт, поэтому откройте, к примеру, Блокнот и вставьте следующие строки:
Примечание: Теги названы по именам столбцов, но вы можете дать им любое название. Например, вместо – .
- Сохраните файл как schema.xml.
- Откройте книгу Excel.
- Кликните по Source (Источник) на вкладке Developer (Разработчик). Откроется XML панель задач.
- Чтобы добавить карту XML, нажмите кнопку XML Maps (XML карты).Появится диалоговое окно XML Maps (Карты XML).
- Нажмите Add (Добавить).
- Выберите schema.xml и дважды кликните ОК.
- Теперь просто перетащите 4 элемента из дерева в XML панели задач на лист (строка 1).
- Нажмите кнопку Export (Экспорт) в разделе XML на вкладке Developer (Разработчик).
- Сохраните файл и нажмите Enter.
Это экономит немало времени!
Примечание: Для импорта XML-файла откройте пустую книгу. На вкладке Developer (Разработчик) нажмите кнопку Import (Импорт) и выберите XML-файл.
Как перевести документ Excel в формат XML?
Очень нужно для сдачи алкогольной декларации в СКБ-Контур. Может кто-то знает?
Как сохранить документ в формате XML:
- Выберите в меню «Файл» пункт «Сохранить как».
- В окне «Сохранение файла» выберите в раскрывающемся списке «Тип файла» пункт «XML-документ».
И все, нажимайте «Сохранить»!
Для преобразования файла в Exel в формат XML не требуется никакого дополнительного программного обеспечения.
Microsoft Excel предоставляет два формата файлов для XML. Один из них подходит только для версий Microsoft Excel 2002 и более ранних, другой формат понимается всеми более поздними версиями.
- Переходим в меню Файл в Microsoft Excel/ Сохранить как. Важно: обычная команда «сохранить» не предоставляет функциональные возможности конвертирования документов в другие форматы. А «сохранить как» обеспечит необходимое преобразование для документа экспортируемого в XML.
- Выберите «XML-данные» под «сохранить как» в раскрывающемся списке меню в нижней части диалогового окна. Это формат XML для всех версий Excel после 2002. Если файл XML будет использоваться более старыми программами Excel, выберите тип файла электронной таблицы XML.
Введите желаемое имя файла для нового файла XML в поле «File Name». Укажите место в поле «Сохранить в».
Нажмите на кнопку «Сохранить». Файл Microsoft Excel будет экспортирован в виде файла XML.
Конвертируем excel файл xls в xml формат.
Для того что бы начать конвертировать файл xls в xml нужно подготовить Microsoft Office Excel.
Переходим на сайт Microsoft для того что бы скачать надстройку Excel 2003 Add-in: XML Tools Add-in
После того как вы скачали надстройку Excel 2003 Add-in: XML Tools Add-in для конвертации xls в xml, устанавливаем надстройку на свой компьютер. Программа установится по адресу c:Office SamplesOfficeExcel2003XMLToolsAddin
Ну а теперь начинается самое интересное, активируем надстройку конвертера xls в Microsoft Office Excel. Для этого запускаем Excel и открываем «Параметры Excel»
Затем переходим к пункту Надстройки и Перейти
Теперь перед вами открылось окно надстройки, судя по этому окну у нас программа спрашивает а где лежит наша новая надстройка, мы не тянем время и щелкаем по вкладке Обзор. Если вы были внимательны то в начале статьи я упомянул куда автоматически устанавливается надстройка OfficeExcel2003XMLToolsAddin, ну если вы скажем так забыли я вам напомню.
Нажали вкладку Обзор и переходим на диск С, а точнее:
С:Office SamplesOfficeExcel2003XMLToolsAddin
Теперь находим нашу надстройку XmlTools и нажимаем ОК
После того как вы нажали ОК, вам откроется опять окно с надстройками и в нем мы увидим нашу долгожданную надстройку XmlTools, смело ставим галочку и нажимаем ОК
Теперь посмотрим на нашу работу, смотрим на шапку Excel и видим меню Надстройки переходим на него и видим XML Tools это и есть наш конвертер.
На этом установка и активация надстройки для конвертирования xls в xml закончена.
Теперь будем учится конвертировать
Для этого нам нужно открыть файл xls который мы хотим конвертировать в xml, после этого в меню Надстройки открываем пункт XML Tools и в нем кликаем по пункту Convert a Range to an XML List…
После того как вы нажали Convert a Range to an XML List вам откроется окно Convert a Range to XML List в этом окне кликаем на вкладку Click here and drag select a range
После того как у вас пропадет большое окно Convert a Range to an XML List и появится маленькое окошко Convert a Range to XML List, нужно будет выделить нужную вам область данных и нажать кнопку как показано на скриншоте
После этого у вас все изменится как на скришоте, теперь сохраняем
Выбираем Сохранить как — Другие форматы тип файла выбираем XML
Вот и все, у нас удалось конвертировать xls в xml
Источник: http://www.rtiopt64.ru/blog/konverter_fajl_excel_xls_v_xml_format/2016-10-10-424
Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.
Is it possible to read the xml data or xml format of excel 2003 in open xml. Is there anyway we can read excel 2003 in 2007. We can ask customers to save excel 2003 in any format but we cannot ask them to store in 2007 .
asked Mar 22, 2011 at 0:35
No, you cannot read excel 2003 as Open XML since it is not stored as XML, but is stored in a proprietary binary file format called Binary Interchange File Format (BIFF). You can save from 2007 to a 2003 format, but you cannot do the opposite. I asked a similar question here.
answered Mar 22, 2011 at 12:13
amurraamurra
15.1k4 gold badges70 silver badges87 bronze badges
4
Office Open XML (OOX) has become the default format with the release of Office 2007, but back in the 2003’s days, Microsoft had already developed a format to store Excel workbooks as XML.
A comprehensive overview is available here :
Dive into SpreadsheetML (Part 1 of 2)
Dive into SpreadsheetML (Part 2 of 2)
Contrary to OOX where data and metadata are stored in a multipart archive, an Excel workbook file in SpreadsheetML 2003 format consists in a single XML instance, and therefore easily managed using built-in Oracle XML functions and XML DB features.
In this article, I’ll focus on how to create and read such files with the help of SQL/XML functions, XSLT and XQuery.
1. Writing a file
The minimum valid structure for an instance looks like this :
<?xml version="1.0" encoding="UTF-8"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <Worksheet ss:Name="Sheet1"> <Table> <Row> <Cell> <Data ss:Type="String">Employee No</Data> </Cell> <Cell> <Data ss:Type="String">Employee Name</Data> </Cell> <Cell> <Data ss:Type="String">Job</Data> </Cell> </Row> <Row> <Cell> <Data ss:Type="Number">7839</Data> </Cell> <Cell> <Data ss:Type="String">KING</Data> </Cell> <Cell> <Data ss:Type="String">PRESIDENT</Data> </Cell> </Row> <!-- More rows --> </Table> </Worksheet> </Workbook>
It can be generated this way, with SQL/XML functions :
SELECT XMLConcat( XMLPi("mso-application", 'progid="Excel.Sheet"') , XMLElement("Workbook", XMLAttributes( 'urn:schemas-microsoft-com:office:spreadsheet' as "xmlns" , 'urn:schemas-microsoft-com:office:spreadsheet' as "xmlns:ss" ) , XMLElement("Worksheet", XMLAttributes('Sheet1' as "ss:Name") , XMLElement("Table", XMLElement("Row", XMLForest( XMLElement("Data", XMLAttributes('String' as "ss:Type"), 'Employee No') as "Cell" , XMLElement("Data", XMLAttributes('String' as "ss:Type"), 'Employee Name') as "Cell" , XMLElement("Data", XMLAttributes('String' as "ss:Type"), 'Job') as "Cell" ) ) , XMLAgg( XMLElement("Row", XMLForest( XMLElement("Data", XMLAttributes('Number' as "ss:Type"), e.empno) as "Cell" , XMLElement("Data", XMLAttributes('String' as "ss:Type"), e.ename) as "Cell" , XMLElement("Data", XMLAttributes('String' as "ss:Type"), e.job) as "Cell" ) ) order by e.empno ) ) ) ) ) FROM scott.emp e ;
Although this query is relatively simple and efficient, we can imagine how cumbersome it could get to write queries for more complex requirements.
So this is where XSLT comes into play. By creating a stylesheet working on a canonical XML input, we can hide the transformation logic and separate the data layer from the presentation layer.
Following is an example generating a multisheet workbook and some additional Excel-specific formattings (frozen headers and tab color set to red for total salaries higher than 10,000).
Here, I first stored the XSLT stylesheet in the XML DB repository. That’s not mandatory, we can also declare the stylesheet inline in the PL/SQL block, but it’s a good practice to keep the stylesheets in the database (repository or XMLType column in a relational table) if we intend to use them with the internal XSLT processor.
The stylesheet (test.xsl) :
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:output method="xml" encoding="UTF-8"/> <xsl:template match="/"> <xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <Styles> <Style ss:ID="h"> <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/> </Style> </Styles> <xsl:apply-templates/> </Workbook> </xsl:template> <xsl:template match="ROWSET"> <Worksheet ss:Name="{@name}"> <Table> <Row> <xsl:for-each select="ROW[1]/*"> <Cell ss:StyleID="h"> <Data ss:Type="String"> <xsl:value-of select="translate(local-name(), '_', ' ')"/> </Data> </Cell> </xsl:for-each> </Row> <xsl:apply-templates/> </Table> <x:WorksheetOptions> <x:FrozenNoSplit/> <x:SplitHorizontal>1</x:SplitHorizontal> <x:TopRowBottomPane>1</x:TopRowBottomPane> <x:ActivePane>2</x:ActivePane> <xsl:if test="@color"> <x:TabColorIndex><xsl:value-of select="@color"/></x:TabColorIndex> </xsl:if> </x:WorksheetOptions> </Worksheet> </xsl:template> <xsl:template match="ROW"> <Row> <xsl:apply-templates/> </Row> </xsl:template> <xsl:template match="ROW/*"> <Cell> <Data ss:Type="String"> <xsl:value-of select="."/> </Data> </Cell> </xsl:template> </xsl:stylesheet>
The transformation code :
DECLARE xmldoc CLOB; BEGIN select xmlserialize(document xmltransform( xmlelement("ROOT", xmlagg( xmlelement("ROWSET", xmlattributes( d.dname as "name" , case when sum(e.sal) > 10000 then '2' end as "color" ) , xmlagg( xmlelement("ROW", xmlforest( e.empno as "Employee_No" , e.ename as "Employee_Name" , e.job as "Job" , e.sal as "Salary" ) ) order by e.empno ) ) order by d.deptno ) ) , xdburitype('/office/excel/stylesheets/out/test.xsl').getXML() ) as clob ) into xmldoc from scott.dept d join scott.emp e on e.deptno = d.deptno group by d.deptno , d.dname ; dbms_xslprocessor.clob2file(xmldoc, 'TEST_DIR', 'test.xml'); END; /
The output file :
One of the most used Excel features is the Pivot Table generator. Creating such content is also possible directly from the database, using XSLT.
For instance, here’s some “raw” data :
SQL> select employee_id 2 , first_name 3 , last_name 4 , extract(year from hire_date) as hire_year 5 , job_id 6 from hr.employees 7 ; EMPLOYEE_ID FIRST_NAME LAST_NAME HIRE_YEAR JOB_ID ----------- -------------------- ------------------------- ---------- ---------- 198 Donald OConnell 2007 SH_CLERK 199 Douglas Grant 2008 SH_CLERK 200 Jennifer Whalen 2003 AD_ASST 201 Michael Hartstein 2004 MK_MAN 202 Pat Fay 2005 MK_REP 203 Susan Mavris 2002 HR_REP 204 Hermann Baer 2002 PR_REP 205 Shelley Higgins 2002 AC_MGR 206 William Gietz 2002 AC_ACCOUNT 100 Steven King 2003 AD_PRES 101 Neena Kochhar 2005 AD_VP 102 Lex De Haan 2001 AD_VP 103 Alexander Hunold 2006 IT_PROG ... 195 Vance Jones 2007 SH_CLERK 196 Alana Walsh 2006 SH_CLERK 197 Kevin Feeney 2006 SH_CLERK 107 rows selected
and we want to display, for a given job, the number of employees hired per year.
In SQL, that’s called a dynamic pivot but it’s not possible – with conventional methods – to produce such a result set out of a single SELECT statement (because the number of columns has to be known at parse time).
The PIVOT XML operator (11g) provides a partial answer to the problem by generating an XMLType containing aggregated “columns” (actually XML “elements”). The same functionality can be simulated in 10g too with XMLAgg and a partitioned outer join.
But with that method, we still have to build the pivot in SQL, in the database.
What I describe below let Excel do the job for us, through its standard pivot table functionality. We just have to generate a tab containing the raw data (hereafter named “DataSource”), and a tab (“PivotTable”) containing the minimum pivot table definition, i.e. no data and no cache.
The stylesheet (pivot.xsl) :
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:output method="xml" encoding="UTF-8"/> <xsl:param name="filename"/> <xsl:template match="/"> <xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:apply-templates/> </Workbook> </xsl:template> <xsl:template match="ROWSET"> <Worksheet ss:Name="DataSource"> <Table> <Row> <Cell><Data ss:Type="String">EMPLOYEE_ID</Data></Cell> <Cell><Data ss:Type="String">FIRST_NAME</Data></Cell> <Cell><Data ss:Type="String">LAST_NAME</Data></Cell> <Cell><Data ss:Type="String">HIRE_YEAR</Data></Cell> <Cell><Data ss:Type="String">JOB_ID</Data></Cell> </Row> <xsl:apply-templates/> </Table> </Worksheet> <Worksheet ss:Name="PivotTable"> <Table/> <x:PivotTable> <x:Name>My Pivot Table</x:Name> <x:ImmediateItemsOnDrop/> <x:ShowPageMultipleItemLabel/> <x:GrandTotalString>Total</x:GrandTotalString> <x:Location>R3C1:R4C2</x:Location> <x:PivotField> <x:Name>EMPLOYEE_ID</x:Name> <x:DataType>Integer</x:DataType> </x:PivotField> <x:PivotField> <x:Name>FIRST_NAME</x:Name> </x:PivotField> <x:PivotField> <x:Name>LAST_NAME</x:Name> </x:PivotField> <x:PivotField> <x:Name>HIRE_YEAR</x:Name> <x:Orientation>Column</x:Orientation> <x:AutoSortOrder>Ascending</x:AutoSortOrder> <x:Position>1</x:Position> <x:DataType>Integer</x:DataType> <x:PivotItem> <x:Name/> </x:PivotItem> </x:PivotField> <x:PivotField> <x:Name>JOB_ID</x:Name> <x:Orientation>Row</x:Orientation> <x:AutoSortOrder>Ascending</x:AutoSortOrder> <x:Position>1</x:Position> <x:PivotItem> <x:Name/> </x:PivotItem> </x:PivotField> <x:PivotField> <x:DataField/> <x:Name>Data</x:Name> <x:Orientation>Row</x:Orientation> <x:Position>-1</x:Position> </x:PivotField> <x:PivotField> <x:Name>Number of Employees</x:Name> <x:ParentField>EMPLOYEE_ID</x:ParentField> <x:Orientation>Data</x:Orientation> <x:Function>Count</x:Function> <x:Position>1</x:Position> </x:PivotField> <x:PTLineItems> <x:PTLineItem> <x:Item>0</x:Item> </x:PTLineItem> </x:PTLineItems> <x:PTLineItems> <x:Orientation>Column</x:Orientation> <x:PTLineItem> <x:Item>0</x:Item> </x:PTLineItem> </x:PTLineItems> <x:PTSource> <x:RefreshOnFileOpen/> <x:ConsolidationReference> <x:FileName>[<xsl:value-of select="$filename"/>]DataSource</x:FileName> <x:Reference>R1C1:R<xsl:value-of select="count(ROW)+1"/>C5</x:Reference> </x:ConsolidationReference> </x:PTSource> </x:PivotTable> </Worksheet> </xsl:template> <xsl:template match="ROW"> <Row> <Cell><Data ss:Type="Number"><xsl:value-of select="EMPLOYEE_ID"/></Data></Cell> <Cell><Data ss:Type="String"><xsl:value-of select="FIRST_NAME"/></Data></Cell> <Cell><Data ss:Type="String"><xsl:value-of select="LAST_NAME"/></Data></Cell> <Cell><Data ss:Type="Number"><xsl:value-of select="HIRE_YEAR"/></Data></Cell> <Cell><Data ss:Type="String"><xsl:value-of select="JOB_ID"/></Data></Cell> </Row> </xsl:template> <xsl:template name="PivotTable"> </xsl:template> </xsl:stylesheet>
The transformation code :
DECLARE res clob; v_filename varchar2(260) := 'test_pivot.xml'; BEGIN select xmlserialize(document xmltransform( xmlelement("ROWSET", xmlagg( xmlelement("ROW", xmlforest( employee_id , first_name , last_name , extract(year from hire_date) as hire_year , job_id ) ) ) ) , xdburitype('/office/excel/stylesheets/out/pivot.xsl').getXML() , 'filename="'''||v_filename||'''"' ) ) into res from hr.employees ; dbms_xslprocessor.clob2file(res, 'TEST_DIR', v_filename); END; /
The output file :
2. Reading a file
I’ll divide this section in two parts : querying and optimizing.
a) “One-shot” queries
Let’s say we want to read this document (saved as XML 2003 format) as if it were a relational table :
As usual, we’ll use an XMLType table to store the original file and then query from it.
Examples in the present article were tested on 11g XE (11.2.0.2) so storage is Binary XML by default :
create table tmp_xml of xmltype; insert into tmp_xml values( xmltype( bfilename('XML_DIR','test.xml') , nls_charset_id('AL32UTF8') ) );
The query involves two XMLTable() functions, the first one to break the document into separate worksheets, and the second to extract each row from them :
SQL> select x1.sheetname 2 , x2.id 3 , x2.comments 4 , x2.dt 5 from tmp_xml t 6 , xmltable( 7 xmlnamespaces( default 'urn:schemas-microsoft-com:office:spreadsheet' 8 , 'urn:schemas-microsoft-com:office:spreadsheet' as "ss" ) 9 , '/Workbook/Worksheet' 10 passing t.object_value 11 columns sheetname varchar2(31) path '@ss:Name' 12 , rowset xmltype path 'Table/Row' 13 ) x1 14 , xmltable( 15 xmlnamespaces(default 'urn:schemas-microsoft-com:office:spreadsheet') 16 , '/Row[position()>1]' 17 passing x1.rowset 18 columns id number path 'Cell[1]/Data' 19 , comments varchar2(2000) path 'Cell[2]/Data' 20 , dt timestamp path 'substring-before(Cell[3]/Data,".")' 21 ) x2 22 where x1.sheetname = 'MyData-1' 23 ; SHEETNAME ID COMMENTS DT --------------- ---------- -------------------------------------------------- ------------------------- MyData-1 1 This is a comment for line #1 09/02/12 12:09:37,000000 MyData-1 2 This is a comment for line #2 10/02/12 12:09:36,000000 MyData-1 3 This is a comment for line #3 11/02/12 12:09:36,000000 MyData-1 4 This is a comment for line #4 12/02/12 12:09:36,000000 MyData-1 5 This is a comment for line #5 13/02/12 12:09:36,000000 MyData-1 6 This is a comment for line #6 14/02/12 12:09:36,000000 MyData-1 7 This is a comment for line #7 15/02/12 12:09:36,000000 MyData-1 8 This is a comment for line #8 16/02/12 12:09:36,000000 MyData-1 9 This is a comment for line #9 17/02/12 12:09:36,000000 MyData-1 10 This is a comment for line #10 18/02/12 12:09:36,000000 MyData-1 11 This is a comment for line #11 19/02/12 12:09:36,000000 MyData-1 12 This is a comment for line #12 20/02/12 12:09:36,000000 MyData-1 13 This is a comment for line #13 21/02/12 12:09:36,000000 MyData-1 14 This is a comment for line #14 22/02/12 12:09:36,000000 MyData-1 15 This is a comment for line #15 23/02/12 12:09:36,000000 MyData-1 16 This is a comment for line #16 24/02/12 12:09:36,000000 16 rows selected
b) Optimized access of the document
If loading these documents in the database is a recurring task then, provided the structure doesn’t change, queries on the data can be optimized by creating a structured XML index on the XMLType table.
With such an index in place, and depending on the size of the document, there could be a significant overhead at insert time, but it’s a trade-off : subsequent queries will be considerably faster.
Here’s a small test case based on the following document (a 50,000-row worksheet, no header) :
Document properties (I’ll define a virtual column to hold the title property) :
Set up and query plan :
-- Table creation : create table ext_smldata of xmltype xmltype store as binary xml virtual columns ( title as ( XMLCast( XMLQuery( 'declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet"; (::) declare namespace o = "urn:schemas-microsoft-com:office:office"; (::) /Workbook/o:DocumentProperties/o:Title' passing object_value returning content ) as varchar2(200) ) ) ); -- Index on the "TITLE" virtual column : create index ext_smldata_title_idx on ext_smldata (title); -- Structured XML index on the table : create index ext_smldata_sxi on ext_smldata (object_value) indextype is xdb.xmlindex parameters (q'# XMLTable ext_smldata_xtb XMLNamespaces (default 'urn:schemas-microsoft-com:office:spreadsheet') , '/Workbook/Worksheet/Table/Row' COLUMNS rec_id NUMBER PATH 'Cell[1]/Data/text()' , description VARCHAR2(80) PATH 'Cell[2]/Data/text()' , rec_value VARCHAR2(30) PATH 'Cell[3]/Data/text()' #'); -- Insert : insert into ext_smldata values( xmltype( bfilename('XML_DIR','smldata.xml') , nls_charset_id('AL32UTF8') ) );
SQL> set timing on SQL> set autotrace traceonly SQL> SELECT x.* 2 FROM ext_smldata t 3 , XMLTable( 4 XMLNamespaces (default 'urn:schemas-microsoft-com:office:spreadsheet') 5 , '/Workbook/Worksheet/Table/Row' 6 PASSING t.object_value 7 COLUMNS rec_id NUMBER PATH 'Cell[1]/Data/text()' 8 , description VARCHAR2(80) PATH 'Cell[2]/Data/text()' 9 , rec_value VARCHAR2(30) PATH 'Cell[3]/Data/text()' 10 ) x 11 WHERE t.title = 'SampleData1' 12 ; 50000 rows selected. Elapsed: 00:00:01.69 Execution Plan ---------------------------------------------------------- Plan hash value: 3987672269 ------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 59520 | 5405K| 174 (2)| 00:00:03 | |* 1 | HASH JOIN | | 59520 | 5405K| 174 (2)| 00:00:03 | | 2 | TABLE ACCESS BY INDEX ROWID| EXT_SMLDATA | 1 | 29 | 2 (0)| 00:00:01 | |* 3 | INDEX RANGE SCAN | EXT_SMLDATA_TITLE_IDX | 1 | | 1 (0)| 00:00:01 | | 4 | TABLE ACCESS FULL | EXT_SMLDATA_XTB | 59520 | 3720K| 171 (1)| 00:00:03 | ------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("T"."SYS_NC_OID$"="SYS_SXI_0"."OID") 3 - access("T"."TITLE"='SampleData1') Statistics ---------------------------------------------------------- 0 recursive calls 0 db block gets 3962 consistent gets 77 physical reads 4796 redo size 2823321 bytes sent via SQL*Net to client 37083 bytes received via SQL*Net from client 3335 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 50000 rows processed
The explain plan shows that the underlying relational table supporting the XML index is used to retrieve the data.