Как конвертировать xls в xml
Преобразование файлов Excel в XML и обратно
Немного об Excel и XML
Итак, прежде чем узнать, как открыть, создать или перевести файл XML в Excel и обратно, давайте поближе познакомимся с типами этих файлов. Здесь нужно сразу отметить, что документы Excel имеют множество форматов, в то время, как XML — и есть формат файла. Поэтому не стоит путать эти два понятия.
Microsoft Excel является мощной программой для вычислений с множеством полезных функций
Программа Microsoft Excel является специальной утилитой, предназначенной для создания и редактирования таблиц. С ними вы уже можете делать всё что угодно: создавать базы, диаграммы, формулы и другие типы данных. Это очень мощный инструмент, поэтому все его возможности мы обсуждать не будем. Сегодня наша цель несколько другая, и мы не станем отходить от темы сегодняшней дискуссии.
Файлы XML, для более простого понимания, предназначены для хранения, обмена различных данных между утилитами. Особенно часто пользуются этим языком разметки при передаче информации через интернет. И когда вам нужно перенести табличные данные из Экселя на сайт, например, то вам нужно будет преобразовать свой документ, чтобы он правильно отображался. Поэтому давайте не будем оттягивать момент истины и сразу приступим к выполнению операции.
Как преобразовать Excel в XML
Дорогие друзья, на самом деле преобразование файлов является достаточно простым занятием. Однако, у некоторых пользователей могут возникнуть проблемы при переносе данных, поэтому сегодня мы с вами рассмотрим несколько способов для осуществления нашего замысла. Поэтому набираемся терпения и приступаем к действиям:
Как перевести XML в Excel
Прежде чем перевести XML в Excel, нужно его для начала открыть. Рассмотрим весь этот непродолжительный процесс ниже. Итак, приступаем:
Подведём итоги
Дорогие читатели, сегодня мы с вами узнали не только как преобразовать файлы XML в Excel и обратно, но и как создать и открыть их при несовместимости версий. Надеемся, что у вас всё получилось и больше не осталось никаких вопросов. Не забываем делиться в комментариях своим мнением и опытом: возможно, вы знаете простой способ конвертации. Расскажите другим пользователям, получилось ли у вас перевести один тип документа. Если сработало, то поделитесь тем, каким способом воспользовались вы.
Как сделать из excel xml?
XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.
Процедура конвертации
Конвертация данных в формат XML не такой уж простой процесс, так как в его ходе должна быть создана специальная схема (schema.xml). Впрочем, для преобразования информации в простейший файл данного формата достаточно иметь под рукой обычные инструменты сохранения в Excel, а вот для создания хорошо структурированного элемента придется основательно повозиться с составлением схемы и её подключением к документу.
Способ 1: простое сохранение
В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.
Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.
Таким образом, преобразование файла из формата Excel в XML будет совершено.
Способ 2: инструменты разработчика
Конвертировать формат Excel в XML можно с помощью инструментов разработчика на вкладке программы. При этом, если пользователь все выполнит правильно, то на выходе он получит, в отличие от предыдущего способа, полноценный XML-файл, который корректно будет восприниматься сторонними приложениями. Но сразу нужно сказать, что не каждому новичку может хватить знаний и умений сразу научится конвертировать данные таким способом.
Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set». В этой же роли для каждой строки выступает тег «record». Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».
Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…». Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Конвертер файлов / Документы / Конвертировать в XLS / XML конвертер / XLS в XML
Вы можете перевести XLS документ в XML и во множество других форматов с помощью бесплатного онлайн конвертера.
Выберите файл с компьютера, Google Диска, Dropbox или перетащите его на страницу
Выберите xml или любой другой формат, который вам нужен (более 100 поддерживаемых форматов)
Скачайте ваш xml файл
Microsoft Excel Binary File Format
XLS – представляет собой электронную таблицу, созданную популярным приложением Microsoft Excel. Включает в себя данные документа, которые расположены в ячейках, обладающих определенным адресом. Они могут содержать формулы, математические уравнения, имеющие связь с информацией в других ячейках, и фиксированные сведения. Нередко применяется для разработки графиков и схем. Формат позволяет хранить и редактировать большой круг параметров – изображения, таблицы, макросы, шрифты, диаграммы. Широко использовался до появления версии Excel 2007 года, а затем был заменен на расширение XMLSS. Сведения внутри документа XLS содержатся в серии потоков статичного размера, их месторасположение описывается с помощью нескольких таблиц распределения сегментов. Отличается обратной совместимостью и поддерживает различные форматы файлов, созданных для DOS. Нередко применяется веб-браузерами с целью исключить использование бинарных форматов. Утилита входит в офисный пакет Microsoft и кроме Excel может открываться различными приложениями вроде Apache Open Office, Libre Office, адаптированных к ОС MacOS, Windows или Linux.
Востребованность формата объясняется его простотой, хотя он не поддерживает отдельные функции, например, хранение макросов VBA. Вплоть до появления XMLSS приложение Excel при форматировании применяло расширение Biff, созданное на базе формата-контейнера IFF. Благодаря этому были доступны изменения шаблонов книг и их содержание. После внедрения в 2007 году нового формата программа не утратила свойств обратно совместимой, что гарантирует широкое распространение XLS и в будущем. Впоследствии на смену расширению XLS пришли форматы XLSM, XLSB и XLSX.
Конвертация xls в xlsx и xml на C#
В этой статье я постараюсь рассказать об одном из возможных путей конвертации документов формата xls в xml.
Непосредственно моя задача выглядела примерно так:
Дано:
Должен заметить, эта задача отнюдь не из простых, и решить ее, также как это было сделано с новыми офисными форматами (docx и xlsx), не получится по следующим причинам:
Однако, нативной библиотеки от Microsoft, которая бы решала, казалось бы, столь очевидную проблему совместимости старых и новых офисных форматов, в природе не существует. Платные библиотеки требовали обоснования необходимости их покупки и, также, отдаляли момент начала их использования (на срок проведения закупочных процедур), а бесплатные решения, написанные для питона и линукса, требовали внесения существенных изменений в архитектуру проекта. И вот тут, казалось бы, самое время начинать рвать волосы из подмышек, но, как говорится, всегда найдется азиат!
Поэтому, думаю, представленное ниже решение, можно использовать не только для конвертации xls в xlsx, но и в качестве небольшого примера, демонстрирующего возможности либы.
Давайте кодить
Подготовка
Разберем метод, отвечающий за копирование стилей
Как вы видите, для того, чтобы сохранить аутентичное внешнее представление, нам необходимо произвести копирование шрифтов из одного файла в другой, а также применить стили старого файла к соответствующим ячейкам нового.
За копирование шрифтов отвечает метод void CopyFont(IFont toFront, IFont fontFrom)
Думаю, из имен свойств можно сделать вывод об их назначении, поэтому комментировать я это не буду — вроде бы итак все предельно понятно.
Копирование и применение соответствующих стилей для каждой ячейки осуществляется в этом методе:
Копирование данных из файла xls в новый файл xlsx
Перейдем к процессу копирования содержимого из файла xls в новый файл xlsx.
Логика данного метода сводится к вызову метода CopyRow(source, destination, srcRow, destRow, mergedRegions) — что происходит в нем расскажу чуть ниже. Помимо вызова указанного метода, в CopySheet происходит поиск номер последней заполненной ячейки в строке. Это необходимо для того, чтобы верно скопировать ширину каждого столбца (да, конвертация xls в xlsx предусматривает даже такой нюанс).
Разберем метод void CopyRow(HSSFSheet srcSheet, XSSFSheet destSheet, HSSFRow srcRow, XSSFRow destRow, List mergedRegions) :
Этот метод выполняет две функции:
Метод копирования данных и стилей для каждой ячейки:
В этом методе происходит следующее:
Как можно видеть, в указанном методе происходит не слепое копирование содержимого ячеек, а с сохранением типов данных и исходного функционала (когда, ячейка содержит функцию).
Обработка объединенных ячеек
Вернемся к обработке ячеек, включенных в группу объединенных.
Как было показано выше, за это отвечают методы CellRangeAddress GetMergedRegion(HSSFSheet sheet, int rowNum, short cellNum) и bool IsNewMergedRegion(CellRangeAddress newMergedRegion, List mergedRegions) :
Указанный метод сопоставляет текущую область объединенных ячеек с той областью, к которой относится текущая ячейка, которая входит в состав нескольких объединенных ячеек. Как можно увидеть, сравнение происходит по 4-м крайним точкам каждой из областей (первая и последняя колонка, первая и последняя строчка проверяемой области).
На этом процесс преобразования xls в xlsx можно считать законченным.
С моей стороны будет свинством не сказать, что данный код был нагло сплагиачен со stackoverflow, который в свою очередь представляет собой переработанное решение по конвертации xlsx в xls, которое также лежит на stackoverflow.
Дополнительный функционал
Предлагаю добавить возможность конвертации с записью полученного результата в файл:
Также, не будем забывать, что цикл статей посвящен конвертации разных текстовых файлов в xml:
С полным кодом программы Вы можете ознакомиться здесь
Конвертировать XLS в XML массово
XLS формат документов очень популярен и широко распространен среди пользователей ПК, многие учетные и прочие системы уже умеют выгружать документы в этом формате (1С, учетные системы сбытовых организаций, различные биллинги и прочие).
XML формат файлов тоже популярен, но он уже относится к техническим форматам обработки и переноса/передачи данных между системами, с которым пользователи обычно не работают из-за более сложной структуры хранения данных и обработки.
В ЭДО часто ставится задача иметь возможность конвертировать удобные для пользователя документы в формате xls в xml формат для программной обработки учетными системами пользователей и ФНС.
Конвертировать xls в xml можно многочисленными конвертерами, но они зачастую используют встроенные механизмы конвертации данных как есть (что не отличается от стандартной функции «сохранить как»), и без логической обработки данных.
Эту задачу тоже можно решить, но уже потребуются специфические знания и навыки работы с xls документами, инструментами разработчика. Да и потоковой конвертации добиться встроенными средствами проблематично.
xls в xml потоковая конвертация
Есть простое решение, конвертировать xls в xml, наиболее удобное и быстрое к запуску — Hedo connector (скачать) для любых задач в т.ч. задач в ЭДО, или онлайн конвертация документов в актуальные форматы ФНС, которые можно конвертировать на нашем сайте в два клика уже сейчас.
Hedo connector — это десктопное приложение для потоковой конвертации xls файлов в xml формат с логической обработкой «из коробки». Суть этой обработки в том, что при необходимости всегда можно поменять структуру конечного документа, а само по себе приложение не требует установки, поэтому легко масштабируется и гибко настраивается.
На этом возможные сферы применения конвертера Hedo connector не исчерпываются, с помощью него же можно потоково конвертировать xml в xml с промежуточной конвертацией и обработкой данных на лету. Без применения других специальных средств.
Казалось бы для чего это может потребоваться конвертация?!
Однако, поскольку xml формат используется для программной обработки, а единого (универсального) протокола обмена данными не существует, системы могут работать со своими специфическими структурами документов. В таком случае может потребоваться конвертировать xml в xml или csv в xml и другие форматы.
У вас остались вопросы по работе приложения или необходимо помочь с решением ваших бизнес-задач? Напишите нам, мы поможем с их решением.
Экспорт данных 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.