Как перевести файл из xls в xml?

XML – популярный формат для обмена данными между приложениями. Существует возможность конвертации файлов Excel в данный формат.

Конвертация форматов Microsoft Excel в XML

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

Процедура конвертации

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

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

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

  1. Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».

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

Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».

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

Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.

  • После этого жмем на кнопку «Сохранить».

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

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

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

    1. По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку

«Файл»

    1. и кликаем по пункту

«Параметры»

    .

В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты». В правой части окна устанавливаем галочку около значения «Разработчик». После этого жмем на кнопку «OK», размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.

Далее открываем таблицу Excel в программе любым удобным способом.

На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки Notepad++. Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.

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

В открывшемся окне кликаем по кнопке «Добавить…».

Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть».

После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.

  • Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «XML» и «Экспорт…». После этого сохраняем файл в любой директории.

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

Помимо этой статьи, на сайте еще 12304 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Преобразование файлов Excel в XML и обратно

Немного об Excel и XML

Итак, прежде чем узнать, как открыть, создать или перевести файл XML в Excel и обратно, давайте поближе познакомимся с типами этих файлов. Здесь нужно сразу отметить, что документы Excel имеют множество форматов, в то время, как XML — и есть формат файла. Поэтому не стоит путать эти два понятия.

Microsoft Excel является мощной программой для вычислений с множеством полезных функций

Программа Microsoft Excel является специальной утилитой, предназначенной для создания и редактирования таблиц. С ними вы уже можете делать всё что угодно: создавать базы, диаграммы, формулы и другие типы данных. Это очень мощный инструмент, поэтому все его возможности мы обсуждать не будем. Сегодня наша цель несколько другая, и мы не станем отходить от темы сегодняшней дискуссии.

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

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

Дорогие друзья, на самом деле преобразование файлов является достаточно простым занятием. Однако, у некоторых пользователей могут возникнуть проблемы при переносе данных, поэтому сегодня мы с вами рассмотрим несколько способов для осуществления нашего замысла. Поэтому набираемся терпения и приступаем к действиям:

  1. Самый простой способ, который может не сработать в некоторых случаях, это сохранение файла в нужном формате в самой программе Microsoft Excel. Для этого откройте необходимый документ в этом приложении. Затем нажмите на кнопку «Файл» (рассматривается на примере Office 2013, в других версиях процесс сохранения может несколько отличаться) в верхнем левом углу окна Экселя, затем пункт «Сохранить как», после чего выберите место сохранения документа, дайте ему имя и во вкладке типа файла укажите «XML данные». После этого проверьте, правильно ли всё у вас получилось. Если нет, то пробуем следующие способы.
  2. Итак, если возникает ошибка в предыдущем случае, то, возможно, в вашей копии программы не предусмотрена поддержка и соответствующие надстройки. Чтобы их установить перейдите на сайт компании Microsoft http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=3108, скачайте и инсталлируйте этот файл к себе на компьютер или ноутбук. Далее, запустите программу Microsoft Excel и нажмите на большую цветную кнопку в левом верхнем углу окна приложения (здесь мы уже смотрим пример на версии 2007-го года). В появившемся блоке кликните по параметрам, слева от выхода из утилиты. Теперь зайдите в пункт надстроек и нажмите на кнопку «Перейти» напротив пункта «Управление». Выскочит диалоговое окно, где нужно кликнуть по обзору и найти документ, который вы скачали с сайта Майкрософта ранее. Теперь кликаем ОК и переходим в основное окно программы, где у вас теперь есть вкладка XML Tools — с помощью него теперь вы спокойно можете создать файл XML из существующей таблицы. Сохранять его нужно аналогично предыдущему пункту.
  3. Если вам совсем не хочется загружать и себя, и свой компьютер такой информацией, то можете прибегнуть к помощи специальных утилит-конвертеров или онлайн-версий этих программ. К примеру, вы можете загрузить приложение Format Factory, которое позволит вам совершить все необходимые действия. Но стоит помнить, что сохранённые и преобразованные таким образом файлы не всегда работают в дальнейшем. То есть во время операции могут повредиться сектора или области в памяти документа, что негативно скажется на нём — он попросту может не открыться в XML-редакторе, например. Поэтому рекомендуется использовать либо профессиональные программы, либо сам Microsoft Excel.

Как перевести XML в Excel

Прежде чем перевести XML в Excel, нужно его для начала открыть. Рассмотрим весь этот непродолжительный процесс ниже. Итак, приступаем:

  1. Запустите программу Microsoft Excel с помощью ярлыка на рабочем столе или через меню проводника.
  2. Нажмите на «Открыть другие книги» внизу главной страницы, если вы используете Office В других версиях процесс может несколько отличаться.
  3. Далее, нажимаем на «Компьютер» или другое место, где расположен ваш XML-файл, затем кликните «Обзор» и смените в появившемся окне тип данных на «Файлы XML».
  4. Теперь ищем необходимый файл и открываем его в нашей программе с помощью одноимённой кнопки.
  5. Далее, обсудим то, как преобразовать наш документ. Перейдите во вкладку разработчика, затем нажмите на кнопку импорта.
  6. В открывшемся окне нужно будет снова найти и выбрать наш документ, над которым вы и хотите произвести действие, затем кликаем на кнопку «Импорт».
  7. Затем настраиваете всё под себя: область для импорта, место сохранения и другие параметры. После чего вы получите таблицу, которую позже можно сохранить в нужном для вас формате. Как видите, ничего сложного нет.
Читайте также  Как изменить формат файла JPG на jpg?

Подведём итоги

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

XLS в XML

  • Converters
  • Document
  • XLS
  • Конвертировать XLS в XML

Конвертировать XLS в XML — онлайн и бесплатно

Перетащите сюда файлы или выберите ссылку
Максимальный размер файла 50МБ (хотите больше?)

Или выберите новый формат

И согласиться с нашими Условиями

Перетащите ваши файлы, чтобы их конвертировать

Мы сразу же ими займёмся

File Size Warning

You are attempting to upload a file that exceeds our 50MB free limit.

You will need to create a paid Zamzar account to be able to download your converted file. Would you like to continue to upload your file for conversion?

Files to Convert

Overall conversion/upload progress:

File Name File Size Progress

Вы в хорошей компании:
Zamzar конвертировал около 510 миллионов файлов начиная с 2006 года

XLS (Document)

Расширение файла .xls
Категория Document File
Описание «Microsoft Excel» является коммерческим приложением электронных таблиц, написанным и распростроняемым «Microsoft» для «Microsoft Windows» и «Mac OS X». Версии «Excel» до 2007 года для сохранения файлов используют формат XLS. В него входят вычисления, графические инструменты, сводные таблицы и макро язык программирования «Visual Basic» для приложений. Он стал широко используемой электронной таблицей на данных платмормах, особенно после 5 версии в 1993 году, а также он почти полностью заменил «Lotus 1-2-3» в качестве стадарта индустрии для электронных таблиц. «Excel» является частью «Microsoft Office». Последние версии – 2010 для «Microsoft Windows» и 2011 для «Mac OS X».
Действия XLS в XML — Конвертировать файл сейчас
View other document file formats
Технические детали До 2007 года «Microsoft Excel» использовал собственный бинарный формат файлов, называемый «Binary Interchange File Format (BIFF)» в качестве главного формата. Используемый в качестве основы для XLS-файлов это постоянный формат, который поддерживает авторинг и манипулирование содержанием рабочих книг и шаблонов рабочих книг. Большинство версий «Microsoft Excel» могут читать форматы CSV, DBF, SYLK, DIF и др.
Ассоциированные программы Microsoft Excel
Microsoft Excel Viewer
OpenOffice
Разработано Microsoft
Тип MIME application/vnd.ms-excel
Полезные ссылки Подробнее о формате XLS
Как отркыть файл XLS без «Microsoft Excel»
Спецификация бинарного формата файлов «Microsoft Office»
XLS Converter

XML (Document)

Расширение файла .xml
Категория Document File
Описание XML это тип файла, содержащий язык разметки. Он доступен для чтения как человеком-пользователем, так и приложениями. Разработанный, чтобы быть хранилищем данных, а не отображать данные, он является независимым от платформы языком и позволяет пользователям определять свои собственные тэги. Его мобильность и независимость от поставщиков сделали этот язык чрезвычайно популярным форматом файлов, особенно в сети. XML позволяет определять структуру данных, которая позволяет другим приложениям интерпретировать и обрабатывать данные внутри XML файлов. XML считается таким же важным для сети, как и HTML.
Действия Convert XML file
View other document file formats
Технические детали Все файлы .XML содержат базовую структуру, в рамках которой пользователи могут определять свои собственные тэги. Каждый файл начинается с того, что называется декларацией XML. Это определяет версию и кодировку внутри самого файла. Затем файл должен определить корневой элемент, известный также как родительский элемент. Затем, корневой элемент получает дочерний элемент (ы). Все тэги в XML-файла должны иметь соответствующий закрывающий тэг. XML-файлы могут содержать комментарии, ссылки на объекты и атрибуты. Затем могут быть разработаны приложения для извлечения значений внутри файла и их представления по желанию.
Ассоциированные программы Chrome
Firefox
Microsoft Internet Explorer
Microsoft Office InfoPath
Notepad
Oxygen XML Editor
Safari
Разработано World Wide Web Consortium
Тип MIME application/xml
application/x-xml
text/xml
Полезные ссылки Подробнее о XML
Учебник XML от «W3Schools»
Официальная документация от «W3C»
Convert XML file

Преобразование файлов XLS

Используя Zamzar можно конвертировать файлы XLS во множество других форматов

  • xls в bmp (Windows bitmap)
  • xls в csv (Comma Separated Values)
  • xls в gif (Compuserve graphics interchange)
  • xls в html (Hypertext Markup Language)
  • xls в html4 (Hypertext Markup Language)
  • xls в html5 (Hypertext Markup Language)
  • xls в jpg (JPEG compliant image)
  • xls в mdb (Microsoft Access Database)
  • xls в numbers (Apple iWork Numbers Spreadsheet)
  • xls в numbers09 (Apple iWork ’09 Numbers Spreadsheet)
  • xls в ods (OpenDocument spreadsheet)
  • xls в pdf (Portable Document Format)
  • xls в png (Portable Network Graphic)
  • xls в rtf (Rich Text Format)
  • xls в tiff (Tagged image file format)
  • xls в txt (Text Document)
  • xls в xlsx (Microsoft Excel 2007 Spreadsheet)
  • xls в xml (Extensible Markup Language)

Экспорт данных 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.

Конвертация xls в xlsx и xml на C#

В этой статье я постараюсь рассказать об одном из возможных путей конвертации документов формата xls в xml.

Непосредственно моя задача выглядела примерно так:

Дано:

  1. 1-2 дня времени на поиск и реализацию решения
  2. Найденное решение должно быть настолько бесплатным, насколько это возможно
  3. Известна примерная структура, размер и содержание файла, которые должны быть обработаны, что снимает необходимость читать графики, диаграммы и иные медианные из документа.
  4. Использовать Interop, равно как и иные библиотеки, которые требуют установки Office нельзя, так как это создает лишнюю нагрузку на сервер и требует дополнительной установки офисного пакета.

 

Должен заметить, эта задача отнюдь не из простых, и решить ее, также как это было сделано с новыми офисными форматами (docx и xlsx), не получится по следующим причинам:

  • Во-первых, Microsoft не предлагает каких-либо решений для чтения указанных форматов (Interopt в расчет не берем, так как его использование требует установки офисного пакета на сервере, а чтение данных из одного файлика будет сжирать необоснованно много оперативы).
  • Во-вторых, вся информация в документах xls (равно как и в doc) хранится в бинарном виде и недоступна для свободного чтения.
  • В-третьих, в интернете практически нет информации о библиотеках, которые бы решали задачу чтения информации из старых форматов excel и word, равно как и задачу преобразования старых форматов в новые.

 

Перерыв stackoverflow, Хабр, проконсультировавшись со старшими товарищами, а также обратившись к нижегородскому сообществу .Net разработчиков стало понятно, что наиболее верным способом решения поставленной задачи является конвертация xls в xlsx, ну а как работать с xlsx я уже знал.

Однако, нативной библиотеки от Microsoft, которая бы решала, казалось бы, столь очевидную проблему совместимости старых и новых офисных форматов, в природе не существует. Платные библиотеки требовали обоснования необходимости их покупки и, также, отдаляли момент начала их использования (на срок проведения закупочных процедур), а бесплатные решения, написанные для питона и линукса, требовали внесения существенных изменений в архитектуру проекта. И вот тут, казалось бы, самое время начинать рвать волосы из подмышек, но, как говорится, всегда найдется азиат!

Tony Qu является автором крутой библиотеки, написанной как раз для работы с офисными файлами. Изначально либа была написана для джавы, после чего портирована под .Net, правда с некоторыми ограничениями (в версии под .Net отсутствует возможность работы с документами doc).
Но, возможно, данная статья не появилась бы на свет, если бы не огромная ложка дегтя: пользователи библиотеки NPOI напрочь лишены какой-либо документации, описывающей алгоритмы ее использования. Разумеется, ничто не мешает получить персональную поддержку от разработчика, уже за материальное вознаграждение.

Поэтому, думаю, представленное ниже решение, можно использовать не только для конвертации xls в xlsx, но и в качестве небольшого примера, демонстрирующего возможности либы.

Давайте кодить

Подготовка

Как видите, основной метод конвертации работает со стримами. Не переживайте, для результата выполнения метода мы создадим обертки, которые позволят нам сохранять результат конвертации в файл (причем, как из файла, так и из потока).
За работу с файлами xls в библиотеке NPOI отвечает класс HSSFWorkbook , конструктор которого может принимать как стрим, так и путь до файла.
Наш будущий сконвертированный xlsx будет находиться в переменной типа XSSFWorkbook .
Далее запускаем цикл, в котором будет происходить копирование данных из xls в xlsx. Как мы видим, на каждой итерации цикла создаются по два объекта. Обратите внимание, что при создании объекта xssfSheet сразу же происходит копирование имени листа из объекта класса HSSFSheet .
В последствии, указанные объекты используются в качестве аргументов в функциях, копирующих стили листов и их содержимое.
Результат конвертации возвращается в виде потока типа MemoryStream

Разберем метод, отвечающий за копирование стилей

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

За копирование шрифтов отвечает метод void CopyFont(IFont toFront, IFont fontFrom)

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

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

Копирование данных из файла 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) :

Этот метод выполняет две функции:

  • Во-первых, метод копирует данные из «простых» ячеек файла с расширением xls в «простые» ячейки файла с расширением xlsx
  • Во-вторых, метод обрабатывает случаи, когда ячейка находится внутри группы объединенных ячеек. При этом, проверяется, относится ли данная ячейка к уже существующей группе объединенных ячеек, или же является первой выявленной ячейкой новой группы.

 

Метод копирования данных и стилей для каждой ячейки:

В этом методе происходит следующее:

  • Во-первых, копируются стили:
  • Во-вторых, копируется содержание каждой ячейки:

 

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

Обработка объединенных ячеек

Вернемся к обработке ячеек, включенных в группу объединенных.
Как было показано выше, за это отвечают методы CellRangeAddress GetMergedRegion(HSSFSheet sheet, int rowNum, short cellNum) и bool IsNewMergedRegion(CellRangeAddress newMergedRegion, List mergedRegions) :

Читайте также  Как просмотреть файлы в iCloud с iPhone?

Так, мы просто получаем все области объединенных ячеек для конкретного листа, после чего проверяем, входит ли наша ячейка хоть в какой-нибудь из диапазонов объединенных ячеек. Если входит, то то метод возвращает тот диапазон объединенных ячеек, к которому относится проверяемая ячейка. В противно случае, вернется null .

Указанный метод сопоставляет текущую область объединенных ячеек с той областью, к которой относится текущая ячейка, которая входит в состав нескольких объединенных ячеек. Как можно увидеть, сравнение происходит по 4-м крайним точкам каждой из областей (первая и последняя колонка, первая и последняя строчка проверяемой области).

На этом процесс преобразования xls в xlsx можно считать законченным.

С моей стороны будет свинством не сказать, что данный код был нагло сплагиачен со stackoverflow, который в свою очередь представляет собой переработанное решение по конвертации xlsx в xls, которое также лежит на stackoverflow.

Дополнительный функционал

Предлагаю добавить возможность конвертации с записью полученного результата в файл:

  • из потока
  • из файла:

 

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

Как видите, в методе данного класса используется объект класса XlsxToXml , который реализует логику конвертации xlsx в xml, описанную в статье по этой ссылке.

С полным кодом программы Вы можете ознакомиться здесь

Как сделать из excel xml?

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

Процедура конвертации

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

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

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

  1. Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».
  2. Запускается окно открытия файлов. Переходим в директорию, где содержится файл, который нам нужен. Он должен быть в одном из форматов Эксель – XLS или XLSX. Выбираем его и жмем на кнопку «Открыть», расположенную в нижней части окна.
  3. Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».
  4. После этого переходим по пункту «Сохранить как…».
  5. Открывается окно сохранения. Переходим в ту директорию, в которой желаем, чтобы хранился конвертированный файл. Впрочем, можно оставить и директорию по умолчанию, то есть ту, что предложила сама программа. В этом же окне, если возникнет желание, можно изменить наименование файла. Но основное внимание нужно обратить на поле «Тип файла». Раскрываем перечень кликом по данному полю.

Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.

  • После этого жмем на кнопку «Сохранить».

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

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

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

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

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

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

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

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Конвертер файлов / Документы / Конвертировать в XLS / XML конвертер / XLS в XML

Вы можете перевести XLS документ в XML и во множество других форматов с помощью бесплатного онлайн конвертера.

Выберите файл с компьютера, Google Диска, Dropbox или перетащите его на страницу

Выберите xml или любой другой формат, который вам нужен (более 100 поддерживаемых форматов)

Скачайте ваш xml файл

Подождите пока ваш файл сконвертируется и вы сразу сможете его скачать 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.

Борис Аладышкин/ автор статьи

Приветствую! Я являюсь руководителем данного проекта и занимаюсь его наполнением. Здесь я стараюсь собирать и публиковать максимально полный и интересный контент на темы связанные с современными технологиями и программным обеспечением. Уверен вы найдете для себя немало полезной информации. С уважением, Борис Аладышкин.

Понравилась статья? Поделиться с друзьями:
Itsovet61.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: