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

Как сделать из 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. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.

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

Конвертер excel в xml

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

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

  • XML сокращение понимается как  Extensible Markup Language;
  • XML рекомендован W3C;
  • XML является языком  разметки,  подобно языку HTML;
  • XML-теги заблаговременно не предопределены. Тот, кто формирует XML документ. тот и определяет  собственные теги;
  • XML формат был создан чтобы обрисовать эти, а не чтобы их отображать;
  • XML помогает  для независимого описания;

Другими словами, XML не есть заменой  HTML – необходимо понимать это различие. Цели создания  XML и HTML совсем различные:

  • XML акцентируется на самих данных и был создан как раз  для их описания;
  • HTML акцентируется на том, как эти сведенья будут смотреться у пользователя, другими словами он создавался с целью отображения данных;

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

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

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

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

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

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

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

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

Наровне с языком гипертекстовой разметки HTML в сети обширно распространен язык разметки XML (Extensible Markup Language).

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

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

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

Бывают случаи, в то время, когда нужно документ, созданный в каком – или приложении (к примеру, MS Office), преобразовать в формат XML. Для данной цели создан множество программ-конвертеров в формат xml.  Поболтаем сейчас об одной из них – конвертере Excel в xml.

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

, которые вам, наверника будут интересны:

  • Как перевести excel в pdf и pdf в excel?При работе с документами очень часто необходимо перевода одного формата в второй. К примеру, пишите вы ту же курсовую работу и вам необходимо перенести…
  • Как в excel отнять проценты?12 Апреля 2015 Обстановка: Продукт стоит 3 640 000, желаю попроситьскидку у поставшиков и купить его за 3 500 000. Люди, помогите. Обстановка: Продукт…
  • Онлайн конвертер pdf в excelPDF есть самым популярным форматом для электронного документооборота. Первоначально, он создавался для американских гос. структур, но, неспешно, завоевал…
  • Конвертер mod в aviПрежде, чем поведать о конвертере MOD в AVI, давайте давайте разберемся, что является форматом MOD. MOD — это обычный формат видео, что записывается…
  • Преобразовываем csv в excel: как импортировать файлы csv в электронные таблицы excelВ данной статье Вы отыщете 2 несложных метода преобразовать файл CSV в Excel. Помимо этого, Вы определите, как импортировать в Excel пара файлов CSV и…
  • Конвертер wmv в avi форматКак преобразовать WMV в AVI Формат AVI – один из самых популярных на сегодня. Большая часть пользователей ПК либо Mac сохраняют ролики и фильмы как раз в…

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

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

Оформите заявку сейчас Поработайте в демо-доступе бесплатно! Оцените сервис  

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

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

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

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

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

  • Продление Контур.Реформатор
  • 15 000 рублей
  • 12 месяцев
    • Тарифный план предназначен для преобразования книг покупок и книг продаж объемом свыше 400 тыс.строк;
    • Снижение затрат на доработку учетной системы.
    • Снижение рисков в части формата, не соответствующего законодательным нормам.
    • Работа с любыми объемами данных.
    • обновление форм, входящих в тарифный план;
    • техническая поддержка;
  • Купить
  • Тариф Контур.Реформатор
  • 59 000 рублей
  • 12 месяцев
    • Тарифный план  предназначен для преобразования книг покупок и книг продаж объемом свыше 400 тыс.строк;
    • Снижение затрат на доработку учетной системы.
    • Снижение рисков в части формата, не соответствующего законодательным нормам.
    • Работа с любыми объемами данных.
    • обновление форм, входящих в тарифный план;
    • техническая поддержка;
  • Купить

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

Руководство пользователя сервиса «Контур.Реформатор»

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

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

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

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

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

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

Конвертер файлов 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-файлов снова сделать его иностранной организацией, предварительно удалив ИНН и КПП.

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

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

Простой экспорт в 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-dTH:i:s'); 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, или использовать свои аналогичные сущности с соответствующими свойствами.

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

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

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