Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка строк из несокльких XML выписок ЕГРН в одну таблицу - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин  
Мир MS Excel » Работа и общение » Работа / Фриланс » Вставка строк из несокльких XML выписок ЕГРН в одну таблицу (Макросы/Sub)
Вставка строк из несокльких XML выписок ЕГРН в одну таблицу
Velius Дата: Четверг, 28.01.2021, 07:44 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Нужно спарсить из множества выписок ЕГРН (Росреестр) по несколько строк на одну страницу Excel (как должно быть выглядеть в итоге, таблица прилагается).
Так же в архиве несмколько ЕГРН приложено, они каждая в своей папке лежат в архивах ZIP. Исходники в таком виде и есть.
Тоесть не плохо бы так сделать чтобы макрос вызывал диалог по выбору ПАПКИ. Где бы он понимал что нужно просмотреть все подпапки (на наличие XML), и желательно чтобы он мог заглядывать в архивы, от туда доставать XML. Последнее просто пожелание. Если не возможно такое то ладно.
Главное чтобы он мог из папки влезть во все подпапки и там найти XML.

Спарсить нужно несколько строк из XML и разложить для КАЖДОЙ выписки ЕГРН по кадастровому номеру, в одну строку, эти данные (в примере видно как должно получиться).
Важные данные это собственники, их может не быть, может быть 1, 2 или 3 даже 4... Желательно информацию о них так же в одну ячейку сложать, как в примере 1. Собственник, 2.... Можно без нумерации, просто строка за строкой, в ОДНОЙ ячейке (данные после будут в Mapinfo передаваться, а там одна строка, один участок.)
В архиве приложения все выписки, в виде архивов и со структурой папок, так же там лежат PDF уже готовых выписко как они обычно выглядят после конвертации из XML.
К сообщению приложен файл: Tablitca_Dannyk.xlsx (10.9 Kb) · 5505421.zip (362.6 Kb)


Сообщение отредактировал Velius - Четверг, 28.01.2021, 07:44
 
Ответить
СообщениеНужно спарсить из множества выписок ЕГРН (Росреестр) по несколько строк на одну страницу Excel (как должно быть выглядеть в итоге, таблица прилагается).
Так же в архиве несмколько ЕГРН приложено, они каждая в своей папке лежат в архивах ZIP. Исходники в таком виде и есть.
Тоесть не плохо бы так сделать чтобы макрос вызывал диалог по выбору ПАПКИ. Где бы он понимал что нужно просмотреть все подпапки (на наличие XML), и желательно чтобы он мог заглядывать в архивы, от туда доставать XML. Последнее просто пожелание. Если не возможно такое то ладно.
Главное чтобы он мог из папки влезть во все подпапки и там найти XML.

Спарсить нужно несколько строк из XML и разложить для КАЖДОЙ выписки ЕГРН по кадастровому номеру, в одну строку, эти данные (в примере видно как должно получиться).
Важные данные это собственники, их может не быть, может быть 1, 2 или 3 даже 4... Желательно информацию о них так же в одну ячейку сложать, как в примере 1. Собственник, 2.... Можно без нумерации, просто строка за строкой, в ОДНОЙ ячейке (данные после будут в Mapinfo передаваться, а там одна строка, один участок.)
В архиве приложения все выписки, в виде архивов и со структурой папок, так же там лежат PDF уже готовых выписко как они обычно выглядят после конвертации из XML.

Автор - Velius
Дата добавления - 28.01.2021 в 07:44
doober Дата: Четверг, 28.01.2021, 09:09 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?


 
Ответить
СообщениеДа здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Автор - doober
Дата добавления - 28.01.2021 в 09:09
Velius Дата: Четверг, 28.01.2021, 12:29 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Я просто описал проблему.
Не значит что ее в полном объеме помогут решить.
Я уже видел подобное решение в этой ветке, только там задача немного иная.

Вот ссылка на ветку, там по сути то же самое, причем в более развернутом виде.
http://www.excelworld.ru/forum/10-17231-1

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


Сообщение отредактировал Velius - Четверг, 28.01.2021, 12:35
 
Ответить
Сообщение
Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Я просто описал проблему.
Не значит что ее в полном объеме помогут решить.
Я уже видел подобное решение в этой ветке, только там задача немного иная.

Вот ссылка на ветку, там по сути то же самое, причем в более развернутом виде.
http://www.excelworld.ru/forum/10-17231-1

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

Автор - Velius
Дата добавления - 28.01.2021 в 12:29
doober Дата: Четверг, 28.01.2021, 14:36 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Можно через xpath вытянуть


 
Ответить
СообщениеМожно через xpath вытянуть

Автор - doober
Дата добавления - 28.01.2021 в 14:36
Velius Дата: Четверг, 28.01.2021, 14:47 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Можно через xpath вытянуть

Посмотрел... Не понял как применить.
Выдает что "Object Variable or with block variable not set"
Надо настраивать макрос но я в этом...


Сообщение отредактировал Velius - Четверг, 28.01.2021, 14:52
 
Ответить
Сообщение
Можно через xpath вытянуть

Посмотрел... Не понял как применить.
Выдает что "Object Variable or with block variable not set"
Надо настраивать макрос но я в этом...

Автор - Velius
Дата добавления - 28.01.2021 в 14:47
Velius Дата: Вторник, 02.02.2021, 09:39 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

doober, Вы можете пояснить как существующий макрос под меня заточить
 
Ответить
Сообщениеdoober, Вы можете пояснить как существующий макрос под меня заточить

Автор - Velius
Дата добавления - 02.02.2021 в 09:39
doober Дата: Вторник, 02.02.2021, 11:13 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

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


 
Ответить
СообщениеДля начала мне надо понять, какой нод вам надо вытянуть и какие атрибуты нужны. хотя бы несколько

Автор - doober
Дата добавления - 02.02.2021 в 11:13
Velius Дата: Вторник, 02.02.2021, 14:21 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±



Этого достаточно


Сообщение отредактировал Serge_007 - Четверг, 04.02.2021, 10:50
 
Ответить
Сообщение


Этого достаточно

Автор - Velius
Дата добавления - 02.02.2021 в 14:21
doober Дата: Вторник, 02.02.2021, 14:59 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Для примера нескольких полей
[vba]
Код
Sub Test()
    Dim xmlDoc As Object, ByDoc, CadastralNumber, Name, OrganizationName
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.Load "C:\Users\Сергей\Downloads\kv_.xml"
    XPath = "//Parcels/Parcel"
    Set Parcel = xmlDoc.SelectSingleNode(XPath)
    CadastralNumber = ""
    If Not Parcel Is Nothing Then
        CadastralNumber = Parcel.Attributes.getNamedItem("CadastralNumber").Value
    End If
    ByDoc = ""
    XPath = "//Utilization"
    Set Utilization = xmlDoc.SelectSingleNode(XPath)
    If Not Utilization Is Nothing Then
        ByDoc = Utilization.Attributes.getNamedItem("ByDoc").Value
    End If
    XPath = "//Rights/Right"
    Set objListOfNodes = xmlDoc.SelectNodes(XPath)
    For n = 0 To objListOfNodes.Length - 1
        Set Right_ = objListOfNodes(n)
        For Each Nod In Right_.ChildNodes
            Select Case Nod.BaseName
            Case "Name"
                Name = Nod.Text
            Case "Owners"
                'Если уверены,
                ' что в документе все на своих местах, иначе перебор в цикле
                Set Organization = Nod.ChildNodes(0).ChildNodes(0).ChildNodes(0)
                OrganizationName = Organization.Text
            Case "Registration"
                ''ваш  Код
            End Select
        Next
    Next
End Sub
[/vba]
Результат




Сообщение отредактировал doober - Вторник, 02.02.2021, 14:59
 
Ответить
СообщениеДля примера нескольких полей
[vba]
Код
Sub Test()
    Dim xmlDoc As Object, ByDoc, CadastralNumber, Name, OrganizationName
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.Load "C:\Users\Сергей\Downloads\kv_.xml"
    XPath = "//Parcels/Parcel"
    Set Parcel = xmlDoc.SelectSingleNode(XPath)
    CadastralNumber = ""
    If Not Parcel Is Nothing Then
        CadastralNumber = Parcel.Attributes.getNamedItem("CadastralNumber").Value
    End If
    ByDoc = ""
    XPath = "//Utilization"
    Set Utilization = xmlDoc.SelectSingleNode(XPath)
    If Not Utilization Is Nothing Then
        ByDoc = Utilization.Attributes.getNamedItem("ByDoc").Value
    End If
    XPath = "//Rights/Right"
    Set objListOfNodes = xmlDoc.SelectNodes(XPath)
    For n = 0 To objListOfNodes.Length - 1
        Set Right_ = objListOfNodes(n)
        For Each Nod In Right_.ChildNodes
            Select Case Nod.BaseName
            Case "Name"
                Name = Nod.Text
            Case "Owners"
                'Если уверены,
                ' что в документе все на своих местах, иначе перебор в цикле
                Set Organization = Nod.ChildNodes(0).ChildNodes(0).ChildNodes(0)
                OrganizationName = Organization.Text
            Case "Registration"
                ''ваш  Код
            End Select
        Next
    Next
End Sub
[/vba]
Результат

Автор - doober
Дата добавления - 02.02.2021 в 14:59
Velius Дата: Среда, 03.02.2021, 12:16 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Все поля верные кроме Собственника, их там два.
Кроме
Государственное казенное учреждение Тюменской области
"Управление автомобильных дорог", ИНН: 7203001860
Постоянное (бессрочное) пользование, № 72-72-01/230/2009-130 от
05.08.2009

Есть второй вернее он ПЕРВЫЙ
Субъект Российской Федерации Тюменская область
Собственность, № 72-72-01/090/2010-237 от 07.04.2010

И я не могу проверить этот макрос в работе.

Воткнул в книгу макросов Excel, исправил в нем путь к выписке XML на тот где она есть у меня запускаю, никакого результата.
Что делаю не так?

Причем ни ошибки не выдает ничего.

Может скинете уже Excel файл с макросом, чтобы можно было проверить.


Сообщение отредактировал Velius - Среда, 03.02.2021, 12:25
 
Ответить
СообщениеВсе поля верные кроме Собственника, их там два.
Кроме
Государственное казенное учреждение Тюменской области
"Управление автомобильных дорог", ИНН: 7203001860
Постоянное (бессрочное) пользование, № 72-72-01/230/2009-130 от
05.08.2009

Есть второй вернее он ПЕРВЫЙ
Субъект Российской Федерации Тюменская область
Собственность, № 72-72-01/090/2010-237 от 07.04.2010

И я не могу проверить этот макрос в работе.

Воткнул в книгу макросов Excel, исправил в нем путь к выписке XML на тот где она есть у меня запускаю, никакого результата.
Что делаю не так?

Причем ни ошибки не выдает ничего.

Может скинете уже Excel файл с макросом, чтобы можно было проверить.

Автор - Velius
Дата добавления - 03.02.2021 в 12:16
doober Дата: Среда, 03.02.2021, 13:03 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Он никуда ничего не выводит, сделайте точку останова и смотрите значение переменных.Или в консоль печатайте.
Это и есть весь макрос.Это пример работы с xml, на основе его пишите макрос сами.Основные моменты я продемонстрировал.Или
Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?


 
Ответить
СообщениеОн никуда ничего не выводит, сделайте точку останова и смотрите значение переменных.Или в консоль печатайте.
Это и есть весь макрос.Это пример работы с xml, на основе его пишите макрос сами.Основные моменты я продемонстрировал.Или
Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Автор - doober
Дата добавления - 03.02.2021 в 13:03
Velius Дата: Среда, 03.02.2021, 13:21 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Цена вопроса?

Ибо я вообще слабо разбираюсь в VBA.
Фразы типа:
сделайте точку останова и смотрите значение переменных
Или в консоль печатайте

Я не понимаю.


Сообщение отредактировал Velius - Среда, 03.02.2021, 13:22
 
Ответить
Сообщение
Да здесь ТЗ не на один рубль.
Веткой форума не ошиблись?

Цена вопроса?

Ибо я вообще слабо разбираюсь в VBA.
Фразы типа:
сделайте точку останова и смотрите значение переменных
Или в консоль печатайте

Я не понимаю.

Автор - Velius
Дата добавления - 03.02.2021 в 13:21
doober Дата: Среда, 03.02.2021, 16:37 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Попросите модераторов перенести тему в в платный раздел.
И сразу же готовьте тз с пояснениями что и куда заносится.Какие бывают исключения, скользкие моменты и прочее.
И ,скорее всего, будет несколько макросов на обработку разных типов файлов, если структура или алгоритм отличаются.
Цена вопроса?

Без конкретного тз сказать трудно, но то что больше тыщи это точно


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

Без конкретного тз сказать трудно, но то что больше тыщи это точно

Автор - doober
Дата добавления - 03.02.2021 в 16:37
Velius Дата: Четверг, 04.02.2021, 06:59 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

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

Вот попал...
Знать бы еще что за ТЗ и как его описывать.
Структура на мой взгляд там одна и та же.
Есть просто различия приложенные в файле, касаются именно количества собственников, их может не быть, может быть один, два и так далее это все.
 
Ответить
Сообщение
И сразу же готовьте тз с пояснениями что и куда заносится.Какие бывают исключения, скользкие моменты и прочее.

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

Автор - Velius
Дата добавления - 04.02.2021 в 06:59
Pelena Дата: Четверг, 04.02.2021, 09:15 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Velius, перенести тему в платный раздел РАБОТА/ФРИЛАНС?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеVelius, перенести тему в платный раздел РАБОТА/ФРИЛАНС?

Автор - Pelena
Дата добавления - 04.02.2021 в 09:15
Velius Дата: Четверг, 11.02.2021, 14:14 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Velius, перенести тему в платный раздел РАБОТА/ФРИЛАНС?

Да перенесите пожалуйста
 
Ответить
Сообщение
Velius, перенести тему в платный раздел РАБОТА/ФРИЛАНС?

Да перенесите пожалуйста

Автор - Velius
Дата добавления - 11.02.2021 в 14:14
Velius Дата: Четверг, 11.02.2021, 14:26 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - Velius
Дата добавления - 11.02.2021 в 14:26
Pelena Дата: Четверг, 11.02.2021, 15:10 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Вопрос кто возьмется

логично предположить, что doober


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Вопрос кто возьмется

логично предположить, что doober

Автор - Pelena
Дата добавления - 11.02.2021 в 15:10
Velius Дата: Четверг, 11.02.2021, 15:15 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

логично предположить, что doober

И замечательно
 
Ответить
Сообщение
логично предположить, что doober

И замечательно

Автор - Velius
Дата добавления - 11.02.2021 в 15:15
doober Дата: Четверг, 11.02.2021, 16:22 | Сообщение № 20
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
И замечательно

Будет ТЗ с примерами, только тогда возьмусь.
Будут желающие, я не против.Очередь не забиваю.
PS:ТЗ-это техническое задание, где описано, что должен делать макрос в различных ситуациях с примерами.
Хотя бы так


 
Ответить
Сообщение
И замечательно

Будет ТЗ с примерами, только тогда возьмусь.
Будут желающие, я не против.Очередь не забиваю.
PS:ТЗ-это техническое задание, где описано, что должен делать макрос в различных ситуациях с примерами.
Хотя бы так

Автор - doober
Дата добавления - 11.02.2021 в 16:22
Мир MS Excel » Работа и общение » Работа / Фриланс » Вставка строк из несокльких XML выписок ЕГРН в одну таблицу (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!