Создание файла XML-данных и файла схемы XML из данных листа. Конвертация файлов XML в форматы Excel

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

Способ 1: с помощью программы Excel

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

  1. Откройте Excel.
  2. На панели нажмите «Файл».
  3. Кликните по опции «Открыть».
  4. В появившемся окне «Проводника» перейдите в директорию с XML-файлом и откройте его.
  1. Снова откройте вкладку «Файл».
  2. Выберите опцию «Сохранить как».
  3. Перейдите в директорию, в которую нужно поместить измененный документ.
  4. В выпадающем списке «Тип файла» определите пункт «Книга Excel».
  5. Сохраните файл, нажав соответствующую кнопку.

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

Способ 2: опция «Импорт данных» в Excel

Excel - конвертер XML в XLS с двумя способами выполнения этой задачи. Поэтому перейдем непосредственно ко второму варианту, который подразумевает использование опции «Импорт данных». Но перед началом надо включить меню «Разработчик», так как именно в нем находится нужный инструмент. Далее нужно сделать следующее:

  1. Откройте программу.
  2. Перейдите в меню «Файл».
  3. Следуйте в раздел «Параметры».
  4. Откройте меню «Настройка ленты».
  5. Поставьте отметку рядом со строкой «Разработчик», которая находится в правой области окна.
  6. Нажмите ОК.

Нужная панель инструментов вынесена в интерфейс программы, а это означает, что мы можем приступать к конвертации:

  1. Перейдите на вкладку «Разработчик».
  2. На панели инструментов выберите пункт «Импорт».
  3. Откроется окно, в котором необходимо выбрать файл формата XML.
  4. Появится окно с предложением создать схему на основе данных. Нажмите кнопку ОК.
  5. После этого появится второе окно, в котором вам нужно определиться с местом расположения импортируемой таблицы. Кликните по ячейке A1 и нажмите ОК.

Файл импортируется в программу Excel. Теперь его можно сохранить как XLS. Для этого по аналогии с предыдущей инструкцией откройте вкладку «Файл», кликните по «Сохранить как», укажите директорию, выберите формат и сохраните.

Способ 3: с помощью интернет-сервиса

Может случиться так, что вам понадобится конвертер XLS в XML для НДС, например. В этом случае Excel не поможет, и потребуется обратиться к другой программе. В данном случае поговорим об онлайн-сервисе Convertio:

  1. В любом браузере перейдите на главную страницу данного сервиса.
  2. Выберите способ загрузки файла. Если он расположен у вас на диске, нажмите кнопку «С компьютера» и выберите его в файловом менеджере. Если в «облаке», то выберите само хранилище, а затем файл.
  3. Документ добавлен и готов к конвертации. Для это из выпадающего списка справа нужно выбрать формат XML.
  4. Нажмите кнопку «Преобразовать».

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

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

XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.

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

Способ 1: простое сохранение

В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…» . Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.


Таким образом, преобразование файла из формата Excel в XML будет совершено.

Способ 2: инструменты разработчика

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

  1. По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры» .
  2. В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты» . В правой части окна устанавливаем галочку около значения «Разработчик» . После этого жмем на кнопку «OK» , размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
  3. Далее открываем таблицу Excel в программе любым удобным способом.
  4. На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки . Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.

    Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set» . В этой же роли для каждой строки выступает тег «record» . Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema» .

  5. Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик» . На ленте в блоке инструментов «XML» кликаем по кнопке «Источник» . В открывшемся поле в левой части окна жмем на кнопку «Карты XML…» .
  6. В открывшемся окне кликаем по кнопке «Добавить…» .
  7. Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть» .
  8. После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
  9. Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «XML» и «Экспорт…» . После этого сохраняем файл в любой директории.

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

XML – расширяемый язык разметки. Он предназначен для создания документов, которые находят применение в сети. Он отличается от более распространённого и известного HTML только тем, что предоставляет возможность задавать собственные теги и применять их в дальнейшем. Чтобы работать с такими документами, редактировать их и вносить изменения, достаточно иметь начальные знания в программировании, он лёгок и прост в применении. Но прежде чем использовать такой документ, а тем более править его, необходимо знать, чем открыть XML .

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

Блокнот

Один из первых вариантов, который приходит в голову опытному пользователю. Связано это с тем, что в большинстве своём код HTML правится именно в этой программе, значит и XML поддержит такой вариант.

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

Microsoft Word

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

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

Notepad++

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

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

Microsoft Excel

Табличный редактор тоже способен открыть и показать содержимое нужного документа. Удобство этой программы в том, что она автоматически предоставляет содержимое в виде удобной для восприятия таблицы.

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

Специализированные редакторы

Если встает вопрос чем открыть XML чтобы отредактировать его и внести изменения, то лучше отдать предпочтение специальному софту. Есть несколько вариантов таких разработок:

  • XML Editor от Oxygen ;
  • Xsemmel ;
  • XMLSpear .

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

Чем открыть XML в онлайн

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

В этом случае пользователь может обратиться к онлайн-сервисам. Чем открыть XML через интернет?

Браузер

Эту возможность поддерживают все . Но важно учитывать, что документ не содержит информации о том, как именно должны быть отображено содержимое, соответственно браузер откроет его «как есть».

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

Xmlgrid.net

Самый популярный онлайн-сервис для работы с документами формата XML. Он позволяет открывать, просматривать и вносить изменения в документы.

Для работы с редактором достаточно перейти на его страницу в интернете. С помощью команды Open File загружаем нужный документ и выполняем все задуманные действия.
Интерфейс реализован на английском языке, но в общих чертах все интуитивно понятно.

CodeBeautify

Ещё один онлайн-инструмент пригодный для работы с файлами данного формата. Прежде чем начать деятельность требуется пройти на сайт сервиса и выбрать тип документа, с которым планируется работа.

Помимо открытия и редактирования документа, сервис позволяет произвести конвертацию содержимого в разные форматы.

