एक्सएमएल फ़ाइल को एक्सेल में आयात करना


1

मेरे पास एक बहुस्तरीय XML फ़ाइल है। जब मैं एक्सएमएल को एक्सेल में आयात करता हूं, तो यह मल्टीलेवल डेटा के लिए कई कॉलम बनाता है। हालाँकि, मुझे अतिरिक्त पंक्तियों के रूप में बहुस्तरीय डेटा की आवश्यकता है।

क्या कोई ऐसा तरीका है जिससे मैं इसे हासिल कर सकता हूं? आपकी सहायता के लिए धन्यवाद।

मेरी 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>

एक्सेल इसे कैसे परिवर्तित करता है और मुझे इसकी आवश्यकता कैसे है: एक्सेल इम्पोर्ट इमेज


1
क्या Google मदद नहीं कर सकता? office.microsoft.com/en-gb/excel-help/…
duDE

जवाबों:


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>

जब एक्सेल आयात करने के लिए डेटा इस तरह दिखता है:

XML आयात


@ शुदे, कोई बात नहीं। तो ऐसा लगता है कि उत्तर दो भागों में आता है, इस प्रश्न का उत्तर यह है कि आपको एक अलग प्रारूप में अपने डेटा की आवश्यकता है लेकिन यह एक दूसरा प्रश्न उठाता है: क्या ऐसा करने का एक आसान तरीका है? यदि इस प्रश्न के इस भाग के लिए मेरा उत्तर सही था, तो मैं इसकी बहुत प्रशंसा करूंगा यदि आप इसे इस तरह चिह्नित कर सकते हैं :)
CLockeWork

1

इस प्रश्न का उत्तर वास्तव में एक्सएमएल फ़ाइल को बदलने से पहले था, क्योंकि इसे एक्सेल में आयात किया जाता है। XML फ़ाइल को बदलने के लिए, आपको XSL कोड करना होगा और पदानुक्रम को कम करने के लिए XML परिवर्तित करना होगा।

यहाँ और अधिक विवरण और समाधान जो मेरे लिए काम करते हैं:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.