Страницы: 1
RSS
как XML преобразовать в Excel
 
Здравствуйте, прошу помощи у специалистов!  
 
Столкнулся с необходимостью преобразовать файл с расширением XML в файл Excel.. Как можно это сделать при помощи Excel 2003 или 2007 и можно ли это вообще сделать?  
 
Для наглядности прилагаю два файла от поставщиков (в архиве): один в формате XML, второй в формате Excel (наименования товаров, кол-во, цена и остальные данные - идентичные, а расширение файлов разное).. Это для наглядности, для примера (т.к. в данном случае уже имеются файлы и XML  и конвертированный Excel)..  
 
Соответственно вопрос: как из файла с расширением XML получить файл в формате Excel?    
Какой порядок действий вообще, какие программы для этого используются?  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
легко, в 2003 - точно не помню - вроде бы данные - внешние данные - импорт из xml.  
в 2007 точно - вкладка разработчик - блок xml на панели - кнопка импорт - указываете путь. На вопрос про схему документа - ответьте да. все.
 
{quote}{login=egonomist}{date=02.09.2011 04:41}{thema=}{post}легко, в 2003 - точно не помню - вроде бы данные - внешние данные - импорт из xml.  
в 2007 точно - вкладка разработчик - блок xml на панели - кнопка импорт - указываете путь. На вопрос про схему документа - ответьте да. все.{/post}{/quote}  
 
Спасибо, данный вариант пробовал. Почему-то получается разная структура, я наверное не понимаю просто ((  
 
Модератор удалил прикрепленный файл из-за большого размера, выкладываю файл меньшего размера..    
Посмотрите, пожалуйста, можно ли из исходного файла (XML) получить в точности такой же как в прикрепленном файле Ecxel при помощи тех манипуляций, о которых Вы пишите..
 
пишу как в 2007 так как другого нету под рукой.  
вкладка разработчик - на панели инструментов бок xml.  
щелкаем источник  
нажимаем кнопку карты xml - добавить - выбираем наш файл - со всем соглашаемся.  
в итоге в правой панельке появляется древовидная структура xml.  
перетаскиваем нужные нам поля в нужные нам столбцы.  
после перетаскивания ячейки становятся синего цвета.  
щелкаем правой кнопкой на любой синюшности - обновить.  
Вуаля - готово - загрузились данные.  
На панели стали активными данные - обновить данные, парметры и др.  
Теперь можно обновлять файл xml - заходить в табличку и щелкать обновить  
Единственное что - надо будет поработать со столбцом картинки - чтоб путь лепил из имеющихся столбцов в xml.  
Enjoy.
 
надеюсь разберетесь - я вотпуск.
 
{quote}{login=egonomist}{date=02.09.2011 05:31}{thema=}{post}надеюсь разберетесь - я вотпуск.{/post}{/quote}Хорошо отдохнуть!  
 
=77116=
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=egonomist}{date=02.09.2011 05:29}{thema=}{post}пишу как в 2007 так как другого нету под рукой.  
вкладка разработчик - на панели инструментов бок xml.  
щелкаем источник  
нажимаем кнопку карты xml - добавить - выбираем наш файл - со всем соглашаемся.  
в итоге в правой панельке появляется древовидная структура xml.  
перетаскиваем нужные нам поля в нужные нам столбцы.  
после перетаскивания ячейки становятся синего цвета.  
щелкаем правой кнопкой на любой синюшности - обновить.  
Вуаля - готово - загрузились данные.  
На панели стали активными данные - обновить данные, парметры и др.  
Теперь можно обновлять файл xml - заходить в табличку и щелкать обновить  
Единственное что - надо будет поработать со столбцом картинки - чтоб путь лепил из имеющихся столбцов в xml.  
Enjoy.{/post}{/quote}  
 
Спасибо! Буду пробовать.. Надеюсь, что все получится.. Хорошего Вам отпуска!  
(хотя мне немного жаль, т.к. если не выйдет все так как надо - то больше помощи мне ждать не откуда, этот форум - моя последняя надежда)  
 
Вопрос тогда к Вам встречный: можно ли будет просить Вас о помощи в этом вопросе, в случае, если все окажется сложнее? (не безвозмездно, уже, конечно)
 
{quote}{login=egonomist}{date=02.09.2011 05:29}{thema=}{post}пишу как в 2007 так как другого нету под рукой.  
вкладка разработчик - на панели инструментов бок xml.  
щелкаем источник  
нажимаем кнопку карты xml - добавить - выбираем наш файл - со всем соглашаемся.  
в итоге в правой панельке появляется древовидная структура xml.  
перетаскиваем нужные нам поля в нужные нам столбцы.  
после перетаскивания ячейки становятся синего цвета.  
щелкаем правой кнопкой на любой синюшности - обновить.  
Вуаля - готово - загрузились данные.  
На панели стали активными данные - обновить данные, парметры и др.  
Теперь можно обновлять файл xml - заходить в табличку и щелкать обновить  
Единственное что - надо будет поработать со столбцом картинки - чтоб путь лепил из имеющихся столбцов в xml.  
Enjoy.{/post}{/quote}  
 
Попробовал.. Все именно так получилось, как Вы и описывали, на выходе получил такой же файл, кот Вы прикрепили к сообщению, НО когда попробовал конвертировать другой файл (именно файл от поставщика) - то получилось не совсем так..  
 
Видимо в данном файле структура более многоуровневая (разделов и подразделов товаров больше) + сама структура XML видимо отличается (я, к сожалению не специалист в XML)  
 
Может быть есть тут еще специалисты, кот направят меня в нужном направлении..  
 
Выкладываю файл, над которым я работаю..  
 
В нем у меня не получается сделать так, чтобы названия категорий и подкатегорий товаров были непосредственно в каждой строке, а не общим списком в начале таблицы,    
т.е., чтобы было сопоставление: Раздел / Подраздел / ПодПодраздел / Товар  
 
В прикрепленном файле я проследил цветом взаимосвязь между разделами, подразделами, к которым относится тот или иной товар и подумал, может имеет смысл написать макрос для того, чтобы значения были автоматически сопоставлены со строками товаров??  
 
Или я не правильно конвертирую XML в Excel??  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
mstrneo, Вам в правила. Срочно. А тему закроют за повторное нарушение. Не понимаю, вы что нарочно модераторов злите?
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=03.09.2011 05:27}{thema=}{post}mstrneo, Вам в правила. Срочно. А тему закроют за повторное нарушение. Не понимаю, вы что нарочно модераторов злите?{/post}{/quote}  
 
