2011-11-18 15 views
9

मेरे पास Excel 2010 वर्कशीट पर एक XML मानचित्र है, जिसे मैं नियमित रूप से किसी XML फ़ाइल की सामग्री से रीफ्रेश करता हूं। मैंने हाल ही में एक्सएमएल डेटा में एक नया क्षेत्र जोड़ा और इसे अपने एक्सएमएल मानचित्र पर दिखाना चाहते हैं।एक्सेल एक एक्सएमएल मानचित्र में एक फ़ील्ड जोड़ें

मैं बस नया क्षेत्र जोड़ने में सक्षम होना चाहता हूं हालांकि यह प्रतीत होता है कि बीमार को फिर से पूरी संरचना आयात करना है, मैं ऐसा नहीं करना चाहता क्योंकि इसे कस्टम बनाने के बहुत से पुनर्विकास की आवश्यकता होगी।

किसी भी मदद की सराहना की।

उत्तर

5

दुर्भाग्यवश इस समय Excel में XML ऑब्जेक्ट मॉडल में स्कीमा के लिए कोई आसान "ताज़ा करें" विधि नहीं है। XML Toolbox for Excel 2003 ऐसा करने में सक्षम था, लेकिन मुझे यकीन नहीं है कि यह अभी भी Excel 2010 (एक प्रयास के लायक) में चलता है। इसके लिए वैकल्पिक अपना स्वयं का वीबीए कोड लिखना है जो आपके "नए" स्कीमा को नए मानचित्र में आयात करेगा, और फिर "पुरानी" स्कीमा के लिए मौजूदा तत्व मानचित्रों को देखें और फिर इन्हें "नई" स्कीमा में हटा दें, अंत में हटाएं पुराना वाला। मुझे पता है कि थोड़ा बालों वाला लगता है, लेकिन अगर आपकी स्कीमा महत्वपूर्ण रूप से बदलती नहीं है तो यह जवाब हो सकता है।

इस से कम कृत्रिम विधि है, जिसमें कार्यपुस्तिका के अंतर्निहित एक्सएमएल में स्कीमा को सीधे बदलना शामिल है। यदि xl फ़ोल्डर के तहत कार्यपुस्तिका संरचना के अंदर कोई नज़र डालें, तो आप देखेंगे कि xmlMaps.xml नाम की एक फ़ाइल है और इस फ़ाइल के अंदर आपकी स्कीमा की एक प्रति होगी - फिर आप इसे सीधे संपादित कर सकते हैं (नए तत्व आदि जोड़ सकते हैं) और तब जब आप इसे Excel में फिर से खोलते हैं, तो आपके मूल सेल स्वरूपण को अपरिवर्तित छोड़कर नए फ़ील्ड आपकी कार्यपुस्तिका में उपयोग के लिए दिखाए जाएंगे।

+0

टूलबॉक्स एक बुरा, यह पहली आवश्यक .NET फ़्रेमवर्क 1.1 है, तो यह एक अनिर्दिष्ट कारण के साथ स्थापित करने के लिए मना कर दिया, तो मैं मैन्युअल रूप से MSI से फाइल निकालने के लिए किया था, और जब मैं अंत में मिला यह में प्रदर्शित होने एक्सेल, रीलोड एक्सएमएल मानचित्र बटन रीमेपिंग संवाद प्रदर्शित करेगा, लेकिन इसमें सूचीबद्ध कोई स्कीमा नहीं है। क्या यह केवल डेटासोर्स में मैप किए गए स्कीमा के साथ काम करता है (हमारा नहीं है)? – GSerg

4

मैं एक ज़िप के रूप में xlsx निकाला जाता है और मैन्युअल रूप से हटा सकते हैं और फिर से इस साइट पर निर्देशों का पालन मैपिंग जोड़े बिना परिवर्तन करने के लिए कर रहा था: http://davidovitz.blogspot.com/2010/05/howto-refresh-xml-schema-in-excel.html

+0

तो चरण आप फ़ाइलों को निकालने के बाद निकालेंगे (xmlMaps.xml को प्रतिस्थापित करें) फिर इसे एक्सेल फ़ाइल में बदलने के लिए अगला चरण क्या है? – akd

2

यह वास्तव में क्या ओ पी नहीं कहा है के लिए है, लेकिन यह मेरे मामले में काम किया है, इसलिए मैं अपने रिबन में

  1. राइट क्लिक करें (ऑफिस 2013 का प्रयोग करके) और डेवलपर टूल सक्षम एक संभावित समाधान के रूप में जोड़ने हूँ

enter image description here

अपने रिबन पर नए डेवलपर उपकरण अनुभाग के लिए
  1. जाओ और क्लिक स्रोत

enter image description here

  1. यह एक राउंडथैंड साइड फ्लाईआउट खुल जाएगा। बोल्ड में तत्व वर्तमान में आपके कॉलम पर मैप किए गए हैं। ध्यान दें कि चीजें उन पर क्लिक करके मैप करें। मेरे मामले में यह स्तंभ ए, इत्यादि के पहले तत्व मैपिंग के साथ बहुत सरल था। फिर बोल्ड में किसी भी चीज़ पर राइट क्लिक करें और इसे अनैप करें।

enter image description here

  1. फ़्लायआउट

  2. क्लिक करें के तल पर एक्सएमएल मैप्स बटन पर क्लिक करें जोड़ें और एक फाइल करने के लिए नेविगेट या एक URL दर्ज

enter image description here

  1. वर्ष मानचित्रण निकालें यदि आप

  2. हाइलाइट सभी अपने नए तत्व और एक नया मानचित्रण आवंटित करने के लिए राइट क्लिक चाहते हैं। ऐसा करने के लिए पहले नोट किए गए नोट्स का उपयोग करें। दोबारा, मेरा मामला बहुत सीधा था क्योंकि कॉलम केवल अंत में संलग्न थे। यदि आपके बीच बीच में कॉलम जोड़े गए हैं, तो आप उन्हें अपनी तालिका के अंत में रीमेप करना चाहते हैं।

+0

यह मेरे लिए Office2016 में काम नहीं कर रहा है। "जोड़ें" चरण URL प्रविष्टियों को अस्वीकार कर रहा है। – mrtsherman

+0

मैंने एक समान वर्कफ़्लो का उपयोग किया, जो कॉलम को हटा दिया गया था या बीच में जोड़ा गया था और यदि आपके पास कई मैपिंग नहीं हैं: 1) पुराने एक्सएमएल मैप को हटाएं 2) नया एक्सएमएल मैप जोड़ें 3) मैपिंग को फिर से बनाएं प्रत्येक तत्व व्यक्तिगत रूप से एक्सएमएल स्रोत फलक से मौजूदा तत्व के कॉलम में (या एक नए कॉलम में) प्रत्येक तत्व को खींचकर छोड़ देता है। – Kapep

संबंधित मुद्दे