Excel — Не удается найти способ получить Excel в XML с текущей strutcure

#xml #excel #vba

#xml #excel #vba

Вопрос:

У меня настроены мои данные следующим образом:

 |------------------------------------|------------------------------------|
|               Old URL              |                 New URL            |
|------------------------------------|------------------------------------|
|      http://example.com/page-a     |       http://newsite.com/page-a    |
|------------------------------------|------------------------------------|
|      http://example.com/page-b     |       http://newsite.com/page-a    |
|------------------------------------|------------------------------------|
|      http://example.com/page-c     |       http://newsite.com/page-b    |
|------------------------------------|------------------------------------|
|      http://example.com/page-d     |       http://newsite.com/page-c    |
|------------------------------------|------------------------------------|
|      http://example.com/page-e     |       http://newsite.com/page-c    |
|------------------------------------|------------------------------------|
|      http://example.com/page-f     |       http://newsite.com/page-c    |
|------------------------------------|------------------------------------|
|      http://example.com/page-g     |       http://newsite.com/page-c    |
|------------------------------------|------------------------------------|
|      http://example.com/page-h     |       http://newsite.com/page-d    |
|------------------------------------|------------------------------------|
|      http://example.com/page-i     |       http://newsite.com/page-d    |
|------------------------------------|------------------------------------|
 

Мне нужно перевести эти данные в формат XML, как показано на рисунке:

 <urls>
  <url>
    <old>http://example.com/page-a</old>
    <old>http://example.com/page-b</old>
    <new>http://newsite.com/page-a</new>
  </url>
  <url>
    <old>http://example.com/page-c</old>
    <new>http://newsite.com/page-b</new>
  </url>
  <url>
    <old>http://example.com/page-d</old>
    <old>http://example.com/page-e</old>
    <old>http://example.com/page-f</old>
    <old>http://example.com/page-g</old>
    <new>http://newsite.com/page-c</new>
  </url>
  <url>
    <old>http://example.com/page-h</old>
    <old>http://example.com/page-i</old>
    <new>http://newsite.com/page-d</new>
  </url>
</urls>
 

Каждый <url></url> из них был бы строкой, по сути, новой строкой. Если бы у меня мог быть <url> переход только для каждого отдельного старого URL-адреса на новый URL-адрес, тогда это не было бы проблемой. Тем не менее, у меня разные номера <old></old> для каждого <new></new> . В моей голове единственный способ, который я мог придумать, чтобы сделать это, — это иметь несколько старых столбцов и переносить дату из строк в столбцы, но, похоже, на это уйдет ЦЕЛАЯ ВЕЧНОСТЬ. У меня есть десятки тысяч дел, которые нужно сделать. Кто-нибудь еще знает о лучшем способе сделать это?

Комментарии:

1. Я думаю, вам нужен только один логический цикл. Создайте Scripting.Dictionary , используя новую строку URL в качестве ключа, тогда элемент для этого ключа представляет собой разделенный запятыми список старых URL-адресов. Чтобы затем создать свой XML, создайте <url></url> для каждого ключа и (используя Split ) разделите Dictionary.Item его на отдельные старые URL-адреса, создавая для них записи XML.

2. Ваш пример не совсем понятен. Как совпадают старый и новый URL-адреса? Не зная закономерности, мы не можем помочь создать логическую процедуру.