
XLParser
Nyílt forráskódú C# Excel képlet-elemző
Elemezze, elemezze és járja be az Excel képleteket nagy pontossággal, kompakt elemzőfák használatával egy nyílt forráskódú C# könyvtár segítségével.
Mi az XLParser?
Az XLParser egy nagy pontosságú C# könyvtár a Microsoft Excel képletek elemzésére, amely az Irony elemző keretrendszerén alapul. 99,9%-os sikerarányt ér el több mint egymillió valós képleten, és kifejezetten táblázatelemzésre és refaktorálásra tervezték. Kompakt nyelvtana—kevesebb mint 100 token és termelési szabály—megkönnyíti a megértést, karbantartást vagy más nyelvekre való átültetést. Az XLParser a “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” című tanulmányban közzétett Excel nyelvtan referencia-implementációjaként szolgál, és támogatja az Enron és EUSES benchmark adathalmazokat.
Az XLParser kompakt elemzőfákat hoz létre, lehetővé téve a képletek hatékony bejárását, elemzését és átalakítását. A fejlesztők használhatják az `ExcelFormulaParser` osztályt a képletek elemzésére és a függvénynevek, hivatkozások és alkifejezések kinyerésére. A `FormulaAnalyzer` osztály további fejlett műveleteket támogat, például a `ParserReferences()`-t, amely visszaadja az összes cella-, tartomány- és névhez tartozó hivatkozást. A kutatásra és eszközökre való fókuszával az XLParser ideális a táblázatkezelő minőségbiztosításhoz, képlet refaktoráláshoz és oktatási eszközökhöz. Próbálja ki az online demót, telepítse a NuGet-en keresztül, vagy építse fel a forráskódból a [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) oldalon.
Az XLParser használatának megkezdése
Az XLParser a NuGet-en keresztül érhető el, és telepíthető a Package Manager Console vagy a Visual Studio NuGet felhasználói felülete segítségével. A legegyszerűbb módja, ha a Package Manager Console-ban lefuttatja a `Install-Package XLParser` parancsot. Alternatívaként letöltheti a legújabb kiadást a [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) oldalról, felépítheti a megoldást, és közvetlenül hivatkozhat a DLL-re. A könyvtár az Irony parser keretrendszerén alapul, és nem igényel további függőségeket. A telepítés után elkezdheti az Excel képletek elemzését az `ExcelFormulaParser` osztály használatával. Ennek a `Parse()` metódusának a bemenete egy képlet karakterlánc, és visszaad egy elemzőfát további elemzéshez vagy átalakításhoz.
XLParser telepítése a NuGet segítségével
Install-Package XLParserMagas kompatibilitású Excel képlet elemzés
Az XLParser 99,9%-os sikeres elemzési arányt ér el több mint egymillió valós Excel képlet esetén, így az egyik legmegbízhatóbb C# képlet-elemzőként érhető el. A széles körben használt Enron és EUSES benchmark adathalmazokon validálták, és úgy tervezték, hogy összetett, egymásba ágyazott és valós képleteket kezeljen – beleértve a tömbkifejezéseket, hivatkozásokat és függvényeket. Bár az XLParser nem túl szigorú (előfordulhat, hogy olyan képleteket is elemzi, amelyeket az Excel elutasítana), ez a rugalmasság szándékos a kutatási és elemzési felhasználási esetekhez. A fejlesztők megbízhatnak abban, hogy az XLParser a termelési táblázatokban előforduló képletek túlnyomó részét képes feldolgozni, lehetővé téve a robusztus képlet-elemzést, refaktorálást és minőségbiztosítási munkafolyamatokat. Kompakt grammatikája biztosítja a karbantarthatóságot és a hordozhatóságot a különböző elemző keretrendszerek között.
Excel képlet elemzése és a parse fa vizsgálata
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Minden hivatkozás kinyerése Excel képletekből
Az XLParser tartalmazza a `FormulaAnalyzer` osztályt, amely hatékony módszereket biztosít a feldolgozott képletek elemzésére. A főbb funkciói közé tartozik a `ParserReferences()`, amely visszaadja a képletben használt összes cella-, tartomány-, névvel ellátott tartomány- és vízszintes/függőleges hivatkozást. Ez felbecsülhetetlen a függőségek nyomon követéséhez, hatáselemzéshez és refaktorálási eszközökhöz. Például egy `SUM(A1:B10, C12, NamedRange)` képletre a `ParserReferences()` egy listát ad vissza a `A1:B10`, `C12` és `NamedRange` elemekkel. Ez lehetővé teszi a fejlesztők számára, hogy táblázat-ellenőrző eszközöket építsenek, vizualizálják az adatáramlást, vagy észleljék a körkörös függőségeket. A metódus zökkenőmentesen működik a kompakt elemzőfa struktúrával, biztosítva a gyors és pontos kinyerést még nagy képletek esetén is.
Az összes hivatkozás kinyerése a FormulaAnalyzer segítségével
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 fák bejárása és elemzése
Az XLParser elemzési fái hatékony bejárásra és elemzésre lettek tervezve. Az `ExcelFormulaParser` osztály olyan módszereket biztosít, mint az `AllNodes`, amely lehetővé teszi a fa minden csomópontjának bejárását, testreszabott elemzés, átalakítás vagy validációs logika megvalósítását. A fejlesztők szűrhetik a csomópontokat típus szerint (pl. függvények, hivatkozások, operátorok), és olyan műveleteket végezhetnek, mint a függvényelőfordulások számlálása, a használaton kívüli névvel ellátott tartományok felderítése vagy a lehetséges hibák azonosítása. A `GetFunction()` metódus egyszerűsíti a függvénynevek kinyerését a függvényhívás csomópontokból, míg a `Print()` gyors hibakeresést vagy naplózást tesz lehetővé bármely csomópont szerkezetének. Ezek a képességek teszik az XLParser-t ideálissá táblázatkezelő minőségi eszközök, refaktoráló asszisztensek és oktatási vizualizációk építéséhez.
Az összes csomópont bejárása és a függvénynevek kinyerése
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 fák hibakeresése és vizualizálása
Az XLParser szorosan integrálódik az Irony GrammarExplorer eszközével az interaktív hibakeresés és fa megjelenítés érdekében. Az XLParser és a GrammarExplorer megoldás felépítése után betöltheti a `XLParser.dll`-t grammatikaként, és valós időben tesztelheti a képleteket. Fejlesztés közben a Visual Studio hibakeresője támogatja a parse-fa csomópontok vizsgálatát a figyelőablakon keresztül a `yournode.Print(),ac` használatával. Ez a funkció felgyorsítja a komplex képletek megértését, a szélsőséges esetek tesztelését és a nyelvtani szabályok validálását. A kompakt fa struktúra biztosítja, hogy még a mélyen beágyazott képletek is olvashatóak és kezelhetőek maradjanak. Akár táblázatelemző eszközt épít, akár az Excel képlet viselkedését kutatja, az XLParser hibakeresési támogatása egyszerűsíti a fejlesztést és a hibakeresést.
Parse fa csomópont hibakeresése a Visual Studio Figyelő ablakban
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac