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

Содержание

Как преобразовать данные из Excel в xml-формат для сдачи в налоговую

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

Руководство пользователя
Скачать прайс
Заказать

Программа  Реформатор производит конвертацию  книг покупок и продаж, журнала учета выставленных и полученных счетов-фактур из файлов формата xls в файлы установленного формата (xml-шаблоны)  из  Excel   для сдачи в контролирующие органы.

Конвертор  преобразует данные книги покупок, книги продаж, журналы учета полученных и выставленных счетов-фактур в установленный xml формат декларации НДС 2015.

Работает с книгами любого объема.

Вы без труда сможете преобразовать в данном сервисе следующие документы: 

  • налоговую декларацию;
  • бухгалтерскую отчетность;
  • декларацию по налогу на прибыль;
  • декларацию по транспортному налогу;
  • декларацию по земельному налогу;
  • отчетность в ФСС;
  • декларацию по  налогу на имущество;
  • отчетность в ПФР;
  • декларацию по налогу на добавленную стоимость;
  • декларацию на контролируемые сделки и др.

Системные требования: .Net Framework 3.5 и выше
Установка: Не требует инсталляции.
Функционал: Преобразует данные книги покупок, книги продаж, журналы учета полученных и выставленных с\ф из xls, xlsx, xlsb, csv, txt формата (csv, txt – кодировка 1251, разделитель «;») в xml формату декларации НДС 2015.

Сколько стоит Реформатор? Прайс-лист

Реформатор – программа для ЭВМ, предназначенная для преобразования книг покупок и продаж, журнала учета выставленных и полученных счетов-фактур из файлов формата в файлы установленного формата ( xml-шаблоны).

Стоимость программы 59 000 руб.

Внимание! Конвертор в Контур.Экстерн – бесплатная возможность, которая будет реализована во всех тарифных планах Экстерна и в Контур.Сверке.

Работает с книгами до 400 тыс. строк.

Как работать в сервисе Контур.Реформатор?

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

После этого будет доступен полный функционал программного модуля.
При входе в пробную версию модуля (кнопка «Пробная версия») функционал не ограничен, но при формировании результирующего xml файла происходит замена определенных символов в поле ИНН контрагента.

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

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

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

Отмечаем необходимый документ и загружаем его.

Каждый входной файл в первых 100 строках должен содержать «стартовую строку», каждая ячейка которой содержит номер столбца точно в соответствии с утвержденной формой документа.
Допускается деление на 2 столбца показателей, которые в форме книги объединены в один столбец (номер и дата, ИНН и КПП). При этом оба столбца должны иметь одинаковый номер в «стартовой строке».

Порядок следования таких столбцов должен соответствовать порядку именования данных в форме документа.Если данные в «сдвоенных» столбцах книги не делятся на 2 столбца во входном файле, то в качестве разделителя таких данных допустимо использовать: пробел или символы «,» «;» ,символ «\» для столбцов с ИНН-КПП.Пример:

Книга покупок, утвержденная форма, красным выделены номера столбцов:

Настройте папку для результатов преобразования Ваших файлов.

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

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

Ошибочные данные выделены розовым цветом. Откорректировать данные можно установив курсор на подсвеченное поле.

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

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

В результирующий файл включаются итоговые данные по строкам и «ВСЕГО» (тип строки «расчет»).

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

При повторном запуске приложения формирование log файла начинается заново.

Источник: http://www.kf4.ru/index.php/kontur/reformator

Как сделать из excel 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-данные». Выбираем один из этих пунктов.

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

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

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

Конвертировать формат Excel в XML можно с помощью инструментов разработчика на вкладке программы.

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

Но сразу нужно сказать, что не каждому новичку может хватить знаний и умений сразу научится конвертировать данные таким способом.

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

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

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

    После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».

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

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

Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток.

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

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

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

Источник: http://word-office.ru/kak-sdelat-iz-excel-xml.html

Преобразование файлов 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. Затем настраиваете всё под себя: область для импорта, место сохранения и другие параметры. После чего вы получите таблицу, которую позже можно сохранить в нужном для вас формате. Как видите, ничего сложного нет.

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

Источник: https://nastroyvse.ru/programs/review/kak-preobrazovat-excel-v-xml.html

Конвертер файлов XLS в XML для Декларант-Алко

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

Конвертер, преобразующий EXCEL-файлы поставщиков алкогольных напитков и пива в XML, для последующей загрузки новых производителей и объемов поставок в программу Декларант-Алко при подготовке деклараций №11 об объеме розничной продажи алкогольной и спиртосодержащей продукции и №12 об объеме розничной продажи пива и пивных напитков.

Предназначение конвертера XLS в XML

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

цель конвертера – облегчить работу сотруднику, подготавливающему декларации №11 и №12. Его использование дает следующие преимущества:

  • исключена необходимость в монотонной работе по ручному набору строк в таблицу №2;
  • многократный рост скорости подготовки деклараций;
  • отсутствуют механические ошибки, возможные при ручном наборе.

Автор конвертера использовал его в течение 2 лет вплоть до закрытия предприятия в 2016 году, что позволяло легко отчитываться перед Росалкогольрегулированием.

Порядок работы с конвертером

Пишу программы для себя, не являюсь доверенным издателем, поэтому некоторые браузеры и антивирусы могут предупреждать об опасности перед скачиванием. Программы упакованы в обычные архивы .zip (не самораспаковывающиеся), если сомневаетесь, проверьте скачанный архив перед распаковкой антивирусом. Я использую Kaspersky Internet Security, который подтверждает, что угроз нет.

Архивы с программой «Конвертер для ДА»:

Конвертер для ДА 20 — для Windows XP – Windows 7 (подойдет и к Windows 8 – Windows 10, но потребуется загрузить Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1), если он не установлен).

Конвертер для ДА 45 — для Windows 8 – Windows 10 (подойдет и к Windows 7, если установлен Microsoft .NET Framework 4.5).

Порядок работы с конвертером, преобразующем EXCEL-таблицы поставщиков в XML-файлы:

  1. Скачиваем архив с программой и распаковываем его в любую папку на жестком диске. Будут извлечены два файла: «Конвертер для ДА.exe» и «Образец файла для конвертации.xls».
  2. Таблицы, полученные от поставщиков в EXCEL-файлах, необходимо привести к стандартному виду в соответствии с образцом файла для конвертации.*
  3. Готовый файл должен быть сохранен и закрыт. При сохранении файла активным должен быть лист с приведенной к стандартному виду таблицей.
  4. Открываем файл «Конвертер для ДА.exe» и, нажав кнопку «Обзор», выбираем сохраненный файл для конвертирования. Нажимаем кнопку «Конвертировать», в результате чего создаются два файла и сохраняются в папку расположения исходного файла с именами: (имя исходного EXCEL-файла без расширения)_контрагенты.xml и (имя исходного EXCEL-файла без расширения)_документы.xml.
  5. Обновляем программу Декларант-Алко до последней версии, переходим в раздел «Проверка формата XML» и проверяем наши файлы на соответствие принятым схемам.
  6. Переходим в раздел «Контрагенты» и импортируем производителей алкоголя из файла (имя исходного EXCEL-файла без расширения)_контрагенты.xml.**
  7. Переходим в раздел «Работа с декларациями» и импортируем строки из файла (имя исходного EXCEL-файла без расширения)_документы.xml.

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

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

Конвертер начинает считывать информацию со второй строки, с которой начинается информация по поставкам.

** В первую очередь импортируются производители алкоголя, так как, если появился новый производитель, который отсутствует в справочнике «Контрагенты», строки с ним в декларацию не загрузятся. Если у вас появился новый поставщик алкоголя, то его необходимо добавить в справочник «Контрагенты» вручную.

На что обратить внимание:– проверить работу с XML-файлами, или какие-то другие возможности Декларант-Алко, можно в копии программы, скопировав папку «ФСРАР» и уже в копии открыв файл «Declarant-Alko.exe».

Только после экспериментов не забудьте удалить копию, чтобы в будущем не перепутать ее с оригиналом;- не забывайте про импорт остатков;- не забывайте про возвраты;- обязательно сверяйте объемы поступлений по печатной форме готовой декларации с данными исходных EXCEL-файлов поставщиков (я подсчитываю суммарный объем по исходным файлам поставщиков и сравниваю с общим объемом по печатной форме декларации, отдельно по поставщикам-оптовикам и отдельно по поставщикам-производителям);- разделить ИНН/КПП производителей, расположенных в одном столбце, в EXCEL 2000-2003 можно, выбрав в меню «Данные» – «Текст по столбцам…» и далее следуя указаниям «Мастера текстов»;- количество XML-файлов зависит от количества торговых точек («обособленных подразделений» по ФСРАР) и количества поставщиков: на одну точку с одним поставщиком отдельный файл;

– у поставщика может внезапно измениться КПП на одну цифру (было хххххххх1, стало хххххххх2, у меня такое произошло в 4 квартале 2014, обнаружил замечание ФСРАР только после сдачи отчета за 1 квартал 2015, пришлось отправить вдогонку две «корректирующие»).

Актуальность конвертера:
Автор программы сдал свой последний отчет в 2016 году, но с самого начала подачи деклараций в ФСРАР (2012 год) никаких изменений в схеме принимаемых файлов не было и, скорее всего, еще долго не будет.

 В любом случае, после обновления программы Декларант-Алко, проверяйте один из файлов за предыдущий квартал на соответствие формату, пункт меню в Декларант-Алко: «Проверка формата XML».

Если будут в Декларант-Алко изменения, он сообщит о несоответствии файла схеме.

Производители из стран таможенного союза

В 1 квартале 2015 года у меня впервые появился белорусский производитель. Обнаружил я его, только когда XML-файл не прошел проверку в Декларант-Алко на соответствие схеме.

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

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

Далее конвертируем файл, загружаем контрагентов, загружаем документы и, если загрузка пройдет успешно, в справочнике «Контрагенты» находим нового иностранного производителя, удаляем у него ИНН и КПП, выбираем «Иностр.», ставим галочку «производитель/импортер», указываем «Код Страны» и «Уч.Номер».

Если иностранный производитель уже есть в списке контрагентов, то, наверное, проще будет строки с ним удалить из стандартной таблицы, а в Декларант-Алко внести вручную. Хотя и на этот случай есть вариант действий: в справочнике «Контрагенты» снова иностранного производителя сделать «Юр.

Лицом» (т.е. российской организацией), записать ИНН и КПП как в EXCEL-файле (добавленные вместо учетного номера), а после конвертации и загрузки XML-файлов снова сделать его иностранной организацией, предварительно удалив ИНН и КПП.

Но, главное, еще раз все проверить по печатной форме декларации.

Кроме производителей из Беларуси, могут быть производители из Казахстана и Армении.

Источник: https://vremya-ne-zhdet.ru/alkogol/deklarant-alko-konverter-xls-xml/

Простой экспорт в Excel XML

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

При разработке системы электронного документооборота потребовалось реализовать функции для экспорта данных в популярных форматах. В частности, в формате 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, ''); //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();} В моем случае, каждый ряд записывается на диск, что, пока, является вполне приемлемым, но в будущем, возможно, потребует изменений. Например, будет разумно сохранять не каждый ряд, а каждый десяток или даже сотню рядов за раз. Тогда скорость экспорта увеличится.

Скорость

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

Изначально, пытался осуществлять экспорт данных используя CActiveDataProvider, что требовало при экспорте 1000 записей порядка 240 секунд! Изменив запрос так, чтобы использовать CArrayDataProvider сократил время экспорта 1000 записей до 0.5 секунды!

Специально для этой публикации замерил показатели экспорта.

Экспортировал 1626 записей с 9 атрибутами, представляющих собой информацию о закрытых инцидентах (см. ITSM).

Исходный вид экспортируемой таблицы

(извините, картинка исчезает после публикации)

Результат

(извините, картинка исчезает после публикации)

Показатели экспорта

Объем конечного файла: 1 312 269
Объем сжатого файла: 141 762
Затраченное время: примерно 0.5 сек

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

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

  • yii
  • yii framework
  • php
  • export
  • excel
  • xml

Источник: https://habr.com/post/235973/

Как открыть файлы xml, xls и xlsx: рассказываем обстоятельно

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

Зоопарк офисных программ? WPS Office, MS Office, Open Office? В статье пойдет речь о том, как отредактировать XLSX файлы без создания COM-объектов.

Office Open XML Document

Описание

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

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

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

Формат дает возможность разрабатывать и редактировать сложные многолистовые электронные таблицы со множеством формул и источников данных.

Технические детали

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

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

Это дает возможность беспрепятственно передавать файлы по локальным сетям.

Программы

Microsoft Office

LibreOffice

Kingsoft Office

Google Docs

Основная программа

Microsoft Office

MIME type

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

: Как откатить windows 10 до windows 7 или 8, 1

Как открыть файлы xlsx в Microsoft Excel 2016, 2013, 2010, 2007?

Последними версиями Excel’я файлы xlsx открываются как любые другие контейнеры, поскольку это его «родной» формат, и он обладает полноценной поддержкой данного универсального стандарта. Если вы все же задаетесь вопросом, как открыть xlsx-файл в Excel’е, вот вам подробная инструкция, как это сделать.

  1. Открываем Excel, выбрав приложение в стартовом меню Windows или в Metro-ленте (в Win 8.1/10).
  2. Нажимаем кнопку «Открыть другие книги» в левой части домашней формы пакета.
  3. Нажимаем кнопку «Обзор» в интерфейсе новой открывшейся формы для выбора папки, содержащей исходный файл.
  4. Находим файл в структуре жесткого диска, отмечаем его одиночным нажатием и щелкаем на кнопку «Открыть».

На этом процедура открытия xlsx-файла завершается. После описанных выше действий файл будет тотчас открыт и готов для работы.

Процесс конвертации

XML-файлы написаны на специальном языке разметки чем-то похожим на HTML веб-страниц. Поэтому у этих форматов довольно сходная структура. В то же время, Эксель – это в первую очередь программа, имеющая несколько «родных» форматов. Самые известные из них: Книга Excel (XLSX) и Книга Excel 97 – 2003 (XLS). Выясним основные способы конвертации файлов XML в эти форматы.

Способ 1: встроенный функционал Excel

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

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

    Из предложенных вариантов выбираем Книга Excel или Книга Excel 97-2003. Первый из них более новый, второй – уже несколько устаревший.

  6. После того, как выбор произведен, жмем на кнопку «Сохранить».

На этом процедура конвертации файла XML в формат Excel через интерфейс программы окончена.

Способ 2: импорт данных

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

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

Таким образом, конвертация в нужном для нас направлении будет совершена с максимально корректным преобразованием данных.

Способ 3: онлайн-конвертер

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

Онлайн-конвертер Convertio

  1. Переходим на данный веб-ресурс с помощью любого браузера. На нем можно выбрать 5 способов загрузки конвертируемого файла:
    • С жесткого диска компьютера;
    • Из онлайн-хранилища Dropbox;
    • Из онлайн-хранилища Google Drive;
    • По ссылке из интернета.

    Так как в нашем случае документ размещен на ПК, то жмем на кнопку «С компьютера».

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

    Существует также альтернативный вариант добавления файла на сервис. Для этого нужно просто перетянуть его название мышкой из Проводника Windows.

  3. Как видим, файл добавился на сервис и находится в состоянии «Подготовлено». Теперь нужно выбрать необходимый нам формат для конвертации. Кликаем по окошку рядом с буквой «В». Открывается список групп файлов. Выбираем «Документ». Далее открывается перечень форматов. Выбираем «XLS» или «XLSX».
  4. После того, как наименование нужного расширения добавлено в окошко, жмем на большую красную кнопку «Преобразовать». После этого, документ будет преобразован и доступен для загрузки на этом ресурсе.

Данный вариант может послужить хорошей подстраховкой на случай неимения доступа к стандартным инструментам для переформатирования по данному направлению.

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

Для документов с более сложной структурой существует отдельная процедура преобразования через импорт.

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

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

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

Источник: https://alfa-service42.com/instruktsii/kak-konvertirovat-xml-v-excel.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.