
XLParser
Parser formulă Excel C# open source
Parsează, analizează și parcurge formulele Excel cu acuratețe ridicată utilizând arbori de parsare compacți prin bibliotecă C# open source.
Ce este XLParser?
XLParser este o bibliotecă C# de înaltă precizie pentru parsarea formulelor Microsoft Excel, construită pe cadrul de parsare Irony. Oferă un procent de succes de 99,9% pe peste un milion de formule din viața reală și este proiectată în mod specific pentru analiza și refactorizarea foilor de calcul. Gramatica sa compactă — mai puțin de 100 de tokenuri și reguli de producție — o face ușor de înțeles, întreținut sau portat în alte limbaje. XLParser servește ca implementare de referință a gramaticii Excel publicată în lucrarea “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” și suportă seturile de date de referință Enron și EUSES.
XLParser produce arbori de parsare compacți, permițând traversarea, analiza și transformarea eficientă a formulelor. Dezvoltatorii pot folosi clasa `ExcelFormulaParser` pentru a parsa formulele și a extrage numele funcțiilor, referințele și subexpresiile. Clasa `FormulaAnalyzer` susține în plus operații avansate precum `ParserReferences()` pentru a recupera toate referințele la celule, intervale și nume. Cu accentul său pe cercetare și instrumente, XLParser este ideal pentru asigurarea calității foilor de calcul, refactorizarea formularelor și instrumente educaționale. Poți încerca demonstrația online, instala prin NuGet sau construi din sursă pe [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
Începerea utilizării XLParser
XLParser este disponibil prin NuGet și poate fi instalat utilizând consola Package Manager sau interfața UI NuGet a Visual Studio. Cea mai simplă metodă este să rulați `Install-Package XLParser` în consola Package Manager. Alternativ, puteți descărca cea mai recentă versiune de pe [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), să construiți soluția și să referiți DLL-ul direct. Biblioteca este construită pe cadrul de parsare Irony și nu necesită dependențe suplimentare. Odată instalat, puteți începe să parsați formulele Excel utilizând clasa `ExcelFormulaParser`. Metoda sa `Parse()` acceptă un șir de formulă și returnează un arbore de parsare pentru analiză sau transformare ulterioară.
Instalează XLParser prin NuGet
Install-Package XLParserAnaliză a formulelor Excel cu compatibilitate ridicată
XLParser oferă o rată de analiză de succes de 99,9% pe peste un milion de formule Excel din viața reală, făcându-l unul dintre cei mai fiabili parsere de formule C# disponibili. A fost validat pe seturile de date de referință larg utilizate Enron și EUSES și este conceput să gestioneze formule complexe, imbricate și din viața reală — inclusiv expresii de matrice, referințe și funcții. Deși XLParser nu este excesiv de restrictiv (poate analiza unele formule pe care Excel le-ar respinge), această leniență este intenționată pentru cazuri de cercetare și analiză. Dezvoltatorii pot avea încredere în XLParser pentru a analiza majoritatea formulelor întâlnite în foile de calcul de producție, permițând fluxuri de lucru robuste de analiză a formulelor, refactorizare și asigurare a calității. Gramatica sa compactă asigură întreținere și portabilitate în cadrul diferitelor cadre de parsare.
Parsează o formulă Excel și inspectează arborele de parsare
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Extrage toate referințele din formulele Excel
XLParser include clasa `FormulaAnalyzer`, care oferă metode puternice pentru analizarea formulelor parsate. Una dintre caracteristicile sale cheie este `ParserReferences()`, care returnează toate referințele la celule, intervale, intervale denumite și referințele orizontale/verticale utilizate într-o formulă. Acest lucru este neprețuit pentru urmărirea dependențelor, analiza impactului și instrumentele de refactorizare. De exemplu, având o formulă precum `SUM(A1:B10, C12, NamedRange)`, `ParserReferences()` va returna o listă cu `A1:B10`, `C12` și `NamedRange`. Acest lucru permite dezvoltatorilor să creeze instrumente de auditare a foilor de calcul, să vizualizeze fluxul de date sau să detecteze dependențe circulare. Metoda funcționează perfect cu structura compactă a arborelui de parsare, asigurând extragerea rapidă și precisă chiar și pentru formule mari.
Extrage toate referințele utilizând 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());
}Parcurge și analizează arborii de parsare
Arborii de analiză ai XLParser sunt concepuţi pentru traversare şi analiză eficientă. Clasa `ExcelFormulaParser` oferă metode precum `AllNodes` pentru a itera prin fiecare nod din arbore, permiţând logica personalizată de analiză, transformare sau validare. Dezvoltatorii pot filtra nodurile după tip (de ex., funcţii, referinţe, operatori) şi pot efectua operaţii precum numărarea apariţiilor de funcţii, detectarea intervalelor denumite neutilizate sau identificarea erorilor potenţiale. Metoda `GetFunction()` simplifică extragerea numelor de funcţii din nodurile de apel de funcţie, în timp ce `Print()` permite depanare rapidă sau înregistrarea structurii oricărui nod. Aceste capabilităţi fac XLParser ideal pentru construirea de instrumente de calitate a foilor de calcul, asistenţi de refactorizare şi vizualizări educaţionale.
Parcurge toate nodurile și extrage numele funcțiilor
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()}");
}Depanează și vizualizează arborii de parsare
XLParser se integrează strâns cu instrumentul GrammarExplorer al Irony pentru depanare interactivă și vizualizarea arborilor. După ce construiești XLParser și soluția GrammarExplorer, poți încărca `XLParser.dll` ca gramatică și testa formulele în timp real. În timpul dezvoltării, debugger-ul Visual Studio permite inspectarea nodurilor arborelui de analiză prin fereastra de monitorizare utilizând `yournode.Print(),ac`. Această funcționalitate accelerează înțelegerea formulelor complexe, testarea cazurilor limită și validarea regulilor de gramatică. Structura compactă a arborelui asigură că chiar și formulele profund imbricate rămân lizibile și gestionabile. Indiferent dacă dezvolți un instrument de analiză a foilor de calcul sau cercetezi comportamentul formulelor Excel, suportul de depanare al XLParser simplifică dezvoltarea și rezolvarea problemelor.
Depanează un nod al arborelui de parsare în fereastra Watch din Visual Studio
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac