C# में Excel बनाएं बिना Microsoft Office के: जादू का राज

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: "बिना Office के" क्यों और अंदर क्या है?

\n\n

अगर आपने कभी C# में Excel फ़ाइल बनाने का तरीका खोजा है, तो आपने Stack Overflow पर एक मशहूर सवाल ज़रूर देखा होगा जिसे हज़ारों बार देखा गया है। और उसमें सबसे बड़ी परेशानी ये वाक्य है — "without installing Microsoft Office"। क्यों? क्योंकि COM ऑब्जेक्ट्स को साथ घसीटना, सर्वर पर Excel के वर्शन पर निर्भर रहना, और "Retrieving the COM class factory for component... failed" जैसी गलतियाँ पकड़ना — ये एक डेवलपर के लिए नर्क का रास्ता है।

\n\n

लेकिन फिर .XLSX और .XLS फ़ाइलें कैसे बनाएँ? इसका जवाब इस फ़ॉर्मेट की संरचना में छिपा है। आधुनिक Excel (2007 से शुरू) असल में एक साधारण ZIP आर्काइव है जिसके अंदर XML फ़ाइलें होती हैं। हाँ, आपने सही सुना: किसी भी .xlsx फ़ाइल को लें, उसका नाम बदलकर .zip करें, खोलें — और आपको xl, _rels, docProps फ़ोल्डर और ढेर सारे XML दस्तावेज़ दिखेंगे। हर शीट, हर सेल, हर स्टाइल — ये सब एक सुव्यवस्थित XML है। और पुराना .XLS फ़ॉर्मेट बाइनरी (BIFF) है, लेकिन उसके लिए भी open-source समाधान मौजूद हैं।

\n\n

इस लेख में हम इस प्रक्रिया के अंदरूनी राज़ को समझेंगे: लोकप्रिय लाइब्रेरीज़ को जानेंगे, लाइव कोड लिखेंगे, और समझेंगे कि जब हम Save() कहते हैं तो असल में क्या होता है। चलिए शुरू करते हैं!

\n\n

1. C# में बिना Office के Excel के लिए तीन मुख्य लाइब्रेरीज़

\n\n

आज के समय में तीन मुख्य विकल्प हैं जो "बॉक्स से बाहर" यह समस्या हल करते हैं। ये सभी सीधे फ़ॉर्मेट के साथ काम करते हैं, बिना इंस्टॉल किए Office के।

\n\n

1.1. EPPlus (लाइसेंस: LGPL / Proprietary)

\n

.NET के लिए सबसे लोकप्रिय लाइब्रेरी। शुरू में मुफ़्त थी, लेकिन वर्शन 5.0 से व्यावसायिक उपयोग के लिए पेड लाइसेंस पर आ गई। हालांकि, शैक्षिक उद्देश्यों और छोटे प्रोजेक्ट्स के लिए अब भी इस्तेमाल की जा सकती है (वर्शन 4.5.3.3 आखिरी मुफ़्त है)। EPPlus केवल .XLSX के साथ काम करती है।

\n\n

अंदर कैसे काम करती है: EPPlus System.IO.Packaging (वही ZIP आर्काइव) का उपयोग करती है और Office Open XML (OOXML) स्पेसिफिकेशन के अनुसार XML फ़ाइलें जनरेट करती है। यह स्टाइल, फ़ॉर्मूले, चार्ट — वह सब बना सकती है जो आप Excel में देखते हैं।

\n\n

1.2. ClosedXML

\n

मुफ़्त, open-source (MIT लाइसेंस)। यह भी केवल .XLSX के साथ काम करती है। इसका API बहुत ही दोस्ताना है और Excel के साथ काम करने जैसा लगता है: आप Workbook, Worksheet, Cell के साथ काम करते हैं। अंदर से यह भी Open XML ही है, लेकिन ClosedXML XML संरचना बनाने का सारा काम अपने ऊपर ले लेती है।

\n\n

1.3. NPOI

\n

मशहूर Java लाइब्रेरी Apache POI का .NET पोर्ट। सबसे बड़ा फ़ायदा — यह .XLSX (XSSFWorkbook के ज़रिए) और पुराने .XLS (HSSFWorkbook के ज़रिए) दोनों के साथ काम कर सकती है। मुफ़्त, open-source (Apache 2.0)। अगर आपको पुराने फ़ॉर्मेट्स का सपोर्ट चाहिए तो यह आदर्श है।

\n\n

.XLS के अंदर: NPOI सीधे BIFF8 फ़ॉर्मेट में बाइनरी डेटा लिखती है। यह XML से ज़्यादा जटिल है, लेकिन इसमें कंप्रेशन की ज़रूरत नहीं होती।

\n\n

2. कोड लिखें: तीन तरीकों से Excel फ़ाइल बनाएँ

\n\n

चलिए हेडिंग और डेटा के साथ एक सरल रिपोर्ट बनाते हैं। नीचे हर लाइब्रेरी के लिए उदाहरण दिए गए हैं।

\n\n

2.1. ClosedXML के साथ उदाहरण (सबसे आसान)

\n\n
using ClosedXML.Excel;\n\n// वर्कबुक बनाएँ\nusing (var workbook = new XLWorkbook())\n{\n    // शीट जोड़ें\n    var worksheet = workbook.Worksheets.Add("रिपोर्ट");\n\n    // हेडिंग\n    worksheet.Cell(1, 1).Value = "नाम";\n    worksheet.Cell(1, 2).Value = "उम्र";\n    worksheet.Cell(1, 3).Value = "शहर";\n\n    // डेटा\n    worksheet.Cell(2, 1).Value = "अन्ना";\n    worksheet.Cell(2, 2).Value = 28;\n    worksheet.Cell(2, 3).Value = "मुंबई";\n\n    worksheet.Cell(3, 1).Value = "राज";\n    worksheet.Cell(3, 2).Value = 35;\n    worksheet.Cell(3, 3).Value = "दिल्ली";\n\n    // हेडिंग के लिए स्टाइल\n    var headerRange = worksheet.Range("A1:C1");\n    headerRange.Style.Font.Bold = true;\n    headerRange.Style.Fill.BackgroundColor = XLColor.LightGray;\n\n    // कॉलम की ऑटो-चौड़ाई\n    worksheet.Columns().AdjustToC                

ब्लॉग

पुस्तक अनुशंसाएँ