1. Produkter
  2.   Regneark
  3.   .NET
  4.   XLParser

XLParser

 
 

Open Source C# Excel-formelparser

Parse, analyser og gennemgå Excel-formler med høj nøjagtighed ved brug af kompakte parse-træer via Open Source C#-bibliotek.

Hvad er XLParser?

XLParser er et højpræcist C#-bibliotek til at parse Microsoft Excel-formler, bygget på Irony parser-rammen. Det leverer en succesrate på 99,9 % på over en million virkelige formler og er specifikt designet til regnearksanalyse og refaktorering. Dets kompakte grammatik—mindre end 100 tokens og produktionsregler—gør den nem at forstå, vedligeholde eller portere til andre sprog. XLParser fungerer som referenceimplementeringen af Excel-grammatikken, der er offentliggjort i papiret “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets”, og understøtter Enron- og EUSES-benchmark-datasættene.

XLParser producerer kompakte parse‑træer, hvilket muliggør effektiv gennemløb, analyse og transformation af formler. Udviklere kan bruge `ExcelFormulaParser`‑klassen til at parse formler og udtrække funktionsnavne, referencer og underudtryk. `FormulaAnalyzer`‑klassen understøtter desuden avancerede operationer som `ParserReferences()` for at hente alle celle‑, område‑ og navngivne referencer. Med sit fokus på forskning og værktøjer er XLParser ideel til kvalitetssikring af regneark, refaktorering af formler og undervisningsværktøjer. Du kan prøve den online‑demo, installere via NuGet eller bygge fra kildekode på [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).

Previous Next

Kom i gang med XLParser

XLParser er tilgængelig via NuGet og kan installeres ved hjælp af Package Manager Console eller Visual Studios NuGet UI. Den enkleste måde er at køre `Install-Package XLParser` i Package Manager Console. Alternativt kan du downloade den seneste udgivelse fra [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), bygge løsningen og referere DLL'en direkte. Biblioteket er bygget på Irony parser-rammen og kræver ingen yderligere afhængigheder. Når det er installeret, kan du begynde at parse Excel-formler ved hjælp af `ExcelFormulaParser`-klassen. Dens `Parse()`-metode accepterer en formelstreng og returnerer et parse-træ til videre analyse eller transformation.

Installer XLParser via NuGet

Install-Package XLParser

Høj kompatibilitet ved parsing af Excel-formler

XLParser leverer en 99,9% succesfuld parse-rate på over en million virkelige Excel-formler, hvilket gør den til en af de mest pålidelige C#-formelparsers tilgængelige. Den blev valideret på de bredt anvendte Enron- og EUSES benchmark-datasæt og er designet til at håndtere komplekse, indlejrede og virkelige formler—herunder matrixudtryk, referencer og funktioner. Selvom XLParser ikke er overdrevent restriktiv (den kan parse nogle formler, som Excel ville afvise), er denne lempelse bevidst for forsknings- og analysebrugssager. Udviklere kan stole på, at XLParser parser langt de fleste formler, der findes i produktionsregneark, hvilket muliggør robust formelanalyse, refaktorering og kvalitetssikringsarbejdsgange. Dens kompakte grammatik sikrer vedligeholdelse og portabilitet på tværs af parser-rammer.

Parse en Excel-formel og inspicer parse-træet

using XLParser;

var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());

Udtræk alle referencer fra Excel-formler

XLParser inkluderer `FormulaAnalyzer`-klassen, som giver kraftfulde metoder til at analysere parse‑formler. En af dens nøglefunktioner er `ParserReferences()`, som returnerer alle celle-, område-, navngivne område- og vandrette/lodrette referencer, der bruges i en formel. Dette er uvurderligt til afhængighedssporing, påvirkningsanalyse og refaktorering af værktøjer. For eksempel, givet en formel som `SUM(A1:B10, C12, NamedRange)`, vil `ParserReferences()` returnere en liste over `A1:B10`, `C12` og `NamedRange`. Dette gør det muligt for udviklere at bygge regnearks‑auditværktøjer, visualisere dataflow eller opdage cirkulære afhængigheder. Metoden fungerer problemfrit med den kompakte parse‑træstruktur og sikrer hurtig og præcis udtrækning selv for store formler.

Udtræk alle referencer ved hjælp af 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());
}

Gå igennem og analyser parse-træer

XLParser's parse-træer er designet til effektiv gennemløb og analyse. `ExcelFormulaParser`-klassen leverer metoder som `AllNodes` til at iterere over hver node i træet, hvilket muliggør tilpasset analyse, transformation eller valideringslogik. Udviklere kan filtrere noder efter type (f.eks. funktioner, referencer, operatorer) og udføre operationer såsom at tælle forekomster af funktioner, opdage ubrugte navngivne områder eller identificere potentielle fejl. `GetFunction()`-metoden forenkler udtræk af funktionsnavne fra funktionskaldsnoder, mens `Print()` muliggør hurtig fejlsøgning eller logning af en nodes struktur. Disse funktioner gør XLParser ideel til at bygge værktøjer til regnearks kvalitet, refaktoriseringsassistenter og pædagogiske visualiseringer.

Traversér alle noder og udtræk funktionsnavne

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()}");
}

Fejlsøg og visualiser parse-træer

XLParser integrerer tæt med Ironys GrammarExplorer‑værktøj til interaktiv fejlfinding og trævisualisering. Efter at have bygget XLParser og GrammarExplorer‑løsningen, kan du indlæse `XLParser.dll` som en grammatik og teste formler i realtid. Under udviklingen understøtter Visual Studios debugger inspektion af parse‑trænoder via overvågningsvinduet ved brug af `yournode.Print(),ac`. Denne funktion accelererer forståelsen af komplekse formler, test af kanttilfælde og validering af grammatikregler. Den kompakte træstruktur sikrer, at selv dybt indlejrede formler forbliver læselige og håndterbare. Uanset om du bygger et regnearksanalyseværktøj eller forsker i Excel‑formeladfærd, forenkler XLParser's fejlfinding understøttelse udvikling og fejlsøgning.

Fejlfind en parse-trænode i Visual Studio Watch-vinduet

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