Импорт XML-файла в excel

У меня многоуровневый XML-файл. Когда я импортирую XML в excel, он создает несколько столбцов для многоуровневых данных. Однако мне нужны многоуровневые данные в качестве дополнительных строк.

есть ли способ я могу добиться этого ?
Большое спасибо за помощь.

мой XML-файл:

<L1>
    <L1dataId>07320</L1dataId>
    <DateDetail>13-Oct-2013</DateDetail>
    <TypeDetail>
        <TypeId>1</TypeId>
        <Rate1>
            <Current>
                <onsite>100</onsite>
                <net>100</net>
                <gross>100</gross>
            </Current>
            <Past>
                <onsite>100</onsite>
                <net>100</net>
                <gross>100</gross>
            </Past>
        </Rate1>
        <Rate2>
            <Current>
                <onsite>2100</onsite>
                <net>2100</net>
                <gross>2100</gross>
            </Current>
            <Past>
                <onsite>2100</onsite>
                <net>2200</net>
                <gross>1200</gross>
            </Past>
        </Rate2>
        <Rate3>
            <Current>
                <onsite>300</onsite>
                <net>300</net>
                <gross>300</gross>
            </Current>
            <Past>
                <onsite>400</onsite>
                <net>400</net>
                <gross>400</gross>
            </Past>
        </Rate3>
    </TypeDetail>
    <TypeDetail>
        <TypeId>2</TypeId>
        <Rate1>
            <Current>
                <onsite>100</onsite>
                <net>100</net>
                <gross>100</gross>
            </Current>
            <Past>
                <onsite>100</onsite>
                <net>100</net>
                <gross>100</gross>
            </Past>
        </Rate1>
        <Rate2>
            <Current>
                <onsite>2100</onsite>
                <net>2100</net>
                <gross>2100</gross>
            </Current>
            <Past>
                <onsite>2100</onsite>
                <net>2200</net>
                <gross>1200</gross>
            </Past>
        </Rate2>
        <Rate3>
            <Current>
                <onsite>300</onsite>
                <net>300</net>
                <gross>300</gross>
            </Current>
            <Past>
                <onsite>400</onsite>
                <net>400</net>
                <gross>400</gross>
            </Past>
        </Rate3>
    </TypeDetail>
</L1>

как Excel преобразует его и как мне это нужно:
Excel Import Image

19
задан Sudhee
28.03.2023 23:32 Количество просмотров материала 2933
Распечатать страницу

2 ответа

Я не очень разбираюсь в XML, но похоже, что у вас проблемы с исходными данными, они не структурированы в строках; вместо этого они структурированы как огромная коллекция столбцов.

обычный лучший вариант-преобразовать его в сводную таблицу, но поскольку данные создают повторяющиеся столбцы, сводная таблица не будет работать. Вы можете создавать вспомогательные столбцы, но я не могу представить, что даст вам структуру таблицы, которую вы хотите без макроса.

Так выглядит, что вы нужно перестроить ваши данные, так что каждый предмет существует в качестве отдельного элемента.

вот сокращенный пример кода. Обратите внимание, каждая запись хранится в отдельном разделе и такие вещи, как Ид типа, скорости и даже государство были преобразованы в атрибуты этого элемента:

<L1>
<L1dataId>07320</L1dataId>
<DateDetail>13-Oct-2013</DateDetail>

<Detail>
    <TypeId>1</TypeId>
    <RateID>1</RateID>
    <State>Current</State>
    <onsite>100</onsite>
    <net>100</net>
    <gross>100</gross>
</Detail>

<Detail>
    <TypeId>1</TypeId>
    <RateID>1</RateID>
    <State>Past</State>
    <onsite>100</onsite>
    <net>100</net>
    <gross>100</gross>
</Detail>  

</L1>

при импорте в excel данные выглядят так:

XML Import

2
отвечен CLockeWork 2023-03-30 07:20

ответ на этот вопрос состоял в том, чтобы фактически изменить XML-файл, прежде чем он будет импортирован в excel. Чтобы изменить XML-файл, вам нужно будет код XSL и преобразовать XML для уменьшения иерархии.

подробнее здесь и решения, которые работали для меня :

https://stackoverflow.com/questions/23887293/xslt-for-converting-xml-nodename-into-a-node-value

1
отвечен Sudhee 2023-03-30 09:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

import
microsoft-excel
microsoft-excel-2010
microsoft-office
xml
Вверх