Экспорт данных XML
После импорта данных XML, сопоставления данных с ячейками листа и внесения изменений в данные часто бывает нужно экспортировать или сохранить данные в виде XML-файла.
Перед экспортом данных XML необходимо включить вкладку «Разработчик» на ленте. См. вкладку «Разработчик».
При создании карт XML и экспорте данных Excel в XML-файлы существует ограничение на количество строк, которые можно экспортировать. При экспорте в XML-файл из Excel можно сохранить до 65 536 строк. Если файл содержит более 65 536 строк, Excel сможет экспортировать только число строк, определяемое формулой ЧСТРОК ОСТАТ 65537. Например, если лист содержит 70 000 строк, Excel экспортирует 4464 строки (70000 ОСТАТ 65537). Рекомендуем сделать следующее: 1) использовать формат XLSX; 2) сохранить файл в формате «Таблица XML 2003 (*.xml)» (при этом будут потеряны сопоставления); 3) удалить все строки после 65 536 и затем снова выполнить экспорт (при этом сопоставления сохранятся, но будут потеряны строки в конце файла).
Экспорт данных XML (не более 65 536 строк)
На вкладке Разработчик нажмите кнопку Экспорт.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
Если откроется небольшое диалоговое окно Экспорт XML, щелкните карту XML, которую вы хотите использовать, и нажмите кнопку ОК.
Это диалоговое окно отображается только в том случае, если не выбрана XML-таблица и книга содержит несколько карт XML.
В большом диалоговом окне Экспорт XML в поле Имя файла введите имя файла XML-данных.
Нажмите кнопку Экспорт.
Примечание: Если лист содержит заголовки или метки, отличающиеся от имен XML-элементов на карте XML, то при экспорте или сохранении данных XML приложение Excel использует имена XML-элементов.
Экспорт данных XML (для более чем 65 536 строк)
Найдите разность общего количества строк в файле и числа 65 537. Обозначим это число как x.
Удалите x строк с начала листа Excel.
Экспортировать этот таблицу в файл данных XML (см. предыдущий раздел процедуры).
Нажмите кнопку «Закрыть», но не сохраните лист. Затем снова откроете таблицу Excel.
Удалите все данные после x итогов, а затем экспортировать их в файл данных XML (см. предыдущий раздел процедуры).
Это позволит не потерять оставшуюся часть данных. После этого у вас будет два файла экспорта XML, которые можно объединить для создания дубликата исходного таблицы.
Если нужно обеспечить обратную совместимость с более ранними версиями функциональности XML, можно сохранить файл в виде файла данных XML, а не использовать команду Экспорт.
Нажмите клавиши CTRL+S, чтобы сохранить файл.
Это действие гарантирует, что никакие изменения, внесенные в книгу, не будут потеряны, если она сохранена в виде файла данных XML.
Нажмите кнопку > «Сохранитькак» и выберите расположение для сохранения файла.
Только в Excel 2007 нажмите кнопку «Microsoft Office» 
В поле Имя файла введите имя файла данных XML.
В списке Тип файла выберите тип Данные XML и нажмите кнопку Сохранить.
Если появится сообщение о том, что сохранение файла в виде данных XML может привести к потере функциональности, нажмите кнопку Продолжить.
Если откроется небольшое диалоговое окно Экспорт XML, щелкните карту XML, которую вы хотите использовать, и нажмите кнопку ОК.
Это диалоговое окно отображается только в том случае, если не выбрана XML-таблица и книга содержит несколько карт XML.
В большом диалоговом окне Экспорт XML введите в поле Имя файла имя для файла данных XML.
Нажмите кнопку Экспорт.
Примечание: Если лист содержит заголовки или метки, отличающиеся от имен XML-элементов на карте XML, то при экспорте или сохранении данных XML приложение Excel использует имена XML-элементов.
При экспорте данных XML могут появляться сообщения, подобные приведенным ниже.
Такое сообщение может появиться по следующим причинам.
На карте XML, связанной с этой XML-таблицей, есть один или несколько необходимых элементов, которые с ней не сопоставлены.
В иерархическом списке элементов в области задач источника XML необходимые элементы обозначены красной звездочкой в правом верхнем углу значка слева от каждого из них. Чтобы соповестить необходимый элемент, перетащите его в нужное место на нем.
Элемент представляет собой рекурсивную структуру.
Типичный пример рекурсивной структуры — иерархия сотрудников и руководителей, в которой одни и те же XML-элементы вложены на нескольких уровнях. Хотя возможно, вы соекнули все элементы в области задач «Источник XML», Excel не поддерживает рекурсивные структуры глубиной более одного уровня и поэтому не может соеоставить все элементы.
XML-таблица содержит смешанное содержимое.
Смешанное содержимое возникает, когда элемент содержит дочерний элемент и простой текст за пределами дочернего элемента. Это часто бывает в случае, когда теги форматирования (например, теги полужирного начертания) используются для пометки данных внутри элемента. Дочерний элемент может отображаться (если он поддерживается в Excel), но текстовое содержимое теряется при импорте данных и недоступно при экспорте, т. е не используется ни при прямой, ни при обратной операции.
Карту XML не удастся экспортировать, если невозможно сохранить отношения сопоставленного элемента с другими элементами. Отношение может не сохраниться по следующим причинам.
Определение схемы сопоставленного элемента содержится в последовательности со следующими атрибутами:
атрибут maxoccurs не равен 1;
последовательность содержит более одного прямого дочернего элемента или включает в себя другой составной объект в качестве такого элемента.
Неповторяющиеся элементы одного уровня с одним и тем же повторяющимся родительским элементом сопоставлены с разными XML-таблицами.
Несколько повторяющихся элементов сопоставлены с одной и той же XML-таблицей, и повторение не определено предком.
Дочерние элементы разных родительских элементов сопоставлены с одной и той же XML-таблицей.
Кроме того, невозможно экспортировать карту XML, если она содержит одну из следующих конструкций схемы XML.
Список списков. В одном списке элементов есть другой список элементов.
Ненормированные данные. XML-таблица содержит элемент, который в соответствии с определением в схеме должен встречаться один раз (атрибуту maxoccurs присвоено значение 1). При добавлении такого элемента в XML-таблицу Excel заполнит столбец таблицы несколькими его экземплярами.
Приложение Excel не может сохранить книгу в файле данных XML, пока вы не создадите один или несколько сопоставленных диапазонов.
Если вы добавили в книгу карту XML, для сопоставления XML-элементов на листе сделайте следующее.
На вкладке Разработчик выберите команду Источник.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
В области задач Источник XML выберите элементы, которые нужно сопоставить с листом.
Чтобы выделить несмежные элементы, щелкните один из них, а затем, удерживая нажатой клавишу CTRL, поочередно щелкните остальные.
Перетащите выделенные элементы в то место листа, где они должны отображаться.
Если вы не добавили карту XML в книгу или данные не находятся в XML-таблице, сохраните книгу в формате книги Excel с поддержкой макросов (XLSM).
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Конвертация файлов XML в форматы Excel
XML является одним из самых распространенных форматов для хранения данных и обмена ими между различными приложениями. С данными работает и программа Microsoft Excel, поэтому очень актуальным является вопрос конвертации файлов из стандарта XML в форматы Excel. Выясним, как произвести эту процедуру различными способами.
Процесс конвертации
XML-файлы написаны на специальном языке разметки чем-то похожим на HTML веб-страниц. Поэтому у этих форматов довольно сходная структура. В то же время, Эксель – это в первую очередь программа, имеющая несколько «родных» форматов. Самые известные из них: Книга Excel (XLSX) и Книга Excel 97 – 2003 (XLS). Выясним основные способы конвертации файлов XML в эти форматы.
Способ 1: встроенный функционал Excel
Программа Excel отлично работает с файлами формата XML. Она может открывать их, изменять, создавать, сохранять. Поэтому самый простой вариант поставленной перед нами задачи — это открыть данный объект и сохранить его через интерфейс приложения в виде документов XLSX или XLS.
Из предложенных вариантов выбираем Книга Excel или Книга Excel 97-2003. Первый из них более новый, второй – уже несколько устаревший.
На этом процедура конвертации файла XML в формат Excel через интерфейс программы окончена.
Способ 2: импорт данных
Вышеописанный способ подходит только для файлов XML с самой простой структурой. Более сложные таблицы при конвертации таким способом могут быть переведены некорректно. Но, существует ещё один встроенный инструмент Excel, который поможет корректно произвести импорт данных. Он расположен в «Меню разработчика», которое по умолчанию отключено. Поэтому, прежде всего, его нужно активировать.
Таким образом, конвертация в нужном для нас направлении будет совершена с максимально корректным преобразованием данных.
Способ 3: онлайн-конвертер
Тем пользователям, у которых по какой-то причине не установлена на компьютере программа Эксель, но нуждающимся в срочном преобразовании файла из формата XML в EXCEL, можно воспользоваться одним из множества специализированных онлайн-сервисов для конвертации. Одним из наиболее удобных сайтов подобного типа является Convertio.
Так как в нашем случае документ размещен на ПК, то жмем на кнопку «С компьютера».
Данный вариант может послужить хорошей подстраховкой на случай неимения доступа к стандартным инструментам для переформатирования по данному направлению.
Как видим, в самом Экселе есть встроенные инструменты, позволяющие преобразовать файл формата XML в один из «родных» форматов этой программы. Простейшие экземпляры можно легко конвертировать через обычную функцию «Сохранить как…». Для документов с более сложной структурой существует отдельная процедура преобразования через импорт. Те пользователи, которые по какой-либо причине не могут воспользоваться данными инструментами, имеют возможность выполнить задачу с помощью специализированных онлайн-сервисов для конвертации файлов.
Помимо этой статьи, на сайте еще 12441 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Как перевести файл Excel в XML онлайн бесплатно
Формат XML относится к файлам расширяемого языка разметки. Представляет собой обычный текстовый документ, структура которого отображает описание документа и пользовательские теги. Привлекательная особенность XML в том, что он позволяет прочитать и понять содержащуюся информацию и для этого совсем не обязательно знать, в какой программе файл создавался. У большинства пользователей возникает потребность в конвертации из формата Excel в XML. Специальные конвертеры помогут вам закрыть данный вопрос.
Как перевести Excel в XML при помощи конвертера Smallpdf
Одним из самых главных достоинств этого метода является то, что его не нужно скачивать и нет необходимости в установке какого-либо дополнительного программного обеспечения. Самый удобный сервис — Smallpdf. Разберем подробнее, как он работает.
Для того чтобы перевести Excel в XML при помощи конвертера Smallpdf выполните следующие действия:
Перевод Excel в XML при помощи сервиса PDFBurger
Для того чтобы преобразовать файл из формата Excel в XML Online (или наоборот) можно воспользоваться специальными конвертерами. Большинство из подобных сервисов платные или перегружены информацией и, по факту, не дающие необходимых результатов. А вот сервис PDFBurger абсолютно бесплатен и имеет простой функционал.
Чтобы перевести Excel в XML при помощи конвертера PDFBurger выполните следующие действия:
Примечание: готовые файлы хранятся здесь около шести часов, поэтому сохранить их можно и немного позже после преобразования, не боясь, что они будут удалены.
Переводим Excel в формат XML через конвертер Convertio
Одним из популярных и удобных сервисов для решения данной задачи является онлайн-конвертер Convertio. Он позволяет преобразовать любой документ.
Для того чтобы преобразовать Excel в XML выполните следующие действия:
Преобразование файлов Excel в XML и обратно
Немного об Excel и XML
Итак, прежде чем узнать, как открыть, создать или перевести файл XML в Excel и обратно, давайте поближе познакомимся с типами этих файлов. Здесь нужно сразу отметить, что документы Excel имеют множество форматов, в то время, как XML — и есть формат файла. Поэтому не стоит путать эти два понятия.
Microsoft Excel является мощной программой для вычислений с множеством полезных функций
Программа Microsoft Excel является специальной утилитой, предназначенной для создания и редактирования таблиц. С ними вы уже можете делать всё что угодно: создавать базы, диаграммы, формулы и другие типы данных. Это очень мощный инструмент, поэтому все его возможности мы обсуждать не будем. Сегодня наша цель несколько другая, и мы не станем отходить от темы сегодняшней дискуссии.
Файлы XML, для более простого понимания, предназначены для хранения, обмена различных данных между утилитами. Особенно часто пользуются этим языком разметки при передаче информации через интернет. И когда вам нужно перенести табличные данные из Экселя на сайт, например, то вам нужно будет преобразовать свой документ, чтобы он правильно отображался. Поэтому давайте не будем оттягивать момент истины и сразу приступим к выполнению операции.
Как преобразовать Excel в XML
Дорогие друзья, на самом деле преобразование файлов является достаточно простым занятием. Однако, у некоторых пользователей могут возникнуть проблемы при переносе данных, поэтому сегодня мы с вами рассмотрим несколько способов для осуществления нашего замысла. Поэтому набираемся терпения и приступаем к действиям:
Как перевести XML в Excel
Прежде чем перевести XML в Excel, нужно его для начала открыть. Рассмотрим весь этот непродолжительный процесс ниже. Итак, приступаем:
Подведём итоги
Дорогие читатели, сегодня мы с вами узнали не только как преобразовать файлы XML в Excel и обратно, но и как создать и открыть их при несовместимости версий. Надеемся, что у вас всё получилось и больше не осталось никаких вопросов. Не забываем делиться в комментариях своим мнением и опытом: возможно, вы знаете простой способ конвертации. Расскажите другим пользователям, получилось ли у вас перевести один тип документа. Если сработало, то поделитесь тем, каким способом воспользовались вы.
Простой экспорт в Excel XML
При разработке системы электронного документооборота потребовалось реализовать функции для экспорта данных в популярных форматах. В частности, в формате Microsoft Excel. Требования к экспорту были довольно простые – экспортировать данные с минимумом форматирования, т.е. никаких объединенных ячеек, игр со шрифтами и т.п. Форматы экспорта XLSX и Excel XML.
Задача
Реализовать в классе набор функций для записи значений ячеек и ряда – основное требование, подразумевающее создание функций для записи значений ячеек указанных типов и возможность записи готового ряда в файл.
Возможность работы с неограниченным объемом данных – разумеется, сам класс экспорта отвечать за записываемый объем не сможет, но он должен предоставить функции для записи данных на диск и освобождения оперативной памяти для следующей порции данных.
Реализация
Прежде всего, при создании класса осуществляю проверку конечного имени файла и запрашиваю количество колонок и рядов. Файл должен иметь корректное имя, а папка, в которую он будет сохранен, должна существовать. Все как обычно.
Формат Excel XML позволяет сохранять в файле информацию о пользователе, который его создал, поэтому, при создании заголовка записываю название организации, информация о пользователе и дате создания файла.
Правда, именно в этой функции используются сущности системы документооборота — organization (организация) и user (пользователь). Заменить эти сущности на, скажем, строковые значения, не проблема.
Наиболее интересной в заголовке является информация о стилях. В формате Excel XML они реализованы очень удобно, поэтому просто создаю таблицу со стилями для строк, даты/времени и гиперссылки.
Подготовительные работы закончил, можно переходить к записи данных. Открытие рабочего листа – это всего пара тэгов, как раз в этот момент используется информация о количестве колонок и рядов.
Но вот запись рядов – процесс поинтереснее. Класс должен работать быстро и обрабатывать неограниченный объем данных, ведь записей может быть тысяч сто или даже миллион! Хочешь скорости – работай с памятью, хочешь неограниченный объем данных – работай с диском. Чтобы помирить требования, реализовал функции resetRow и flushRow.
Первая – очищает текущий ряд, после чего его снова можно наполнять данными, а вторая – записывает текущий ряд в открытый файл на диск. Их совместное использование позволяет выдерживать баланс между скоростью и объемом используемой памяти.
Каждая ячейка записывается функцией соответствующей типу данных, а именно appendCellxxx, где xxx – тип данных. Допустимые типы данных: Num, String, Real, DateTime, Date, Time, Link. Пример функции для записи числового значения:
После записи всех данных остается закрыть рабочий лист и рабочую книгу.
Применение
Использование описанного класса основано на экспорте данных с помощью провайдера CArrayDataProvider. Однако, предполагая, что объем экспортируемых данных может оказаться очень большим применен специальный итератор CDataProviderIterator, который перебирает возвращаемые данные по 100 записей (можно указать иное число записей).
В моем случае, каждый ряд записывается на диск, что, пока, является вполне приемлемым, но в будущем, возможно, потребует изменений. Например, будет разумно сохранять не каждый ряд, а каждый десяток или даже сотню рядов за раз. Тогда скорость экспорта увеличится.
Скорость
Кстати, на собственном опыте убедился, как важно предполагать возможность существования больших объемов данных при пакетной операции, такой как экспорт.
Изначально, пытался осуществлять экспорт данных используя CActiveDataProvider, что требовало при экспорте 1000 записей порядка 240 секунд! Изменив запрос так, чтобы использовать CArrayDataProvider сократил время экспорта 1000 записей до 0.5 секунды!
Специально для этой публикации замерил показатели экспорта.
Экспортировал 1626 записей с 9 атрибутами, представляющих собой информацию о закрытых инцидентах (см. ITSM).
Исходный вид экспортируемой таблицы
(извините, картинка исчезает после публикации)
Результат
(извините, картинка исчезает после публикации)
Показатели экспорта
Объем конечного файла: 1 312 269
Объем сжатого файла: 141 762
Затраченное время: примерно 0.5 сек
Кому интересно, может получить исходный код моего класса AlxdExportExcelXML безвозмездно. Только надо не забыть поправить функцию writeDocumentProperties, чтобы отвязаться от сущностей системы документооборота organization и user, или использовать свои аналогичные сущности с соответствующими свойствами.




























