Coluna Excel dividida com XML dentro

5

Existe uma maneira de quebrar uma coluna do Excel contendo XML em vários colunas como esta:

ANTES

| 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> |

DEPOIS

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

A tabela original vem de um SQL Server que armazena XML em um texto coluna. Se a coluna XML contivesse valores separados por vírgula, eu diria Excel para fazer texto para colunas. Existe um recurso semelhante para XML?

    
por Mihai Nagy 30.04.2013 / 19:59

2 respostas

4

Além da manipulação de texto no Excel, há duas outras opções.

  1. Você pode usar o VBA para analisar o XML. Você pode usar funções de string para procurar por tags ou realmente usar analisadores XML para percorrer o conteúdo (consulte este pergunta sobre SO para mais informações).

  2. Você pode usar o recurso XML Source no Excel (consulte aqui para uma visão geral ). A maneira mais fácil de usar isso é carregar em um arquivo XML. O Excel tentará automaticamente criar um mapa XML para os dados carregados e carregá-lo em uma tabela. Para que realmente funcione bem, você precisa criar um esquema.

Para seus dados, adicionei um elemento raiz e salvei isso em um arquivo:

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

Carregado no Excel, isso cria a seguinte tabela:

    
por 30.04.2013 / 22:32
1

Dado que o material que você não quer é do mesmo tamanho (pelo menos no exemplo), use texto para colunas com 'Fixed Width'

    
por 30.04.2013 / 20:12