
XLParser
Açık Kaynak C# Excel Formül Ayrıştırıcısı
Kompakt Ayrıştırma Ağaçları Kullanarak Açık Kaynak C# Kütüphanesiyle Yüksek Doğrulukla Excel Formüllerini Ayrıştırın, Analiz Edin ve Dolaşın.
XLParser nedir?
XLParser, Microsoft Excel formüllerini ayrıştırmak için Irony ayrıştırıcı çerçevesi üzerine inşa edilmiş yüksek doğruluklu bir C# kütüphanesidir. Bir milyondan fazla gerçek dünya formülünde %99,9 başarı oranı sağlar ve özellikle elektronik tablo analizi ve yeniden yapılandırma için tasarlanmıştır. 100'den az token ve üretim kuralı içeren kompakt grammeri, anlaşılmasını, bakımını veya diğer dillere taşınmasını kolaylaştırır. XLParser, “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” adlı makalede yayımlanan Excel grammerinin referans uygulaması olarak hizmet verir ve Enron ve EUSES benchmark veri setlerini destekler.
XLParser, kompakt ayrıştırma ağaçları üretir ve formüllerin verimli gezinmesi, analizi ve dönüşümünü sağlar. Geliştiriciler, formülleri ayrıştırmak ve fonksiyon adlarını, referansları ve alt ifadeleri çıkarmak için `ExcelFormulaParser` sınıfını kullanabilir. `FormulaAnalyzer` sınıfı, `ParserReferences()` gibi tüm hücre, aralık ve adlandırılmış referansları almak için gelişmiş işlemleri de destekler. Araştırma ve araç geliştirmeye odaklanmasıyla XLParser, elektronik tablo kalite güvencesi, formül yeniden yapılandırması ve eğitim araçları için idealdir. Çevrimiçi demoyu deneyebilir, NuGet üzerinden kurabilir veya kaynak kodundan [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) adresinde derleyebilirsiniz.
XLParser ile Başlarken
XLParser, NuGet üzerinden mevcuttur ve Paket Yöneticisi Konsolu veya Visual Studio'nun NuGet UI'sı kullanılarak kurulabilir. En basit yol, Paket Yöneticisi Konsolu'nda `Install-Package XLParser` komutunu çalıştırmaktır. Alternatif olarak, en son sürümü [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) adresinden indirebilir, çözümü derleyebilir ve DLL'yi doğrudan referans alabilirsiniz. Kütüphane, Irony ayrıştırıcı çerçevesi üzerine inşa edilmiştir ve ek bağımlılık gerektirmez. Kurulduktan sonra, `ExcelFormulaParser` sınıfını kullanarak Excel formüllerini ayrıştırmaya başlayabilirsiniz. `Parse()` yöntemi bir formül dizesi alır ve daha fazla analiz veya dönüşüm için bir ayrıştırma ağacı döndürür.
XLParser'ı NuGet üzerinden Kurun
Install-Package XLParserYüksek Uyumluluklu Excel Formül Ayrıştırması
XLParser, bir milyondan fazla gerçek dünya Excel formülü üzerinde %99,9 başarılı ayrıştırma oranı sunar ve bu da onu mevcut en güvenilir C# formül ayrıştırıcılarından biri yapar. Yaygın olarak kullanılan Enron ve EUSES benchmark veri setlerinde doğrulandı ve karmaşık, iç içe geçmiş ve gerçek dünya formüllerini—dizi ifadeleri, referanslar ve fonksiyonlar dahil—ele alacak şekilde tasarlandı. XLParser aşırı kısıtlayıcı olmamakla birlikte (Excel'in reddedeceği bazı formülleri ayrıştırabilir), bu hoşgörülük araştırma ve analiz kullanım durumları için kasıtlıdır. Geliştiriciler, üretim elektronik tablolarında karşılaşılan formüllerin büyük çoğunluğunu ayrıştırmak için XLParser'a güvenebilir, bu da sağlam formül analizi, yeniden yapılandırma ve kalite güvence iş akışlarını mümkün kılar. Kompakt grameri, ayrıştırıcı çerçeveler arasında sürdürülebilirlik ve taşınabilirlik sağlar.
Bir Excel Formülünü Ayrıştır ve Ayrıştırma Ağacını İncele
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Excel Formüllerinden Tüm Referansları Çıkar
XLParser, `FormulaAnalyzer` sınıfını içerir ve bu sınıf ayrıştırılmış formülleri analiz etmek için güçlü yöntemler sağlar. Temel özelliklerinden biri `ParserReferences()` olup, bir formülde kullanılan tüm hücre, aralık, adlandırılmış aralık ve yatay/dikey referansları döndürür. Bu, bağımlılık takibi, etki analizi ve yeniden yapılandırma araçları için çok değerlidir. Örneğin, `SUM(A1:B10, C12, NamedRange)` gibi bir formül verildiğinde, `ParserReferences()` `A1:B10`, `C12` ve `NamedRange` listesini döndürür. Bu, geliştiricilerin elektronik tablo denetim araçları oluşturmasını, veri akışını görselleştirmesini veya döngüsel bağımlılıkları tespit etmesini sağlar. Yöntem, kompakt ayrıştırma ağacı yapısıyla sorunsuz çalışır ve büyük formüller için bile hızlı ve doğru çıkarım sağlar.
FormulaAnalyzer Kullanarak Tüm Referansları Çıkar
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());
}Ayrıştırma Ağaçlarını Gezin ve Analiz Edin
XLParser'ın ayrıştırma ağaçları, verimli gezinme ve analiz için tasarlanmıştır. `ExcelFormulaParser` sınıfı, ağaçtaki her düğümü yinelemek için `AllNodes` gibi yöntemler sağlar ve özel analiz, dönüşüm veya doğrulama mantığını etkinleştirir. Geliştiriciler, düğümleri türüne göre (ör. fonksiyonlar, referanslar, operatörler) filtreleyebilir ve fonksiyon oluşumlarını sayma, kullanılmayan adlandırılmış aralıkları tespit etme veya olası hataları belirleme gibi işlemler yapabilir. `GetFunction()` yöntemi, fonksiyon‑çağrı düğümlerinden fonksiyon adlarını çıkarmayı basitleştirirken, `Print()` herhangi bir düğümün yapısını hızlı bir şekilde hata ayıklama veya kaydetmeye olanak tanır. Bu yetenekler, XLParser'ı elektronik tablo kalite araçları, yeniden yapılandırma asistanları ve eğitim görselleştirmeleri oluşturmak için ideal kılar.
Tüm Düğümleri Gezin ve Fonksiyon İsimlerini Çıkar
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()}");
}Ayrıştırma Ağaçlarını Hata Ayıkla ve Görselleştir
XLParser, etkileşimli hata ayıklama ve ağaç görselleştirme için Irony’nin GrammarExplorer aracına sıkı bir entegrasyon sağlar. XLParser ve GrammarExplorer çözümünü derledikten sonra, `XLParser.dll` dosyasını bir dilbilgisi olarak yükleyebilir ve formülleri gerçek zamanlı olarak test edebilirsiniz. Geliştirme sırasında, Visual Studio hata ayıklayıcısı, izleme penceresinden `yournode.Print(),ac` kullanarak ayrıştırma ağacı düğümlerini incelemeyi destekler. Bu özellik, karmaşık formüllerin anlaşılmasını, kenar durumlarının test edilmesini ve dilbilgisi kurallarının doğrulanmasını hızlandırır. Kompakt ağaç yapısı, derinlemesine iç içe geçmiş formüllerin bile okunabilir ve yönetilebilir olmasını sağlar. İster bir elektronik tablo analiz aracı geliştiriyor olun, ister Excel formül davranışlarını araştırıyor olun, XLParser’ın hata ayıklama desteği geliştirme ve sorun giderme sürecini basitleştirir.
Visual Studio İzleme Penceresinde Bir Ayrıştırma Ağacı Düğümünü Hata Ayıkla
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac