5

Есть ли способ разбить столбец Excel, содержащий XML, на несколько столбцов, например:

ДО

| Apples | Pears | XML                              |
| ------ | ----- | ---------------------------------|
| 35     | 18    | <Plums>34</Plums><Figs>19</Figs> |
| 86     | 55    | <Plums>12</Plums><Figs>62</Figs> |
| 99     | 12    | <Plums>18</Plums><Figs>23</Figs> |

ПОСЛЕ

| Apples | Pears | Plums | Figs |
| ------ | ----- | ----- | ---- |
| 35     | 18    | 34    | 19   |
| 86     | 55    | 12    | 62   |
| 99     | 12    | 18    | 23   |

Исходная таблица взята из SQL Server, который хранит XML в текстовом столбце. Если бы столбец XML содержал значения, разделенные запятыми, я бы сказал Excel сделать текст в столбцы. Есть ли похожая функция для XML?

2 ответа2

4

Помимо манипулирования текстом в Excel, есть еще два варианта.

  1. Вы можете использовать VBA для анализа XML. Вы можете использовать строковые функции для поиска тегов или использовать синтаксические анализаторы XML для просмотра содержимого (см. Этот вопрос в SO для получения дополнительной информации).

  2. Вы можете использовать функцию XML Source в Excel (см. Здесь обзор). Самый простой способ использовать это - загрузить файл XML. Excel автоматически попытается создать карту XML для загруженных данных и загрузить ее в таблицу. Чтобы это действительно хорошо работало, хотя вам нужно создать схему.

Для ваших данных я добавил корневой элемент и сохранил его в файле:

<Fruits>
    <Plums>34</Plums><Figs>19</Figs>
    <Plums>12</Plums><Figs>62</Figs>
    <Plums>18</Plums><Figs>23</Figs>
</Fruits>

При загрузке в Excel создается следующая таблица:

1

Учитывая, что материал, который вам не нужен, имеет одинаковый размер (по крайней мере, в примере), используйте текст для столбцов с «Фиксированной шириной»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .