
XLParser
Açıq Mənbəli C# Excel Formula Parseri
Kompakt təhlil ağacları vasitəsilə Açıq Mənbəli C# Kitabxanası ilə Yüksək Dəqiqliklə Excel Formullarını Təhlil edin, Analiz edin və Gəzinin.
XLParser nədir?
XLParser, Microsoft Excel formullarını təhlil etmək üçün yüksək dəqiqlikli C# kitabxanasıdır və Irony parser çərçivəsi üzərində qurulmuşdur. O, bir milyondan çox real dünya formulunda 99,9% uğur nisbəti təmin edir və xüsusilə elektron cədvəl təhlili və refaktorinq üçün hazırlanmışdır. Onun kompakt qrammatikası — 100-dən az token və istehsal qaydaları — başa düşülməsi, saxlanması və ya digər dillərə köçürülməsi asanlaşdırır. XLParser, “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” məqaləsində dərc olunan Excel qrammatikasının istinad tətbiqi kimi xidmət edir və Enron və EUSES benchmark datasetlərini dəstəkləyir.
XLParser kompakt parse ağacları yaradır, bu da formulların səmərəli gəzintisi, təhlili və transformasiyasını təmin edir. İnkişafçılar `ExcelFormulaParser` sinifindən istifadə edərək formulları təhlil edə və funksiya adlarını, istinadları və alt ifadələri çıxara bilərlər. `FormulaAnalyzer` sinifi daha da irəli əməliyyatları, məsələn `ParserReferences()` funksiyasını dəstəkləyir və bütün hüceyrə, aralıq və adlandırılmış istinadları əldə etməyə imkan verir. Araşdırma və alətlərə yönəlmiş olması ilə XLParser elektron cədvəl keyfiyyət təminatı, formula refaktorinqi və tədris alətləri üçün ideal seçimdir. Onlayn demo sınaya, NuGet vasitəsilə quraşdıra və ya mənbə kodundan [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) ünvanında qura bilərsiniz.
XLParser ilə Başlamaq
XLParser NuGet vasitəsilə mövcuddur və Package Manager Console və ya Visual Studio-nun NuGet UI-si ilə quraşdırıla bilər. Ən sadə yol Package Manager Console-da `Install-Package XLParser` əmri işlətməkdir. Alternativ olaraq, ən son buraxılışı [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) saytından yükləyə, həlli (solution) yığa və DLL-i birbaşa istinad edə bilərsiniz. Kitabxana Irony parser çərçivəsi üzərində qurulub və əlavə asılılıqlar tələb etmir. Quraşdırıldıqdan sonra `ExcelFormulaParser` sinifindən istifadə edərək Excel formullarını pars etməyə başlaya bilərsiniz. Onun `Parse()` metodu formul sətirini qəbul edir və daha sonra analiz və ya transformasiya üçün parse ağacı qaytarır.
XLParser-i NuGet vasitəsilə quraşdırın
Install-Package XLParserYüksək Uyğunluqlu Excel Formul Parsinqi
XLParser, bir milyondan çox real dünya Excel formulları üzərində 99.9% uğurlu təhlil nisbəti təmin edir, bu da onu mövcud olan ən etibarlı C# formula təhlilçilərindən biri edir. O, geniş istifadə olunan Enron və EUSES benchmark məlumat dəstləri üzərində təsdiqlənmişdir və mürəkkəb, iç-içə və real dünya formulları—array ifadələri, istinadlar və funksiyalar daxil olmaqla—idarə etmək üçün dizayn edilmişdir. XLParser çox məhdudlaşdırıcı deyil (bəzı formulları Excel-in rədd edəcəyi halda təhlil edə bilər), bu yumşaqlıq tədqiqat və analiz istifadə halları üçün məqsədyönlüdür. İnkişafçılar XLParser-ə istehsal cədvəllərində rast gəlinən formulların böyük əksəriyyətini təhlil etmək üçün güvənə bilərlər, bu da güclü formula təhlili, refaktorinq və keyfiyyət təminatı iş axınlarını mümkün edir. Onun kompakt qrammatikası təmir və müxtəlif təhlil çərçivələri arasında daşıma qabiliyyətini təmin edir.
Excel Formulunu Pars edin və Parse Ağacını Yoxlayın
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Excel Formullarından Bütün İstinadları Çıxarın
XLParser `FormulaAnalyzer` sinifini ehtiva edir, bu sinif təhlil edilmiş formulları analiz etmək üçün güclü metodlar təqdim edir. Onun əsas xüsusiyyətlərindən biri `ParserReferences()`‑dır, bu metod formulda istifadə olunan bütün hüceyrə, aralıq, adlandırılmış aralıq və üfüqi/şaquli istinadları qaytarır. Bu, asılılıq izlənməsi, təsir analizi və refaktorinq alətləri üçün qiymətsizdir. Məsələn, `SUM(A1:B10, C12, NamedRange)` kimi bir formul verildikdə, `ParserReferences()` `A1:B10`, `C12` və `NamedRange` siyahısını qaytaracaq. Bu, inkişafçılara cədvəl audit alətləri yaratmağa, məlumat axınını vizuallaşdırmağa və ya dövri asılılıqları aşkar etməyə imkan verir. Metod kompakt parse ağacı strukturu ilə problemsiz işləyir, beləliklə böyük formullar üçün belə sürətli və dəqiq çıxarılma təmin edilir.
FormulaAnalyzer istifadə edərək bütün istinadları çıxarın
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());
}Parse Ağaclarını Gəz və Təhlil Et
XLParser-in parse ağacları səmərəli gəzinti və təhlil üçün dizayn edilmişdir. `ExcelFormulaParser` sinifi `AllNodes` kimi metodlar təqdim edir ki, bu da ağacdakı hər bir düyünü təkrarlamağa imkan verir və özəl təhlil, transformasiya və ya doğrulama məntiqini aktivləşdirir. Tərtibatçılar düyünləri növə (məsələn, funksiyalar, istinadlar, operatorlar) görə filtr edə və funksiyanın təkrarlanma sayını saymaq, istifadə olunmayan adlandırılmış diapazonları aşkar etmək və ya potensial səhvləri müəyyənləşdirmək kimi əməliyyatlar həyata keçirə bilərlər. `GetFunction()` metodu funksiya‑çağırış düyünlərindən funksiya adlarını çıxarmağı sadələşdirir, `Print()` isə hər hansı bir düyünün strukturunun sürətli debug və ya jurnalına imkan verir. Bu imkanlar XLParser-i elektron cədvəl keyfiyyət alətləri, refaktorinq köməkçiləri və tədris vizuallaşdırmaları yaratmaq üçün ideal edir.
Bütün düyünləri gəzib funksiya adlarını çıxarın
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()}");
}Parse Ağaclarını Sazla və Vizualizasiya Et
XLParser, Irony‑nin GrammarExplorer aləti ilə interaktiv debugging və ağac vizuallaşdırması üçün sıx inteqrasiya olunur. XLParser və GrammarExplorer həllini qurduqdan sonra, `XLParser.dll`‑i qramatika kimi yükləyə və formulları real vaxtda test edə bilərsiniz. İnkişaf zamanı, Visual Studio‑nun debugger‑i `yournode.Print(),ac`‑dan istifadə edərək watch pəncərəsi vasitəsilə təhlil ağacı düyünlərini yoxlamağa imkan verir. Bu xüsusiyyət mürəkkəb formulları anlamağı, kənar halları test etməyi və qramatika qaydalarını təsdiqləməyi sürətləndirir. Kompakt ağac strukturu dərinləşmiş formulların belə oxunaqlı və idarəolunan qalmasını təmin edir. İstər elektron cədvəl analiz aləti yaradırsınız, istərsə də Excel formulu davranışını araşdırırsınız, XLParser‑in debugging dəstəyi inkişafı və problemlərin həllini sadələşdirir.
Visual Studio Watch pəncərəsində Parse Tree düyününü debug edin
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac