मैं पिछले कुछ दिनों से इस सटीक समस्या से जूझ रहा हूं और एक्सेल फाइलों को इस तरह से निकालने और सामान्य करने के लिए एक छोटी सी .NET उपयोगिता लिखी है ताकि वे सोर्स कंट्रोल में स्टोर करना ज्यादा आसान हो। मैंने यहाँ निष्पादन योग्य प्रकाशित किया है:
https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXmlUnpack.exe
.. और यहाँ स्रोत:
https://bitbucket.org/htilabs/ooxmlunpack
यदि कोई दिलचस्पी है तो मैं इसे और अधिक विन्यास बनाने में खुश हूं, लेकिन फिलहाल, आपको निष्पादन योग्य को एक फ़ोल्डर में रखना चाहिए (जैसे कि आपके स्रोत का भंडार) और जब आप इसे चलाते हैं, तो यह होगा:
- किसी भी .xlsx और .xlsm फ़ाइलों के लिए फ़ोल्डर और उसके सबफ़ोल्डर्स को स्कैन करें
- फ़ाइल की एक प्रति * .orig के रूप में लें।
- प्रत्येक फ़ाइल को अनज़िप करें और बिना किसी संपीड़न के इसे फिर से ज़िप करें।
- संग्रह में किसी भी फाइल को सुंदर-प्रिंट करें जो वैध एक्सएमएल हैं।
- संग्रह से calcchain.xml फ़ाइल हटाएं (क्योंकि यह बहुत बदल जाता है और फ़ाइल की सामग्री को प्रभावित नहीं करता है)।
- किसी भी विकृत पाठ मानों को इनलाइन करें (अन्यथा इन्हें लुकअप टेबल में रखा जाता है जो आंतरिक एक्सएमएल में बड़े बदलाव का कारण बनता है अगर एक भी सेल संशोधित हो)।
- मानों को किसी भी सेल से हटाएं, जिसमें सूत्र शामिल हैं (क्योंकि वे केवल गणना की जा सकती हैं जब शीट अगली बार खोली जाती है)।
- एक सबफ़ोल्डर बनाएं।।
स्पष्ट रूप से इन सभी चीजों के लिए आवश्यक नहीं है, लेकिन अंतिम परिणाम एक स्प्रेडशीट फ़ाइल है जो अभी भी एक्सेल में खुलेगी, लेकिन जो भिन्न और वृद्धिशील संपीड़न के लिए बहुत अधिक उत्तरदायी है। साथ ही, निकाली गई फ़ाइलों को संग्रहीत करने से संस्करण इतिहास में यह और अधिक स्पष्ट हो जाता है कि प्रत्येक संस्करण में क्या परिवर्तन लागू किए गए हैं।
अगर वहां कोई भूख है, तो मुझे उपकरण को और अधिक विन्यास बनाने में खुशी हो रही है क्योंकि मुझे लगता है कि हर कोई सामग्री निकाली गई सामग्री, या संभवतः सूत्र कोशिकाओं से हटाए गए मूल्यों को नहीं चाहेगा, लेकिन ये दोनों इस समय मेरे लिए बहुत उपयोगी हैं।
परीक्षणों में, 21 एमबी के लिए एक 2 एमबी स्प्रेडशीट 'अनपैक', लेकिन फिर मैं 1.9 एमबी मर्क्यूरियल डेटा फ़ाइल में प्रत्येक के बीच छोटे बदलावों के साथ इसके पांच संस्करणों को संग्रहीत करने में सक्षम था, और परे संस्करणों के बीच के मतभेदों को प्रभावी ढंग से परे का उपयोग करके तुलना करें । पाठ मोड।
एनबी: हालांकि मैं मर्क्यूरियल का उपयोग कर रहा हूं, मैंने अपने समाधान पर शोध करते हुए यह प्रश्न पढ़ा और समाधान के बारे में कुछ भी विशिष्ट नहीं है, Git या किसी अन्य VCS के लिए ठीक काम करना चाहिए।