XLParser

 
 

ওপেন সোর্স C# Excel ফর্মুলা পার্সার

সংক্ষিপ্ত পার্স ট্রি ব্যবহার করে ওপেন সোর্স C# লাইব্রেরির মাধ্যমে উচ্চ নির্ভুলতার সঙ্গে Excel ফর্মুলা পার্স, বিশ্লেষণ এবং ট্রাভার্স করুন।

XLParser কী?

XLParser হল একটি উচ্চ-নির্ভুলতা সম্পন্ন C# লাইব্রেরি, যা Microsoft Excel ফর্মুলা পার্স করার জন্য Irony পার্সার ফ্রেমওয়ার্কের উপর ভিত্তি করে তৈরি। এটি এক মিলিয়নেরও বেশি বাস্তব জগতের ফর্মুলায় 99.9% সাফল্যের হার প্রদান করে এবং বিশেষভাবে স্প্রেডশিট বিশ্লেষণ ও রিফ্যাক্টরিংয়ের জন্য ডিজাইন করা হয়েছে। এর সংক্ষিপ্ত ব্যাকরণ—১০০টির কম টোকেন এবং প্রোডাকশন রুল—এটি বোঝা, রক্ষণাবেক্ষণ করা বা অন্য ভাষায় পোর্ট করা সহজ করে। XLParser “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” শীর্ষক পেপারে প্রকাশিত Excel ব্যাকরণের রেফারেন্স ইমপ্লিমেন্টেশন হিসেবে কাজ করে এবং Enron ও EUSES বেঞ্চমার্ক ডেটাসেটগুলোকে সমর্থন করে।

XLParser সংক্ষিপ্ত পার্স ট্রি তৈরি করে, যা ফর্মুলার কার্যকর ট্র্যাভার্সাল, বিশ্লেষণ এবং রূপান্তরকে সক্ষম করে। ডেভেলপাররা `ExcelFormulaParser` ক্লাস ব্যবহার করে ফর্মুলা পার্স করতে এবং ফাংশনের নাম, রেফারেন্স এবং সাবএক্সপ্রেশন বের করতে পারেন। `FormulaAnalyzer` ক্লাস আরও উন্নত অপারেশন সমর্থন করে, যেমন `ParserReferences()` ব্যবহার করে সব সেল, রেঞ্জ এবং নামকৃত রেফারেন্স পুনরুদ্ধার করা যায়। গবেষণা ও টুলিং-এ এর ফোকাসের সঙ্গে, XLParser স্প্রেডশিট গুণগত নিশ্চিতকরণ, ফর্মুলা রিফ্যাক্টরিং এবং শিক্ষামূলক টুলের জন্য আদর্শ। আপনি অনলাইন ডেমো চেষ্টা করতে পারেন, NuGet এর মাধ্যমে ইনস্টল করতে পারেন, অথবা [XLParser গিটহাব](https://github.com/spreadsheetlab/XLParser) থেকে সোর্সে বিল্ড করতে পারেন।

Previous Next

XLParser দিয়ে শুরু করা

XLParser NuGet এর মাধ্যমে উপলব্ধ এবং প্যাকেজ ম্যানেজার কনসোল অথবা Visual Studio এর NuGet UI ব্যবহার করে ইনস্টল করা যায়। সবচেয়ে সহজ উপায় হল প্যাকেজ ম্যানেজার কনসোলে `Install-Package XLParser` চালানো। বিকল্পভাবে, আপনি সর্বশেষ রিলিজটি [XLParser গিটহাব](https://github.com/spreadsheetlab/XLParser) থেকে ডাউনলোড করে, সলিউশনটি বিল্ড করে, এবং সরাসরি DLL রেফারেন্স করতে পারেন। লাইব্রেরিটি Irony পার্সার ফ্রেমওয়ার্কের উপর ভিত্তি করে তৈরি এবং অতিরিক্ত কোনো নির্ভরতা প্রয়োজন হয় না। ইনস্টল করার পর, আপনি `ExcelFormulaParser` ক্লাস ব্যবহার করে Excel ফর্মুলা পার্স করা শুরু করতে পারেন। এর `Parse()` মেথড একটি ফর্মুলা স্ট্রিং গ্রহণ করে এবং আরও বিশ্লেষণ বা রূপান্তরের জন্য একটি পার্স ট্রি রিটার্ন করে।

NuGet এর মাধ্যমে XLParser ইনস্টল করুন

Install-Package XLParser

উচ্চ সামঞ্জস্যপূর্ণ এক্সেল ফর্মুলা পার্সিং

XLParser এক মিলিয়নেরও বেশি বাস্তব-জগতের এক্সেল ফর্মুলার উপর 99.9% সফল পার্স রেট প্রদান করে, যা এটিকে উপলব্ধ সবচেয়ে নির্ভরযোগ্য C# ফর্মুলা পার্সারগুলোর একটি করে তোলে। এটি ব্যাপকভাবে ব্যবহৃত Enron এবং EUSES বেঞ্চমার্ক ডেটাসেটগুলিতে বৈধতা যাচাই করা হয়েছে এবং জটিল, নেস্টেড এবং বাস্তব-জগতের ফর্মুলা—যার মধ্যে অ্যারে এক্সপ্রেশন, রেফারেন্স এবং ফাংশন অন্তর্ভুক্ত—হ্যান্ডেল করার জন্য ডিজাইন করা হয়েছে। যদিও XLParser অতিরিক্ত সীমাবদ্ধ নয় (এটি কিছু ফর্মুলা পার্স করতে পারে যা এক্সেল প্রত্যাখ্যান করবে), এই নমনীয়তা গবেষণা ও বিশ্লেষণ ব্যবহারের জন্য ইচ্ছাকৃত। ডেভেলপাররা 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 ওয়াচ উইন্ডোতে পার্স ট্রি নোড ডিবাগ করুন

var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac
 বাংলা