मैं पिछले सप्ताह में ईपीप्लस, क्लॉस्डएक्सएमएल और स्प्रेडशीटलाइट का मूल्यांकन कर रहा हूं। सभी तीन वास्तव में महान पुस्तकालय हैं जो बेहद शांत ओपनएक्सएमएल के साथ काम करते हैं। मैंने निम्नलिखित कारणों से ईपीप्लस के साथ जाने का फैसला किया है:
प्रारंभ में, मैं क्लॉस्डएक्सएमएल के साथ जा रहा था। इसमें बहुत अच्छा दस्तावेज है और ऑब्जेक्ट स्ट्रक्चर ने मुझे बहुत समझदारी दी है। मेरे पास कुछ चार्टिंग आवश्यकताएं हैं और अभी के रूप में, ClosedXML में कोई चार्टिंग फ़ंक्शन नहीं है।
फिर मैंने स्प्रेडशीटलाइट पर ठोकर खाई, जिसमें अच्छे दस्तावेज़ भी हैं और कुछ चार्टिंग का समर्थन करते हैं। मुझे लेखक के दृष्टिकोण और उसके उत्पाद के प्रति उनकी वचनबद्धता भी पसंद है। हालांकि, यह परियोजना ओपनएक्सएमएल 2.0 एसडीके के शीर्ष पर बनाई गई है, 2.5 नहीं, जो मेरे लिए एक सौदा ब्रेकर है क्योंकि मैं ओपनएक्सएमएल के साथ सीधे काम करने की लचीलापन चाहता हूं, इस स्थिति में लाइब्रेरी मेरी ज़रूरतों को पूरा नहीं करती है। मेरा प्रोजेक्ट एक्सेल 2013 को लक्षित कर रहा है, इसलिए मैं नवीनतम एसडीके के साथ काम करना चाहता हूं।
अंत में, मैं ईपीप्लस में आया, जिसमें ठीक दस्तावेज है और चार्टिंग का समर्थन करता है। यह दो अन्य लोगों की तुलना में कहीं अधिक बार डाउनलोड किया गया है जो मुझे यह जानने में कुछ सुरक्षा देता है कि अन्य इसका उपयोग कर रहे हैं और समुदाय परियोजना के आसपास सक्रिय प्रतीत होता है। वे वर्तमान में संस्करण 4 के बीटा 2 पर भी हैं जो दूसरों के कहने से वादा करता है। मुझे यह भी मिल रहा है कि ईपीप्लस के पास अच्छा प्रदर्शन है (नहीं कि दूसरों को जरूरी है) और आगामी संस्करण 4 उस पर सुधार कर रहा है।
अद्यतन
एक और बहुत उपयोगी सुविधा मैंने पाया EPPlus के साथ शामिल है कि यह कैसे कार्यपत्रक के विभिन्न भागों के लिए एक्सएमएल को उजागर करता है। यदि ऐसी सुविधा है जो ईपीप्लस द्वारा समर्थित नहीं है, तो आप वांछित आउटपुट प्राप्त करने के लिए अभी भी एक्सएमएल (कुछ मामलों में) संपादित कर सकते हैं। उदाहरण के लिए, यदि आपके पास पिवोट चार्ट है और आप बहु-स्तर के लेबल सक्षम करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:
private void EnableMultiLevelLabels(ExcelChart chart)
{
var element = chart.ChartXml.GetElementsByTagName("c:catAx")[0];
if (element == null)
return;
var multiLevelLabelNode = element.AppendChildElementNode("c:noMultiLvlLbl");
if (multiLevelLabelNode != null)
multiLevelLabelNode.AppendNodeAttribute("val", "0");
}
मुझे पता है कि यह एक पुराना सवाल है, लेकिन क्या कोई कारण नहीं है कि आप क्यों नहीं थे ClosedXML से खुश? क्या यह एक राजनीतिक चीज है जहां इसे एक प्रमुख संस्करण संख्या की आवश्यकता है, या क्या आपको लगता है कि क्लॉस्डएक्सएमएल पर्याप्त स्थिर नहीं था? – jamiebarrow
क्लॉस्डएक्सएमएल के साथ मेरी समस्या यह है कि यह कई मामलों में काम नहीं करता है। सरणी सूत्रों, तालिका सूत्रों, SUMIF के साथ कक्षों का संदर्भ देना कुछ चीजें हैं जो पुस्तकालय को पूरी तरह से तोड़ देती हैं।ईपीप्लस के साथ – Vedran