
XLParser
Atviro kodo C# Excel formulių analizatorius
Analizuokite, nagrinėkite ir naršykite Excel formules su dideliu tikslumu, naudodami kompaktiškus analizavimo medžius per atviro kodo C# biblioteką.
Kas yra XLParser?
XLParser yra aukštos tikslumo C# biblioteka, skirta Microsoft Excel formulėms analizuoti, sukurta naudojant Irony analizatoriaus sistemą. Ji pasiekia 99,9 % sėkmės rodiklį daugiau nei milijono realių formulų atveju ir yra specialiai sukurta skaičiuoklių analizės ir refaktorizavimo tikslams. Jos kompaktiška gramatika – mažiau nei 100 tokenų ir gamybos taisyklių – leidžia lengvai ją suprasti, prižiūrėti arba perkelti į kitas kalbas. XLParser veikia kaip nuorodinis įgyvendinimas Excel gramatikos, paskelbtos straipsnyje „A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets“, ir palaiko Enron ir EUSES benchmark duomenų rinkinius.
XLParser sukuria kompaktiškas analizės medžius, leidžiančius efektyviai naršyti, analizuoti ir transformuoti formules. Kūrėjai gali naudoti `ExcelFormulaParser` klasę, kad išanalizuotų formules ir išgautų funkcijų pavadinimus, nuorodas ir subraiškas. `FormulaAnalyzer` klasė papildomai palaiko pažangias operacijas, tokias kaip `ParserReferences()`, kad gautų visas ląstelių, diapazonų ir pavadintų nuorodų. Dėl savo dėmesio tyrimams ir įrankiams, XLParser yra idealus skaičiuoklių kokybės užtikrinimui, formulių refaktorizavimui ir edukaciniams įrankiams. Galite išbandyti internetinę demonstraciją, įdiegti per NuGet arba sukompiliuoti iš šaltinio [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
Pradžia su XLParser
XLParser yra prieinamas per NuGet ir gali būti įdiegtas naudojant Package Manager Console arba Visual Studio NuGet UI. Paprasčiausias būdas – vykdyti `Install-Package XLParser` Package Manager Console. Alternatyviai, galite atsisiųsti naujausią versiją iš [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), sukompiliuoti sprendimą ir tiesiogiai nuorodoti į DLL. Biblioteka sukurta remiantis Irony parser framework ir nereikalauja papildomų priklausomybių. Įdiegus, galite pradėti analizuoti Excel formules naudodami `ExcelFormulaParser` klasę. Jos `Parse()` metodas priima formulės eilutę ir grąžina analizės ar transformacijos medį.
Įdiekite XLParser per NuGet
Install-Package XLParserAukštas suderinamumas Excel formulės analizėje
XLParser pasiekia 99,9 % sėkmingų analizės rodiklį daugiau nei milijono realių „Excel“ formulių atvejų, todėl tai vienas patikimiausių prieinamų C# formulių analizatorių. Jis buvo patikrintas plačiai naudojamuose Enron ir EUSES benchmark duomenų rinkiniuose ir sukurtas tvarkyti sudėtingas, įterptas ir realias formules – įskaitant masyvo išraiškas, nuorodas ir funkcijas. Nors XLParser nėra pernelyg ribojantis (gali analizuoti kai kurias formules, kurias Excel atmetų), ši lankstumas yra tyčinis, siekiant tyrimų ir analizės atvejų. Kūrėjai gali pasitikėti XLParser, kad jis išanalizuos didžiąją dalį formulių, su kuriomis susiduriama gamybinėse skaičiuoklėse, suteikdamas galimybę atlikti patikimą formulių analizę, refaktoringą ir kokybės užtikrinimo procesus. Jo kompaktiška gramatika užtikrina prižiūrimumą ir perkeliamumą tarp skirtingų analizatorių sistemų.
Išanalizuokite Excel formulę ir peržiūrėkite analizės medį
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Išgauti visas nuorodas iš Excel formulių
XLParser apima `FormulaAnalyzer` klasę, kuri suteikia galingus metodus analizuoti išanalizuotas formules. Viena iš pagrindinių jos savybių yra `ParserReferences()`, kuri grąžina visas ląsteles, intervalus, pavadintus intervalus ir horizontalius/vertikalius nuorodas, naudojamas formulėje. Tai yra neįkainojama priklausomybių sekimui, poveikio analizei ir refaktorizavimo įrankiams. Pavyzdžiui, turint formulę kaip `SUM(A1:B10, C12, NamedRange)`, `ParserReferences()` grąžins sąrašą `A1:B10`, `C12` ir `NamedRange`. Tai leidžia kūrėjams kurti skaičiuoklių auditavimo įrankius, vizualizuoti duomenų srautą arba aptikti ciklines priklausomybes. Šis metodas veikia sklandžiai su kompaktiška analizės medžio struktūra, užtikrinant greitą ir tikslų išskyrimą net didelėms formulėms.
Išgauti visas nuorodas naudojant 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());
}Naršyti ir analizuoti analizės medžius
XLParser analizės medžiai sukurti efektyviam naršymui ir analizei. `ExcelFormulaParser` klasė suteikia metodus, tokius kaip `AllNodes`, kad būtų galima pereiti per kiekvieną medžio mazgą, leidžiant pritaikyti analizę, transformaciją ar validacijos logiką. Kūrėjai gali filtruoti mazgus pagal tipą (pvz., funkcijos, nuorodos, operatoriai) ir atlikti operacijas, tokias kaip funkcijų pasikartojimų skaičiavimas, nenaudojamų pavadintų diapazonų aptikimas arba galimų klaidų identifikavimas. `GetFunction()` metodas supaprastina funkcijų pavadinimų išskyrimą iš funkcijų iškvietimo mazgų, o `Print()` leidžia greitai derinti arba registruoti bet kurio mazgo struktūrą. Šios galimybės daro XLParser idealiu įrankiu kuriant skaičiuoklių kokybės įrankius, refaktorizavimo asistentus ir edukacines vizualizacijas.
Naršyti visus mazgus ir išgauti funkcijų pavadinimus
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()}");
}Derinti ir vizualizuoti analizės medžius
XLParser glaudžiai integruojasi su Irony’s GrammarExplorer įrankiu interaktyviam derinimui ir medžių vizualizacijai. Sukūrus XLParser ir GrammarExplorer sprendimą, galite įkelti `XLParser.dll` kaip gramatiką ir realiu laiku testuoti formules. Kūrimo metu Visual Studio derintojas palaiko parse medžio mazgų peržiūrą stebėjimo lange naudojant `yournode.Print(),ac`. Ši funkcija pagreitina sudėtingų formulių supratimą, kraštutinių atvejų testavimą ir gramatikos taisyklių tikrinimą. Kompaktiška medžio struktūra užtikrina, kad net giliai įdėtos formulės liktų skaitomos ir valdomos. Nesvarbu, ar kuriate skaičiuoklių analizės įrankį, ar tyrinėjate Excel formulių elgseną, XLParser derinimo palaikymas supaprastina kūrimą ir problemų sprendimą.
Derinti analizės medžio mazgą Visual Studio stebėjimo lange
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac