Есть исходный файл, в котором настроен импорт данных из указанного файла XML (при нажатии кнопки). Запись каждого нового файла XML осуществляется в конец файла Excel.
Необходимо настроить выгрузку в соответствии с новой структурой файла. Файл Excel "Макрос_итог" c новой структурой прилагаю. В нем добавлены 2 столбца в середине таблице (красная заливка над ячейками), удален последний столбец (так же помечен красной заливкой в файле "макрос-итог").
Необходимо чтобы данные вносились в одну строку по каждой записи (каждая запись ограничена тегами <СведОтказ></СведОтказ>. Пример загрузки в файле "Макрос_исходный".
Каждая запись может содержать несколько значений в поле <КодПричинаОтказ>. Необходимо настроить выгрузку этих данных в одну ячейку, через запятую, если это возможно. При этом код "0000" необходимо игнорировать. Например:
1) <КодПричинаОтказ>0000</КодПричинаОтказ> <КодПричинаОтказ>2002</КодПричинаОтказ> в ячейке должно быть значение "2002".
2) <КодПричинаОтказ>0000</КодПричинаОтказ> <КодПричинаОтказ>1002</КодПричинаОтказ> <КодПричинаОтказ>2002</КодПричинаОтказ> в ячейке должно отображаться значение "1102, 2002".
Также желательно предусмотреть сохранение текстового формата данных в некоторых ячейках (т.к. в некоторых ячейках присутствуют длинные цифровые значения, и при импорте хвостик теряется).
И самое главное необходимо дать пояснения по коду, и объяснить что и где нужно настроить (человеку без опыта программирования), в случае, если понадобится добавить или удалить столбец.
Код
<?xml version="1.0" encoding="UTF-8"?>
<СообщОтказРастор>
<СлужЧасть>
<ВерсияФормата>1</ВерсияФормата>
<ВерсПрог>Текст</ВерсПрог>
<ТипИнф>01</ТипИнф>
<БИККОНапрв>999999999</БИККОНапрв>
<ДатаСообщения>00/00/2000</ДатаСообщения>
<УполнСотрудн>Руководитель</УполнСотрудн>
<ФИОУполнСотрудн>
<Фам>ИВАНОВ</Фам>
<Имя>ИВАН</Имя>
<Отч>ИВАНОВИЧ</Отч>
</ФИОУполнСотрудн>
<ТелУполнСотрудн>(495)0000000</ТелУполнСотрудн>
<ЭлектроннаяПочта>pochta@mail.ru</ЭлектроннаяПочта>
</СлужЧасть>
<ИнформЧасть>
<ИнфБанк>
<РегНомКО>4444</РегНомКО>
<БИККО>999999999</БИККО>
<ОКАТОКО>22</ОКАТОКО>
</ИнфБанк>
<СведПредстав>
<ПризнакПредставСвед>1</ПризнакПредставСвед>
<ИнфФилиал>
<НомФл>22</НомФл>
<БИКФл>999999999</БИКФл>
<ОКАТОФл>22</ОКАТОФл>
</ИнфФилиал>
<СведОтказ>
<НомерЗаписи>2018_2275_0000_00_0000000000</НомерЗаписи>
<ТипЗаписи>1</ТипЗаписи>
<ПризнакИнф>0</ПризнакИнф>
<КодОтказа>00</КодОтказа>
<КодПричинаОтказ>0000</КодПричинаОтказ>
<КодПричинаОтказ>2002</КодПричинаОтказ>
<ИнаяПричинаОтказа>Текст текст текст текст.</ИнаяПричинаОтказа>
<ДатаОтказа>01/01/2010</ДатаОтказа>
<ТипКлиента>1</ТипКлиента>
<ПризнакКлиента>1</ПризнакКлиента>
<СведЮЛ>
<НаимЮЛ>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ А</НаимЮЛ>
<ИННЮЛ>1111111111</ИННЮЛ>
<КППЮЛ>111111111</КППЮЛ>
<ОКПОЮЛ>11111111</ОКПОЮЛ>
<ОКВЭД2ЮЛ>46.72</ОКВЭД2ЮЛ>
<ОГРНЮЛ>1111111111111</ОГРНЮЛ>
<АдрРегЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>94</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>111</Дом>
<Корп></Корп>
<Оф>1</Оф>
</АдрРегЮЛ>
<АдрЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>94</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>111</Дом>
<Корп></Корп>
<Оф>1</Оф>
</АдрЮЛ>
</СведЮЛ>
<Коммент>Текст текст текст текст текст текст текст.</Коммент>
</СведОтказ>
<СведОтказ>
<НомерЗаписи>2018_2275_0000_00_0000000001</НомерЗаписи>
<ТипЗаписи>1</ТипЗаписи>
<ПризнакИнф>0</ПризнакИнф>
<КодОтказа>00</КодОтказа>
<КодПричинаОтказ>0000</КодПричинаОтказ>
<КодПричинаОтказ>1002</КодПричинаОтказ>
<КодПричинаОтказ>2002</КодПричинаОтказ>
<ИнаяПричинаОтказа>Текст текст текст текст.</ИнаяПричинаОтказа>
<ДатаОтказа>01/01/2010</ДатаОтказа>
<ТипКлиента>1</ТипКлиента>
<ПризнакКлиента>1</ПризнакКлиента>
<СведЮЛ>
<НаимЮЛ>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ Б</НаимЮЛ>
<ИННЮЛ>1111111112</ИННЮЛ>
<КППЮЛ>111111112</КППЮЛ>
<ОКПОЮЛ>11111112</ОКПОЮЛ>
<ОКВЭД2ЮЛ>46.73</ОКВЭД2ЮЛ>
<ОГРНЮЛ>1111111111112</ОГРНЮЛ>
<АдрРегЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>63</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>112</Дом>
<Корп></Корп>
<Оф>2</Оф>
</АдрРегЮЛ>
<АдрЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>63</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>112</Дом>
<Корп></Корп>
<Оф>2</Оф>
</АдрЮЛ>
</СведЮЛ>
<Коммент>Текст текст текст текст текст текст текст.</Коммент>
</СведОтказ>
<СведОтказ>
<НомерЗаписи>2018_2275_0000_00_0000000002</НомерЗаписи>
<ТипЗаписи>1</ТипЗаписи>
<ПризнакИнф>0</ПризнакИнф>
<КодОтказа>00</КодОтказа>
<КодПричинаОтказ>0000</КодПричинаОтказ>
<КодПричинаОтказ>1002</КодПричинаОтказ>
<КодПричинаОтказ>2002</КодПричинаОтказ>
<ИнаяПричинаОтказа>Текст текст текст текст.</ИнаяПричинаОтказа>
<ДатаОтказа>01/01/2010</ДатаОтказа>
<ТипКлиента>1</ТипКлиента>
<ПризнакКлиента>1</ПризнакКлиента>
<СведЮЛ>
<НаимЮЛ>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ В</НаимЮЛ>
<ИННЮЛ>1111111113</ИННЮЛ>
<КППЮЛ>111111113</КППЮЛ>
<ОКПОЮЛ>11111113</ОКПОЮЛ>
<ОКВЭД2ЮЛ>49.41</ОКВЭД2ЮЛ>
<ОГРНЮЛ>1111111111113</ОГРНЮЛ>
<АдрРегЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>94</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>113</Дом>
<Корп></Корп>
<Оф>3</Оф>
</АдрРегЮЛ>
<АдрЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>94</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>113</Дом>
<Корп></Корп>
<Оф>3</Оф>
</АдрЮЛ>
</СведЮЛ>
<Коммент>Текст текст текст текст текст текст текст.</Коммент>
</СведОтказ>
</СведПредстав>
<СведПредстав>
<ПризнакПредставСвед>1</ПризнакПредставСвед>
<ИнфФилиал>
<НомФл>0</НомФл>
<БИКФл>999999999</БИКФл>
<ОКАТОФл>50</ОКАТОФл>
</ИнфФилиал>
<СведОтказ>
<НомерЗаписи>2018_2275_0000_00_0000000003</НомерЗаписи>
<ТипЗаписи>1</ТипЗаписи>
<ПризнакИнф>0</ПризнакИнф>
<КодОтказа>00</КодОтказа>
<КодПричинаОтказ>0000</КодПричинаОтказ>
<КодПричинаОтказ>2002</КодПричинаОтказ>
<ИнаяПричинаОтказа>Текст текст текст текст.</ИнаяПричинаОтказа>
<ДатаОтказа>01/01/2010</ДатаОтказа>
<ТипКлиента>1</ТипКлиента>
<ПризнакКлиента>1</ПризнакКлиента>
<СведЮЛ>
<НаимЮЛ>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ Г</НаимЮЛ>
<ИННЮЛ>1111111114</ИННЮЛ>
<КППЮЛ>111111114</КППЮЛ>
<ОКПОЮЛ>11111114</ОКПОЮЛ>
<ОКВЭД2ЮЛ>43.39</ОКВЭД2ЮЛ>
<ОГРНЮЛ>1111111111114</ОГРНЮЛ>
<АдрРегЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>52</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>114А</Дом>
<Корп></Корп>
<Оф>4</Оф>
</АдрРегЮЛ>
<АдрЮЛ>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>52</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>114А</Дом>
<Корп></Корп>
<Оф>4</Оф>
</АдрЮЛ>
</СведЮЛ>
<Коммент>Текст текст текст текст текст текст текст.</Коммент>
</СведОтказ>
</СведПредстав>
<СведПредстав>
<ПризнакПредставСвед>1</ПризнакПредставСвед>
<ИнфФилиал>
<НомФл>00</НомФл>
<БИКФл>999999999</БИКФл>
<ОКАТОФл>65</ОКАТОФл>
</ИнфФилиал>
<СведОтказ>
<НомерЗаписи>2018_2275_0000_00_0000000004</НомерЗаписи>
<ТипЗаписи>1</ТипЗаписи>
<ПризнакИнф>0</ПризнакИнф>
<КодОтказа>00</КодОтказа>
<КодПричинаОтказ>0000</КодПричинаОтказ>
<ИнаяПричинаОтказа>Текст текст текст текст.</ИнаяПричинаОтказа>
<ДатаОтказа>01/01/2010</ДатаОтказа>
<ТипКлиента>3</ТипКлиента>
<ПризнакКлиента>1</ПризнакКлиента>
<СведФЛИП>
<ФИОФЛИП>
<Фам>ПЕТРОВ</Фам>
<Имя>ПЕТР</Имя>
<Отч>ПЕТРОВИЧ</Отч>
</ФИОФЛИП>
<ИННФЛИП>121212121212</ИННФЛИП>
<ОКВЭД2ИП>49.41</ОКВЭД2ИП>
<ОГРНИП>151515151515151</ОГРНИП>
<АдрРегИП>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>04</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>115</Дом>
<Корп></Корп>
<Оф>5</Оф>
</АдрРегИП>
<СведДокУдЛичн>
<ВидДокКод>21</ВидДокКод>
<ВидДокНаименование>Паспорт гражданина Российской Федерации (для гражданина Российской Федерации, достигшего 14 лет)</ВидДокНаименование>
<СерияДок>4444</СерияДок>
<НомДок>666666</НомДок>
<ДатВыдачиДок>01/01/2000</ДатВыдачиДок>
<КемВыданДок>УПРАВЛЕНИЕМ ВНУТРЕННИХ ДЕЛ</КемВыданДок>
<КодПодр>000-000</КодПодр>
</СведДокУдЛичн>
<ДатаРождения>01/01/1900</ДатаРождения>
<МестоРожд>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЙСКАЯ ФЕДЕРАЦИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>04</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
</МестоРожд>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<ПризнакПубЛицо>0</ПризнакПубЛицо>
<АдрРег>
<КодОКСМ>643</КодОКСМ>
<СтранаНаименование>РОССИЯ</СтранаНаименование>
<КодСубъектаПоОКАТО>04</КодСубъектаПоОКАТО>
<Район></Район>
<Пункт>ГОРОД Г</Пункт>
<Улица>УЛИЦА УЛ</Улица>
<Дом>2</Дом>
<Корп></Корп>
<Оф>10</Оф>
</АдрРег>
</СведФЛИП>
<Коммент>Текст текст текст текст текст текст текст.</Коммент>
</СведОтказ>
</СведПредстав>
</ИнформЧасть>
</СообщОтказРастор>
Работает частично, но экспорт некорректен) Не выполняются следующие условия:
Необходимо чтобы данные вносились в одну строку по каждой записи (каждая запись ограничена тегами <СведОтказ></СведОтказ>. Сейчас данные размазываются по ячейкам и вместо одной строки (как в исходном файле) получается 12.
Каждая запись может содержать несколько значений в поле <КодПричинаОтказ>. Необходимо настроить выгрузку этих данных в одну ячейку, через запятую, если это возможно. При этом код "0000" необходимо игнорировать. Ну и необходимость этой доработки появилась только с добавлением нового столбца, т.е. не была реализована ранее.