XSL Transformation

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

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

  • Yii
  • При разработке системы электронного документооборота потребовалось реализовать функции для экспорта данных в популярных форматах. В частности, в формате Microsoft Excel. Требования к экспорту были довольно простые – экспортировать данные с минимумом форматирования, т.е. никаких объединенных ячеек, игр со шрифтами и т.п. Форматы экспорта XLSX и Excel XML.

    В данном случае расскажу про Excel XML .

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

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

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

    Помимо описанных требований, понадобилось добавить сервисные функции:

    • Включение автофильтра
    • Сжатия файла в zip .

    Реализация

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

    Public function writeDocumentProperties($organization = null, $user = null) { fwrite($this->file, ""); if (!is_null($user)) { fwrite($this->file, "".$user->description.""); fwrite($this->file, "".$user->description.""); } $dt = new Datetime(); $dt_string = $dt->format("Y-m-d\TH:i:s\Z"); fwrite($this->file, "".$dt_string.""); fwrite($this->file, "".$dt_string.""); if (!is_null($organization)) fwrite($this->file, "".$organization->name.""); fwrite($this->file, "12.00"); fwrite($this->file, ""); }
    Правда, именно в этой функции используются сущности системы документооборота - organization (организация) и user (пользователь). Заменить эти сущности на, скажем, строковые значения, не проблема.

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

    Public function writeStyles() { fwrite($this->file, ""); //default style fwrite($this->file, ""); //Datetime style fwrite($this->file, ""); fwrite($this->file, ""); fwrite($this->file, ""); //Hyperlink style fwrite($this->file, ""); //Bold fwrite($this->file, ""); fwrite($this->file, ""); }

    Подготовительные работы закончил, можно переходить к записи данных. Открытие рабочего листа – это всего пара тэгов, как раз в этот момент используется информация о количестве колонок и рядов.

    Public function openWorksheet() { fwrite($this->file, ""); fwrite($this->file, strtr("

    ", array("{col_count}"=>$this->colCount, "{row_count}"=>$this->rowCount))); }
    Но вот запись рядов – процесс поинтереснее. Класс должен работать быстро и обрабатывать неограниченный объем данных, ведь записей может быть тысяч сто или даже миллион! Хочешь скорости – работай с памятью, хочешь неограниченный объем данных – работай с диском. Чтобы помирить требования, реализовал функции resetRow и flushRow.
    Первая – очищает текущий ряд, после чего его снова можно наполнять данными, а вторая – записывает текущий ряд в открытый файл на диск. Их совместное использование позволяет выдерживать баланс между скоростью и объемом используемой памяти.

    Public function resetRow() { $this->currentRow = array(); } public function flushRow() { fwrite($this->file, implode("", $this->currentRow)); unset($this->currentRow); }
    Каждая ячейка записывается функцией соответствующей типу данных, а именно appendCellxxx, где xxx – тип данных. Допустимые типы данных: Num, String, Real, DateTime, Date, Time, Link. Пример функции для записи числового значения:

    Public function appendCellNum($value) { $this->currentRow = "".$value.""; }
    После записи всех данных остается закрыть рабочий лист и рабочую книгу.

    Применение

    Использование описанного класса основано на экспорте данных с помощью провайдера CArrayDataProvider . Однако, предполагая, что объем экспортируемых данных может оказаться очень большим применен специальный итератор CDataProviderIterator , который перебирает возвращаемые данные по 100 записей (можно указать иное число записей).

    Public function exportExcelXML($organization, $user, &$filename) { $this->_provider = new CArrayDataProvider(/*query*/); Yii::import("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $export = new AlxdExportExcelXML($filename, count($this->_attributes), $this->_provider->getTotalItemCount() + 1); $export->openWriter(); $export->openWorkbook(); $export->writeDocumentProperties($organization, $user); $export->writeStyles(); $export->openWorksheet(); //title row $export->resetRow(); $export->openRow(true); foreach ($this->_attributes as $code => $format) $export->appendCellString($this->_objectref->getAttributeLabel($code)); $export->closeRow(); $export->flushRow(); //data rows $rows = new CDataProviderIterator($this->_provider, 100); foreach ($rows as $row) { $export->resetRow(); $export->openRow(); foreach ($this->_attributes as $code => $format) { switch ($format->type) { case "Num": $export->appendCellNum($row[$code]); /*other types*/ default: $export->appendCellString(""); } } $export->closeRow(); $export->flushRow(); } //close all $export->closeWorksheet(); $export->closeWorkbook(); $export->closeWriter(); //zip file $export->zip(); $filename = $export->getZipFullFileName(); }
    В моем случае, каждый ряд записывается на диск, что, пока, является вполне приемлемым, но в будущем, возможно, потребует изменений. Например, будет разумно сохранять не каждый ряд, а каждый десяток или даже сотню рядов за раз. Тогда скорость экспорта увеличится.

    Скорость

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

    Если необходимо создать файл XML-данных и файл схемы XML из диапазона ячеек на листе, можно использовать версию 1.1 надстройки "Средства XML для Excel 2003" для расширения существующих возможностей XML в Microsoft Excel 2007 и более поздних версиях.

    Примечание: Эта надстройка была разработана для Excel 2003. Документация и пользовательский интерфейс ссылаются на списки, которые в версиях приложения позднее Excel 2003 называются таблицами Excel.

    Дополнительные сведения о работе с этой надстройкой см. в статье Использование надстройки "Средства XML" версии 1.1 для Excel 2003 .

    Этап 2. Преобразование диапазона ячеек в таблицу XML

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

      На вкладке Надстройки в группе Команды меню щелкните стрелку возле надписи Средства , а затем нажмите кнопку Преобразовать диапазон в список XML .

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

      В поле Первая строка содержит имена столбцов выберите Нет , если первая строка содержит данные, или Да , если первая строка содержит заголовки столбцов, и нажмите кнопку ОК .

      Excel автоматически создаст схему XML, выполнит привязку ячеек к схеме и создаст таблицу XML.

      Важно: Если откроется редактор Visual Basic и отобразится сообщение об ошибке Visual Basic for Applications (VBA), выполните следующие действия.

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

        В выделенную строку в модуле кода VBA удалите из строки «50». Другими словами, изменение:
        XMLDoc как msxml 2 . DOMDocument50
        Кому:
        XMLDocкак MSXML2 описывается. DOMDocument

        Нажмите клавишу F5 для поиска следующей строки, содержащей текст "XMLDoc As msxml2.DOMDocument50", нажмите кнопку ОК и измените строку, как в предыдущем пункте.

        Нажмите F5 еще раз, чтобы найти и изменить другие экземпляры строки.

        Если после нажатия клавиши F5 сообщения об ошибке VBA больше не отображается, закройте редактор Visual Basic, чтобы вернуться в книгу. Диапазон ячеек будет преобразован в XML-таблицу.

        Примечание: Чтобы отобразить все карты XML в книге, на вкладке Разработчик в группе XML нажмите кнопку Источник для отображения области задач «Источник XML». В нижней части области задач «Источник XML» нажмите кнопку Карты XML .

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

    Действие 3. Экспорт XML-таблицы в файл XML-данных (XML)

    Примечание: При создании карт XML и экспорте данных в Excel в XML-файлы существует ограничение на количество строк, которые можно экспортировать. При экспорте в XML-файл из Excel можно сохранить до 65 536 строк. Если файл содержит более 65 536 строк, Excel сможет экспортировать только первые строки (число строк mod 65 537). Например, если лист содержит 70 000 строк, Excel экспортирует 4464 строки (70 000 mod 65 537). Мы рекомендуем последовать одному из следующих советов: 1) используйте формат XLSX; 2) сохраните файл в формате "Таблица XML 2003 (*.xml)" (при этом будут потеряны сопоставления); 3) удалите все строки после 65 536 и затем снова выполните экспорт (при этом сопоставления сохранятся, но будут потеряны строки в конце файла).