Приношу свои извинения, если я где-то нарушил правила, злить конечно же не хотел никого.. просто очень нужна помощь, а сроки горят ((
 
"если я где-то нарушил правила" - так прочитайте их и исправьте нарушение, пока тему не закрыли. Не, мне все равно. Вам помощь нужна...
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=03.09.2011 07:06}{thema=}{post}"если я где-то нарушил правила" - так прочитайте их и исправьте нарушение, пока тему не закрыли. Не, мне все равно. Вам помощь нужна...{/post}{/quote}  
 
Спасибо, осознал, каюсь, исправил нарушения ))  
 
прикрепляю файл меньшего размера (50 Кб)  
 
В нем у меня не получается сделать так, чтобы названия категорий и подкатегорий товаров были непосредственно в каждой строке, а не общим списком в начале таблицы,    
т.е., чтобы было сопоставление: Раздел / Подраздел / ПодПодраздел / Товар    
(строка 158 в файле и далее вниз до конца таблицы)  
 
В прикрепленном файле я проследил цветом взаимосвязь между разделами и подразделами, к которым относится тот или иной товар и подумал, может имеет смысл написать макрос для того, чтобы значения были автоматически сопоставлены со строками товаров??  
 
Или существуют какие-то дополнительные настройки преобразования XML в Excel, при помощи которых эта проблема решается??
 
Сам файл (прикреплен)
 
Странно, неужели нет специалистов в этом вопросе?  
 
Может быть есть конвертер какой-то кроме Excel?  
 
Или программы, которые смогут пропарсить данные сразу в базу MySQL?  
 
Уверен, что я не один таким вопросом задался, как закачать товары в базу данных интернет-магазина из XML (YML) файла ((
 
mstrneo, специалисты может и есть, но! Я смотрел Ваш последний файл еще 03.09.2011. Там же черт ногу сломает. Так ничего и не понял. Может отдельно XML выложите, или если размер не позволяет, ссылку на него? Сразу оговорюсь - не специалист. Но, хоть попытаюсь...  
 
56336
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=06.09.2011 08:57}{thema=}{post}mstrneo, специалисты может и есть, но! Я смотрел Ваш последний файл еще 03.09.2011. Там же черт ногу сломает. Так ничего и не понял. Может отдельно XML выложите, или если размер не позволяет, ссылку на него? Сразу оговорюсь - не специалист. Но, хоть попытаюсь...  
 
56336{/post}{/quote}  
 
Размер не позволяет, выкладываю ссылки на файлы:  
 
http://neomarket.su/yml.rar  
Это файл, над которым я бьюсь, его пытаюсь конвертировать в Excel для того, чтобы загрузить товары в базу.  
 
http://neomarket.su/konvertiroval.rar  
Это то, что у меня получилось после импорта в Excel..  
Почти получилось на самом деле, проблема только сопоставить каждому товару категорию и подкатегорию, к которым он относиться. Взаимосвязь идет за счет идентификаторов (язык XML, который их связывает):  
 
колонки: category,  id, parent - это категории и подкатегории товаров  
колонка categoryId связывает товары (наименование, описание, цену) с категориями и подкатегориями  
 
Таким образом через данные идентификаторы и язык XML все и связывается (какой товар к какой категории относится)  
 
Вопрос состоит в том, чтобы уйти от языка XML и преобразовать все в Excel так, как это сделал другой поставщик, который любезно предоставил нам файлы своих товаров как в XML формате, так и в Excel.  
Выкладываю так же и эти файлы. Это будет наверное нагляднее, т.к. имеем один и тот же список товаров, но уже конвертированный в разных форматах):  
 
http://neomarket.su/production.rar  
В Excel файле стоит обратить внимание на столбцы, отмеченные желтым цветом, именно к такому формату данных и необходимо прийти..  
Группа1, Группа2, Группа3, Группа4 - это Катагория / Подкатагория / ПодПодкатагория / ПодПодПодкатегория (находятся они в одной строке с наименованием и описанием каждого товара, чего собственно и необходимо добиться)..
 
Почему не позволяет? Вот Ваш файл. Только понятней не стало:-( Что с чем и как сопоставлять. Давайте так - столбцы A:F не нужны, там одинаковые значения. Из столбцов G:I по каким признакам подставлять значения ниже 157 строки? Или я все неправильно понял?
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=07.09.2011 12:15}{thema=}{post}Почему не позволяет? Вот Ваш файл. Только понятней не стало:-( Что с чем и как сопоставлять. Давайте так - столбцы A:F не нужны, там одинаковые значения. Из столбцов G:I по каким признакам подставлять значения ниже 157 строки? Или я все неправильно понял?{/post}{/quote}  
 
Все эти столбцы как раз и нужны..  
 
Алгоритм такой:  
 
1) Ячейка 158 должна содержать данные:  
     а) из К158 (в столбце categoryId содержится идентификатор категории) берем значение (в данном случае это: __19I3VAO)  
     б) далее находим это значение в колонке Id (столбец D)  
     в) этому значению соответствует название Подкатегории в колонке category (столбец C) - Украшения фигурные  
     г)  далее смотрим, корневая ли это категория, или есть уровень выше (категория не корневая, а является подразделом вышестоящей категории):  
если в ячейке справа (Е22) есть значение (ячейка не пустая), значит есть уровень выше, продолжаем (заполняется ячейка слева - D158)  
     д) берем значение из ячейки справа (Е22) и как в пункте "б" находим это значение в колонке Id (столбец D). В данном случае это значение ___RLMVAO, этому значению соответствует название Категории в колонке category (столбец С) - Украшения и шары из современных материалов  
     е) Опять, как в пункте "г" смотрим, корневая ли это категория, или есть уровень выше (категория не корневая, а является подразделом вышестоящей категории):  
если в ячейке справа (Е8) есть значение (ячейка не пустая), значит есть уровень выше, продолжаем (заполняется ячейка С 158)  
     ж) берем значение из ячейки справа (Е8) и как в пункте "б" находим это значение в колонке Id (столбец D). В данном случае это значение ___RLEVAO, этому значению соответствует название Категории в колонке category (столбец С) - Mister Christmas  
     з) Опять, как в пункте "г" смотрим, корневая ли это категория, или есть уровень выше (категория не корневая, а является подразделом вышестоящей категории):  
если в ячейке справа (Е1) есть значение (ячейка не пустая), значит есть уровень выше, заполняется ячейка слева (B158), но ячейка (E1) пустая => категория корневая  
 
Значения сопоставляются именно в такой последовательности, в итоге получаем значения в строке 158.    
(Начинается сопоставление с колонки categoryId (столбец К) с колонкой Id (столбец D) и далее по пунктам..  
 
Т.е. теоретически данный алгоритм можно реализовать при помощи макроса, но тут я тоже не специалист ((
 
И фактически сопоставить надо 4 столбца:    
C, D, E, K
 
{quote}{login=}{date=07.09.2011 03:00}{thema=}{post}И фактически сопоставить надо 4 столбца:    
C, D, E, K{/post}{/quote}  
Если ооочень нужно решение, пишите в почту.
Спасибо
 
{quote}{login=R Dmitry}{date=07.09.2011 10:25}{thema=Re: }{post}{quote}{login=}{date=07.09.2011 03:00}{thema=}{post}И фактически сопоставить надо 4 столбца:    
C, D, E, K{/post}{/quote}  
Если ооочень нужно решение, пишите в почту.{/post}{/quote}  
 
Ооочень нужно!  
Только, что писать? По идее я уже и не знаю, что дополнить-то..
 
Могу наверное ICQ номер написать для более оперативного общения:  
340924537  
или почта:  
info@neomarket.su
 
Старт топику, конечно, более универсальный сделал, но основной алгоритм приведу
Спасибо
 
Где эта вкладка "разработчик" ?
Страницы: 1
Наверх