
XLParser
ओपन सोर्स C# Excel फ़ॉर्मूला पार्सर
ओपन सोर्स C# लाइब्रेरी के माध्यम से कॉम्पैक्ट पार्स ट्रीज़ का उपयोग करके उच्च सटीकता के साथ Excel फ़ॉर्मूले को पार्स, विश्लेषण और ट्रैवर्स करें।
XLParser क्या है?
XLParser एक उच्च-सटीकता वाला C# लाइब्रेरी है जो Microsoft Excel फ़ॉर्मूलों को पार्स करने के लिए है, और यह Irony पार्सर फ्रेमवर्क पर निर्मित है। यह एक मिलियन से अधिक वास्तविक फ़ॉर्मूलों पर 99.9% सफलता दर प्रदान करता है और विशेष रूप से स्प्रेडशीट विश्लेषण और रीफ़ैक्टोरिंग के लिए डिज़ाइन किया गया है। इसका संक्षिप्त व्याकरण—100 से कम टोकन और प्रोडक्शन नियम—इसे समझने, बनाए रखने या अन्य भाषाओं में पोर्ट करने में आसान बनाता है। XLParser Excel व्याकरण का संदर्भ कार्यान्वयन है जो पेपर “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” में प्रकाशित हुआ है और यह Enron और EUSES बेंचमार्क डेटासेट्स को सपोर्ट करता है।
XLParser संक्षिप्त पार्स ट्री बनाता है, जिससे सूत्रों का कुशल ट्रैवर्सल, विश्लेषण और रूपांतरण संभव होता है। डेवलपर्स `ExcelFormulaParser` क्लास का उपयोग करके सूत्रों को पार्स कर सकते हैं और फ़ंक्शन नाम, रेफ़रेंसेज़ और सबएक्सप्रेशन निकाल सकते हैं। `FormulaAnalyzer` क्लास आगे उन्नत ऑपरेशन्स जैसे `ParserReferences()` का समर्थन करता है ताकि सभी सेल, रेंज और नामित रेफ़रेंसेज़ प्राप्त किए जा सकें। अनुसंधान और टूलिंग पर इसके फोकस के साथ, XLParser स्प्रेडशीट क्वालिटी एश्योरेंस, फ़ॉर्मूला रीफ़ैक्टरिंग, और शैक्षिक टूल्स के लिए आदर्श है। आप ऑनलाइन डेमो आज़मा सकते हैं, NuGet के माध्यम से इंस्टॉल कर सकते हैं, या स्रोत कोड से बना सकते हैं [XLParser GitHub](https://github.com/spreadsheetlab/XLParser)।
XLParser के साथ शुरुआत
XLParser NuGet के माध्यम से उपलब्ध है और इसे पैकेज मैनेजर कंसोल या Visual Studio के NuGet UI का उपयोग करके स्थापित किया जा सकता है। सबसे सरल तरीका है पैकेज मैनेजर कंसोल में `Install-Package XLParser` चलाना। वैकल्पिक रूप से, आप नवीनतम रिलीज़ को [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) से डाउनलोड कर सकते हैं, समाधान को बना सकते हैं, और DLL को सीधे संदर्भित कर सकते हैं। यह लाइब्रेरी Irony पार्सर फ्रेमवर्क पर निर्मित है और इसे अतिरिक्त निर्भरताओं की आवश्यकता नहीं है। स्थापित होने के बाद, आप `ExcelFormulaParser` क्लास का उपयोग करके Excel फ़ॉर्मूले पार्स करना शुरू कर सकते हैं। इसका `Parse()` मेथड एक फ़ॉर्मूला स्ट्रिंग स्वीकार करता है और आगे के विश्लेषण या रूपांतरण के लिए एक पार्स ट्री लौटाता है।
NuGet के माध्यम से XLParser स्थापित करें
Install-Package XLParserउच्च संगतता वाला एक्सेल फ़ॉर्मूला पार्सिंग
XLParser एक मिलियन से अधिक वास्तविक-विश्व Excel फ़ॉर्मूलों पर 99.9% सफल पार्स दर प्रदान करता है, जिससे यह उपलब्ध सबसे विश्वसनीय C# फ़ॉर्मूला पार्सरों में से एक बन जाता है। इसे व्यापक रूप से उपयोग किए जाने वाले Enron और EUSES बेंचमार्क डेटासेट्स पर मान्य किया गया था और यह जटिल, नेस्टेड और वास्तविक-विश्व फ़ॉर्मूलों—जिसमें एरे अभिव्यक्तियाँ, रेफ़रेंसेज़, और फ़ंक्शन शामिल हैं—को संभालने के लिए डिज़ाइन किया गया है। जबकि XLParser अत्यधिक प्रतिबंधात्मक नहीं है (यह कुछ ऐसे फ़ॉर्मूले भी पार्स कर सकता है जिन्हें Excel अस्वीकार करेगा), यह लचीलापन शोध और विश्लेषण उपयोग मामलों के लिए इरादतन है। डेवलपर्स XLParser पर भरोसा कर सकते हैं कि यह उत्पादन स्प्रेडशीट्स में मिलने वाले अधिकांश फ़ॉर्मूलों को पार्स करेगा, जिससे मजबूत फ़ॉर्मूला विश्लेषण, रीफ़ैक्टरिंग, और गुणवत्ता आश्वासन कार्यप्रवाह सक्षम होते हैं। इसका कॉम्पैक्ट ग्रामर रखरखाव और विभिन्न पार्सर फ्रेमवर्क्स में पोर्टेबिलिटी सुनिश्चित करता है।
एक एक्सेल फ़ॉर्मूला को पार्स करें और पार्स ट्री की जांच करें
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());एक्सेल फ़ॉर्मूलों से सभी संदर्भ निकालें
XLParser में `FormulaAnalyzer` क्लास शामिल है, जो पार्स किए गए फ़ॉर्मूलों का विश्लेषण करने के लिए शक्तिशाली मेथड्स प्रदान करती है। इसकी प्रमुख विशेषताओं में से एक `ParserReferences()` है, जो फ़ॉर्मूले में उपयोग किए गए सभी सेल, रेंज, नामित रेंज, और क्षैतिज/ऊर्ध्वाधर रेफ़रेंसेज़ को लौटाता है। यह निर्भरता ट्रैकिंग, प्रभाव विश्लेषण, और रीफ़ैक्टरिंग टूल्स के लिए अत्यंत मूल्यवान है। उदाहरण के लिए, यदि फ़ॉर्मूला `SUM(A1:B10, C12, NamedRange)` दिया जाए, तो `ParserReferences()` `A1:B10`, `C12`, और `NamedRange` की सूची लौटाएगा। यह डेवलपर्स को स्प्रेडशीट ऑडिटिंग टूल्स बनाने, डेटा प्रवाह को विज़ुअलाइज़ करने, या सर्कुलर निर्भरताओं का पता लगाने में सक्षम बनाता है। यह मेथड कॉम्पैक्ट पार्स ट्री संरचना के साथ सहजता से काम करता है, जिससे बड़े फ़ॉर्मूलों के लिए भी तेज़ और सटीक निष्कर्षण सुनिश्चित होता है।
FormulaAnalyzer का उपयोग करके सभी संदर्भ निकालें
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12, NamedRange)");
var analyzer = new FormulaAnalyzer(tree);
var references = analyzer.ParserReferences();
foreach (var refNode in references)
{
Console.WriteLine(refNode.Print());
}पार्स ट्रीज़ को ट्रैवर्स और विश्लेषण करें
XLParser के पार्स ट्रीज़ को कुशल ट्रैवर्सल और विश्लेषण के लिए डिज़ाइन किया गया है। `ExcelFormulaParser` क्लास `AllNodes` जैसे मेथड्स प्रदान करती है ताकि ट्री में प्रत्येक नोड पर इटररेट किया जा सके, जिससे कस्टम विश्लेषण, ट्रांसफ़ॉर्मेशन या वैलिडेशन लॉजिक सक्षम हो। डेवलपर्स नोड्स को प्रकार (जैसे, फ़ंक्शन, रेफ़रेंसेज़, ऑपरेटर्स) के आधार पर फ़िल्टर कर सकते हैं और फ़ंक्शन की आवृत्तियों की गिनती, अनउपयोगी नेम्ड रेंजेज़ का पता लगाना, या संभावित त्रुटियों की पहचान जैसी ऑपरेशन्स कर सकते हैं। `GetFunction()` मेथड फ़ंक्शन‑कॉल नोड्स से फ़ंक्शन नाम निकालना सरल बनाता है, जबकि `Print()` किसी भी नोड की संरचना को जल्दी डिबग या लॉग करने की अनुमति देता है। ये क्षमताएँ XLParser को स्प्रेडशीट क्वालिटी टूल्स, रीफ़ैक्टरिंग असिस्टेंट्स, और शैक्षिक विज़ुअलाइज़ेशन बनाने के लिए आदर्श बनाती हैं।
सभी नोड्स को पार करें और फ़ंक्शन नाम निकालें
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1, A2) + AVERAGE(B1:B5)");
var functions = tree.AllNodes.Where(n => n.IsFunction());
foreach (var func in functions)
{
Console.WriteLine($"Function: {func.GetFunction()}");
}पार्स ट्रीज़ को डिबग और विज़ुअलाइज़ करें
XLParser, Irony के GrammarExplorer टूल के साथ इंटरैक्टिव डिबगिंग और ट्री विज़ुअलाइज़ेशन के लिए घनिष्ठ रूप से एकीकृत होता है। XLParser और GrammarExplorer समाधान को बनाने के बाद, आप `XLParser.dll` को एक ग्रैमर के रूप में लोड कर सकते हैं और वास्तविक समय में फ़ॉर्मूले का परीक्षण कर सकते हैं। विकास के दौरान, Visual Studio का डिबगर `yournode.Print(),ac` का उपयोग करके वॉच विंडो के माध्यम से पार्स ट्री नोड्स का निरीक्षण समर्थन करता है। यह सुविधा जटिल फ़ॉर्मूलों को समझने, एज केसों का परीक्षण करने, और ग्रैमर नियमों को मान्य करने की प्रक्रिया को तेज़ करती है। संक्षिप्त ट्री संरचना यह सुनिश्चित करती है कि गहराई से नेस्टेड फ़ॉर्मूले भी पठनीय और प्रबंधनीय रहें। चाहे आप स्प्रेडशीट विश्लेषण टूल बना रहे हों या Excel फ़ॉर्मूला व्यवहार का अनुसंधान कर रहे हों, XLParser का डिबगिंग समर्थन विकास और समस्या निवारण को सरल बनाता है।
Visual Studio Watch विंडो में एक पार्स ट्री नोड को डिबग करें
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac