
XLParser
Ανοιχτού Κώδικα C# Parser Τύπων Excel
Αναλύστε, Εξετάστε & Διασχίστε Τύπους Excel με Υψηλή Ακρίβεια Χρησιμοποιώντας Συμπαγή Δέντρα Ανάλυσης μέσω Ανοιχτού Κώδικα Βιβλιοθήκης C#.
Τι είναι το XLParser;
Το XLParser είναι μια βιβλιοθήκη C# υψηλής ακρίβειας για την ανάλυση τύπων του Microsoft Excel, χτισμένη πάνω στο πλαίσιο ανάλυσης Irony. Παρέχει ποσοστό επιτυχίας 99,9% σε πάνω από ένα εκατομμύριο πραγματικούς τύπους και έχει σχεδιαστεί ειδικά για ανάλυση και αναδιάρθρωση λογιστικών φύλλων. Η συμπαγής γραμματική του —λιγότερο από 100 διακριτικά και κανόνες παραγωγής— το καθιστά εύκολο στην κατανόηση, συντήρηση ή μεταφορά σε άλλες γλώσσες. Το XLParser λειτουργεί ως η αναφορά υλοποίησης της γραμματικής Excel που δημοσιεύτηκε στην εργασία “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” και υποστηρίζει τα σύνολα δεδομένων benchmark Enron και EUSES.
Το XLParser παράγει συμπαγή δέντρα ανάλυσης, επιτρέποντας αποδοτική διαδρομή, ανάλυση και μετασχηματισμό τύπων. Οι προγραμματιστές μπορούν να χρησιμοποιήσουν την κλάση `ExcelFormulaParser` για να αναλύσουν τύπους και να εξάγουν ονόματα συναρτήσεων, αναφορές και υποεκφράσεις. Η κλάση `FormulaAnalyzer` υποστηρίζει περαιτέρω προχωρημένες λειτουργίες όπως `ParserReferences()` για την ανάκτηση όλων των αναφορών κελιών, περιοχών και ονομαστικών. Με την εστίασή της στην έρευνα και τα εργαλεία, το XLParser είναι ιδανικό για διασφάλιση ποιότητας υπολογιστικών φύλλων, ανασυγκρότηση τύπων και εκπαιδευτικά εργαλεία. Μπορείτε να δοκιμάσετε τη διαδικτυακή επίδειξη, να εγκαταστήσετε μέσω NuGet ή να χτίσετε από τον πηγαίο κώδικα στο [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
Ξεκινώντας με το XLParser
Το XLParser είναι διαθέσιμο μέσω του NuGet και μπορεί να εγκατασταθεί χρησιμοποιώντας το Package Manager Console ή το UI του NuGet στο Visual Studio. Ο πιο απλός τρόπος είναι να εκτελέσετε `Install-Package XLParser` στο Package Manager Console. Εναλλακτικά, μπορείτε να κατεβάσετε την τελευταία έκδοση από το [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), να δημιουργήσετε τη λύση και να αναφέρετε απευθείας το DLL. Η βιβλιοθήκη είναι χτισμένη πάνω στο πλαίσιο parser Irony και δεν απαιτεί πρόσθετες εξαρτήσεις. Μόλις εγκατασταθεί, μπορείτε να αρχίσετε να αναλύετε τύπους Excel χρησιμοποιώντας την κλάση `ExcelFormulaParser`. Η μέθοδος `Parse()` της δέχεται μια συμβολοσειρά τύπου και επιστρέφει ένα δέντρο ανάλυσης για περαιτέρω ανάλυση ή μετασχηματισμό.
Εγκατάσταση του XLParser μέσω NuGet
Install-Package XLParserΑνάλυση τύπων Excel με υψηλή συμβατότητα
Το XLParser παρέχει ποσοστό επιτυχίας ανάλυσης 99.9% σε πάνω από ένα εκατομμύριο πραγματικές φόρμουλες Excel, καθιστώντας το έναν από τους πιο αξιόπιστους αναλυτές φόρμουλων C# που διατίθενται. Επικυρώθηκε στα ευρέως χρησιμοποιούμενα σύνολα δεδομένων benchmark Enron και EUSES και σχεδιάστηκε για να χειρίζεται σύνθετες, ένθετες και πραγματικές φόρμουλες — συμπεριλαμβανομένων εκφράσεων πίνακα, αναφορών και συναρτήσεων. Αν και το XLParser δεν είναι υπερβολικά περιοριστικό (μπορεί να αναλύσει κάποιες φόρμουλες που το Excel θα απορρίψει), αυτή η επιεικότητα είναι σκόπιμη για περιπτώσεις έρευνας και ανάλυσης. Οι προγραμματιστές μπορούν να εμπιστευτούν το 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