
XLParser
Åpen kildekode C# Excel-formelparser
Parse, analyser & traverser Excel-formler med høy nøyaktighet ved bruk av kompakte parse-trær via åpen kildekode C#-bibliotek.
Hva er XLParser?
XLParser er et høy-nøyaktig C#-bibliotek for parsing av Microsoft Excel-formler, bygget på Irony parser-rammeverket. Det leverer en suksessrate på 99,9 % på over en million virkelige formler og er spesielt designet for regneark-analyse og refaktorering. Den kompakte grammatikken—mindre enn 100 token og produksjonsregler—gjør den enkel å forstå, vedlikeholde eller portere til andre språk. XLParser fungerer som referanseimplementeringen av Excel-grammatikken publisert i artikkelen “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” og støtter Enron- og EUSES-referansedatasett.
XLParser produserer kompakte parse‑trær, som gjør effektiv traversering, analyse og transformasjon av formler mulig. Utviklere kan bruke `ExcelFormulaParser`‑klassen til å parse formler og hente ut funksjonsnavn, referanser og underuttrykk. `FormulaAnalyzer`‑klassen støtter videre avanserte operasjoner som `ParserReferences()` for å hente alle celle-, område- og navngitte referanser. Med sitt fokus på forskning og verktøy er XLParser ideell for kvalitetssikring av regneark, refaktorering av formler og utdanningsverktøy. Du kan prøve den nettbaserte demoen, installere via NuGet, eller bygge fra kildekode på [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
Kom i gang med XLParser
XLParser er tilgjengelig via NuGet og kan installeres ved hjelp av Package Manager Console eller Visual Studios NuGet‑grensesnitt. Den enkleste måten er å kjøre `Install-Package XLParser` i Package Manager Console. Alternativt kan du laste ned den siste utgivelsen fra [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), bygge løsningen og referere DLL‑filen direkte. Biblioteket er bygget på Irony parser‑rammeverket og krever ingen ekstra avhengigheter. Når det er installert, kan du begynne å parse Excel‑formler ved å bruke `ExcelFormulaParser`‑klassen. Dens `Parse()`‑metode godtar en formelstreng og returnerer et parse‑tre for videre analyse eller transformasjon.
Installer XLParser via NuGet
Install-Package XLParserHøy kompatibilitet Excel-formelparsing
XLParser leverer en 99,9 % vellykket parse‑rate på over en million virkelige Excel‑formler, noe som gjør den til en av de mest pålitelige C#‑formelparserne som finnes. Den ble validert på de mye brukte Enron‑ og EUSES‑benchmark‑datasett og er designet for å håndtere komplekse, nestede og virkelige formler—inkludert matriseuttrykk, referanser og funksjoner. Selv om XLParser ikke er overdrevent restriktiv (den kan parse noen formler som Excel ville avvise), er denne lempelsen bevisst for forsknings‑ og analysebruk. Utviklere kan stole på at XLParser parser det store flertallet av formler som finnes i produksjonsregneark, og muliggjør robust formelanalyse, refaktorering og kvalitetssikringsarbeidsflyter. Den kompakte grammatikken sikrer vedlikeholdbarhet og portabilitet på tvers av parser‑rammeverk.
Parse en Excel-formel og inspiser parse-treet
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Uttrekk alle referanser fra Excel-formler
XLParser inkluderer `FormulaAnalyzer`-klassen, som gir kraftige metoder for å analysere parse‑formler. En av dens viktigste funksjoner er `ParserReferences()`, som returnerer alle celle‑, område‑, navngitte område‑ og horisontale/vertikale referanser som brukes i en formel. Dette er uvurderlig for avhengighetssporing, påvirkningsanalyse og refaktorering verktøy. For eksempel, gitt en formel som `SUM(A1:B10, C12, NamedRange)`, vil `ParserReferences()` returnere en liste med `A1:B10`, `C12` og `NamedRange`. Dette gjør det mulig for utviklere å bygge regnearkrevisjonsverktøy, visualisere datastrøm eller oppdage sirkulære avhengigheter. Metoden fungerer sømløst med den kompakte parse‑tre‑strukturen, og sikrer rask og nøyaktig uttrekk selv for store formler.
Ekstraher alle referanser ved hjelp av 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());
}Traverser og analyser parse-trær
XLParser sine parse‑trær er designet for effektiv traversering og analyse. `ExcelFormulaParser`‑klassen tilbyr metoder som `AllNodes` for å iterere over hver node i treet, noe som muliggjør tilpasset analyse, transformasjon eller valideringslogikk. Utviklere kan filtrere noder etter type (f.eks. funksjoner, referanser, operatorer) og utføre operasjoner som å telle forekomster av funksjoner, oppdage ubrukte navngitte områder, eller identifisere potensielle feil. `GetFunction()`‑metoden forenkler uthenting av funksjonsnavn fra funksjons‑kall‑noder, mens `Print()` gir rask feilsøking eller logging av en nodes struktur. Disse funksjonene gjør XLParser ideell for å bygge verktøy for regnearkkvalitet, refaktorering‑assistenter og pedagogiske visualiseringer.
Gå gjennom alle noder og ekstraher funksjonsnavn
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()}");
}Feilsøk og visualiser parse-trær
XLParser integreres tett med Ironys GrammarExplorer‑verktøy for interaktiv feilsøking og trevisualisering. Etter å ha bygget XLParser og GrammarExplorer‑løsningen, kan du laste `XLParser.dll` som en grammatikk og teste formler i sanntid. Under utvikling støtter Visual Studios debugger inspeksjon av parse‑tre‑noder via overvåkingsvinduet ved bruk av `yournode.Print(),ac`. Denne funksjonen akselererer forståelsen av komplekse formler, testing av kanttilfeller og validering av grammatikkregler. Den kompakte trestrukturen sikrer at selv dypt nestede formler forblir lesbare og håndterbare. Enten du bygger et regneark‑analyseverktøy eller forsker på Excel‑formelatferd, XLParser‑feilsøkingstøtte forenkler utvikling og feilsøking.
Feilsøk en parse-tre-node i Visual Studio Watch-vinduet
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac