Страницы: 1
RSS
Формирование сводной таблицы из XML
 
Всех с праздниками!!!
Необходимо из XML примерно 300 шт. перенести определенный числа в эксель файл в определенные ячейки.

Формирование листа «Аварии»:
указывается папка XML, перебираются все файлы XML в заданной папке, подпапке, берутся данные из столбцов «Дата» и «Тип аварии», в соответствии с
номером, указанным в первой строке XML, отправляет их в таблицу файла EXCEL. В таблице формируется отчет в соответствии с номером УМЗ.

В таблице листе «Аварии» EXCEL находится столбец «№УМЗ» в ячейках которого указан номер, в соответствии с этим номером заполняются строки с данными взятыми из XML. Так же в листе EXCEL имеются столбцы «Месяц» с января по декабрь, каждый месяц включают в себя столбцы «I < Imin», «Авария МТЗ». В столбец EXCEL (наименования перечислены выше) вписывается число месяца через запятую которое берётся из XML столбца «Дата» и находится в одной строке столбца «Тип аварии» (наименования перечислены выше), одинаковые числа месяца, записываются один раз.

Как это сделать?  
Изменено: katran - 03.01.2020 22:34:46
 
Здравствуйте.
Цитата
katran написал:
Как это сделать?
Для начала написать макрос(найти в сети) получения списка файлов xml с папок и подпапок.
Изучить DOMDocument , XPath для работы с ним.
И написать макрос разбора документов.
Почитать здесь , здесь
 
Цитата
doober написал:
Изучить DOMDocument , XPath для работы с ним.
Привет, Сергей.
А каков в этом смысл? Если судить по заголовку <?mso-application progid="Excel.Sheet"?> - это Таблица XML 2003. Excel его прекрасно откроет как однолистовую книгу, а дальше уже обычными средствами объектной модели Excel можно разбирать. Преобразовал в обычную книгу.
 
Цитата
Андрей VG написал:
Преобразовал в обычную книгу.
Да , открывается по одному файлу и преобразовываются. Это каждый раз делать? XML каждый месяц обновляются.
Нужно примерно вот это но c XML https://excelvba.ru/code/CombineFiles
Изменено: katran - 03.01.2020 21:44:38
 
Приветствую Андрей.
Я не смог архив открыть, у меня старая версия rar
 
Цитата
katran написал:
Нужно примерно вот это но c XML
Отредактируйте фильтр файлов в коде - будет и с вашими xml работать :)
Цитата
doober написал:
Я не смог архив открыть
Сергей, ну вот не верю, что вы ни double commander, ни far не пользуетесь :)
 
Цитата
Андрей VG написал:
Сергей, ну вот не верю, что вы ни double commander, ни far не пользуетесь
Кому надо, тот и обеспечивает примерами.Я обычно в zip всегда сохраняю.
В этом  случае формат архива rar4
 
doober, попробуй открыть.  
Изменено: katran - 04.01.2020 07:18:29
 
Цитата
Андрей VG написал:
Отредактируйте фильтр файлов в коде - будет и с вашими xml работать
С этим разобрался,указанную папку открывает и копирует данные, а как теперь заставить подпапку открывать?
Еще бы разобраться как с нуля сделать такой макрос, пошагово под мои нужды.  
Изменено: katran - 04.01.2020 07:20:12
 
Проверяет папки и вложенные папки.
На выходе получаете подсчет аварий согласно месяцу и году.
Дальше сами думайте, как распорядиться результатом
 
Спасибо огромное!
doober, теоретически результат опроса я могу в любую ячейку сводной таблицы направить ?
Изменено: katran - 04.01.2020 12:15:09
 
Цитата
katran написал:
вы встроенными функциями в эксель написали макрос ?
А что значит встроенными функциями? По моему в коде подключаются две библиотеки, и как по мне то это не совсем встроенные функции. Но если эти библиотеки считать встроенными функциями, то по сути все что используется в макросах будет "встроенная функция"  ;) .
PS: Какая то тавтология получилась  :D
Изменено: Nordheim - 04.01.2020 12:06:21
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
katran написал:
вы встроенными функциями в эксель написали макрос ?
Нет, практически в блокноте писал.
 
Nordheim, если вы такой специалист может поможете со сводной таблицей?
 
Помочь и сделать все за вас это разные вещи, покажите , что у вас не получается.
"Все гениальное просто, а все простое гениально!!!"
 
Как направить данные из макроса  в нужную ячейку сводной таблицы? Мне нужно что бы число аварий из макроса записывались в определенную ячейку равного месяца в соответствии с ячейкой столбца №УМЗ . Вообще, нужно делать таблицу с нуля или можно эту доработать?
Как сделать чтобы данные в сводной таблице присваивались конкретному номеру УМЗ указанному в таблице?
Изменено: katran - 05.01.2020 10:55:11
 
katran, добрый день!

В какие графы записываются другие виды аварий "Iнп > Iут", "Авария МТЗ", "Пропадание сети" и т.д.? В графу Imax?
 
Добрый день!
Графы  будут свои, еще не добавил.
Изменено: katran - 05.01.2020 12:54:00
 
Цитата
katran написал:
еще не добавил
Добавляйте и выкладывайте конечный файл
 
Вот
 
В итоговом не хватает "Пропадание сети"

Вот такой вариант получился
 
Цитата
Dmitriy XM написал:
В итоговом не хватает "Пропадание сети"Вот такой вариант получился
Спасибо!
 
Изменил, чтобы в ячейках не повторялись даты
Страницы: 1
Наверх