
XLParser
محلل صيغ Excel C# مفتوح المصدر
تحليل، فحص وتصفح صيغ Excel بدقة عالية باستخدام أشجار تحليل مضغوطة عبر مكتبة C# مفتوحة المصدر.
ما هو XLParser؟
XLParser هي مكتبة C# عالية الدقة لتحليل صيغ Microsoft Excel، مبنية على إطار عمل Irony للمحلل. تحقق نسبة نجاح تبلغ 99.9٪ على أكثر من مليون صيغة حقيقية، وتم تصميمها خصيصًا لتحليل وإعادة هيكلة جداول البيانات. قواعدها المدمجة—أقل من 100 رمز وقاعدة إنتاجية—تجعلها سهلة الفهم والصيانة أو النقل إلى لغات أخرى. تُعد XLParser التنفيذ المرجعي لقواعد Excel التي نُشرت في الورقة “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” وتدعم مجموعات البيانات المرجعية Enron و EUSES.
XLParser ينتج أشجار تحليل مدمجة، مما يتيح التجوال الفعال، والتحليل، وتحويل الصيغ. يمكن للمطورين استخدام الفئة `ExcelFormulaParser` لتحليل الصيغ واستخراج أسماء الدوال، والإشارات، والتعبيرات الفرعية. تدعم الفئة `FormulaAnalyzer` عمليات متقدمة مثل `ParserReferences()` لاسترجاع جميع الإشارات إلى الخلايا، والنطاقات، والأسماء. بتركيزه على البحث والأدوات، يعتبر XLParser مثالياً لضمان جودة جداول البيانات، وإعادة هيكلة الصيغ، والأدوات التعليمية. يمكنك تجربة العرض التوضيحي عبر الإنترنت، أو التثبيت عبر NuGet، أو بناءه من المصدر على [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
البدء مع XLParser
يتوفر XLParser عبر NuGet ويمكن تثبيته باستخدام وحدة تحكم مدير الحزم أو واجهة NuGet في Visual Studio. أبسط طريقة هي تشغيل `Install-Package XLParser` في وحدة تحكم مدير الحزم. بدلاً من ذلك، يمكنك تنزيل أحدث إصدار من [مستودع XLParser على GitHub](https://github.com/spreadsheetlab/XLParser)، بناء الحل، والإشارة إلى ملف DLL مباشرة. تم بناء المكتبة على إطار عمل Irony للـ parser ولا تتطلب أي تبعيات إضافية. بمجرد التثبيت، يمكنك البدء في تحليل صيغ Excel باستخدام الفئة `ExcelFormulaParser`. طريقة `Parse()` الخاصة بها تقبل سلسلة الصيغة وتعيد شجرة تحليل لمزيد من التحليل أو التحويل.
تثبيت XLParser عبر NuGet
Install-Package XLParserتحليل صيغ Excel عالي التوافق
يقدم XLParser معدل نجاح في التحليل بنسبة 99.9٪ على أكثر من مليون صيغة إكسل حقيقية، مما يجعله أحد أكثر محللات الصيغ بلغة C# موثوقية المتاحة. تم التحقق من صحته باستخدام مجموعات البيانات المرجعية الشهيرة Enron و EUSES، وهو مصمم للتعامل مع الصيغ المعقدة والمتداخلة والحقيقية — بما في ذلك تعبيرات المصفوفات والمراجع والدوال. بينما لا يكون XLParser مقيّدًا بشكل مفرط (قد يحلل بعض الصيغ التي قد ترفضها إكسل)، فإن هذه المرونة مقصودة للاستخدامات البحثية والتحليلية. يمكن للمطورين الاعتماد على XLParser لتحليل الغالبية العظمى من الصيغ التي تُواجه في جداول البيانات الإنتاجية، مما يتيح تحليلاً قويًا للصيغ وإعادة هيكلة وضمان جودة سير العمل. تضمن قواعده المدمجة القابلية للصيانة والنقل عبر أطر التحليل.
تحليل صيغة Excel وفحص شجرة التحليل
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());استخراج جميع المراجع من صيغ Excel
يتضمن XLParser الفئة `FormulaAnalyzer`، التي توفر طرقًا قوية لتحليل الصيغ التي تم تحليلها. إحدى الميزات الرئيسية لها هي `ParserReferences()`، التي تُرجع جميع مراجع الخلايا والنطاقات والنطاقات المسماة والمراجع الأفقية/العمودية المستخدمة في الصيغة. هذا لا يقدر بثمن لتتبع الاعتمادات، وتحليل الأثر، وأدوات إعادة الهيكلة. على سبيل المثال، إذا كانت الصيغة مثل `SUM(A1:B10, C12, NamedRange)`، فإن `ParserReferences()` ستُرجع قائمة بـ `A1:B10` و `C12` و `NamedRange`. هذا يمكّن المطورين من بناء أدوات تدقيق جداول البيانات، وتصور تدفق البيانات، أو اكتشاف الاعتمادات الدائرية. تعمل الطريقة بسلاسة مع بنية شجرة التحليل المدمجة، مما يضمن استخراجًا سريعًا ودقيقًا حتى لل صيغ الكبيرة.
استخراج جميع المراجع باستخدام 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());
}استعراض وتحليل أشجار التحليل
تم تصميم أشجار التحليل في XLParser لتكون فعّالة في التجوال والتحليل. توفر الفئة `ExcelFormulaParser` طرقًا مثل `AllNodes` للتنقل عبر كل عقدة في الشجرة، مما يتيح تحليلًا مخصصًا أو تحويلًا أو منطقًا للتحقق. يمكن للمطورين تصفية العقد حسب النوع (مثل الدوال، المراجع، المشغلات) وإجراء عمليات مثل عدّ مرات ظهور الدوال، اكتشاف النطاقات المسماة غير المستخدمة، أو تحديد الأخطاء المحتملة. تُبسّط الطريقة `GetFunction()` استخراج أسماء الدوال من عقد استدعاء الدوال، بينما تتيح `Print()` تصحيحًا سريعًا أو تسجيلًا لبنية أي عقدة. تجعل هذه القدرات XLParser مثاليًا لبناء أدوات جودة الجداول الإلكترونية، ومساعدي إعادة الهيكلة، والتصويرات التعليمية.
تصفح جميع العقد واستخراج أسماء الدوال
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()}");
}تصحيح وتصور أشجار التحليل
يتكامل XLParser بشكل وثيق مع أداة GrammarExplorer الخاصة بـ Irony لتصحيح الأخطاء التفاعلي وعرض الشجرة. بعد بناء XLParser وحل GrammarExplorer، يمكنك تحميل `XLParser.dll` كقواعد واختبار الصيغ في الوقت الفعلي. أثناء التطوير، يدعم مصحح الأخطاء في Visual Studio فحص عقد شجرة التحليل عبر نافذة المراقبة باستخدام `yournode.Print(),ac`. هذه الميزة تسرّع فهم الصيغ المعقدة، واختبار الحالات الحدية، والتحقق من قواعد القواعد النحوية. يضمن هيكل الشجرة المدمج أن تظل الصيغ المتداخلة بعمق قابلة للقراءة والإدارة. سواء كنت تبني أداة تحليل جداول بيانات أو تبحث في سلوك صيغ Excel، فإن دعم تصحيح الأخطاء في XLParser يبسط عملية التطوير واستكشاف الأخطاء.
تصحيح عقدة شجرة التحليل في نافذة المراقبة في Visual Studio
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac