
XLParser
Parser Rumus Excel C# Open Source
Mengurai, Menganalisis & Menelusuri Rumus Excel dengan Akurasi Tinggi Menggunakan Pohon Parse yang Kompak melalui Perpustakaan C# Open Source.
Apa itu XLParser?
XLParser adalah perpustakaan C# dengan akurasi tinggi untuk mengurai formula Microsoft Excel, dibangun di atas kerangka kerja parser Irony. Ia memberikan tingkat keberhasilan 99,9% pada lebih dari satu juta formula dunia nyata dan dirancang khusus untuk analisis serta refactoring spreadsheet. Tata bahasa yang kompak—kurang dari 100 token dan aturan produksi—memudahkan pemahaman, pemeliharaan, atau porting ke bahasa lain. XLParser berfungsi sebagai implementasi referensi tata bahasa Excel yang dipublikasikan dalam makalah “A Grammar for Spreadsheet Formulas Evaluated on Two Large Datasets” dan mendukung dataset benchmark Enron dan EUSES.
XLParser menghasilkan pohon parse yang kompak, memungkinkan penelusuran, analisis, dan transformasi formula yang efisien. Pengembang dapat menggunakan kelas `ExcelFormulaParser` untuk mem-parse formula dan mengekstrak nama fungsi, referensi, dan subekspresi. Kelas `FormulaAnalyzer` lebih lanjut mendukung operasi lanjutan seperti `ParserReferences()` untuk mengambil semua referensi sel, rentang, dan nama. Dengan fokus pada penelitian dan alat, XLParser ideal untuk jaminan kualitas spreadsheet, refactoring formula, dan alat edukasi. Anda dapat mencoba demo daring, menginstal via NuGet, atau membangun dari sumber di [XLParser GitHub](https://github.com/spreadsheetlab/XLParser).
Memulai dengan XLParser
XLParser tersedia melalui NuGet dan dapat diinstal menggunakan Package Manager Console atau UI NuGet Visual Studio. Cara paling sederhana adalah menjalankan `Install-Package XLParser` di Package Manager Console. Alternatifnya, Anda dapat mengunduh rilis terbaru dari [XLParser GitHub](https://github.com/spreadsheetlab/XLParser), membangun solusi, dan merujuk langsung ke DLL. Perpustakaan ini dibangun di atas kerangka kerja parser Irony dan tidak memerlukan dependensi tambahan. Setelah diinstal, Anda dapat mulai mem‑parsing formula Excel menggunakan kelas `ExcelFormulaParser`. Metode `Parse()`‑nya menerima string formula dan mengembalikan pohon parse untuk analisis atau transformasi lebih lanjut.
Instal XLParser melalui NuGet
Install-Package XLParserParsing Rumus Excel dengan Kompatibilitas Tinggi
XLParser memberikan tingkat keberhasilan parsing sebesar 99,9% pada lebih dari satu juta formula Excel dunia nyata, menjadikannya salah satu parser formula C# paling andal yang tersedia. Ini telah divalidasi pada dataset benchmark Enron dan EUSES yang banyak digunakan dan dirancang untuk menangani formula yang kompleks, bersarang, dan dunia nyata—termasuk ekspresi array, referensi, dan fungsi. Meskipun XLParser tidak terlalu restriktif (dapat memparsing beberapa formula yang ditolak Excel), kelonggaran ini disengaja untuk keperluan riset dan analisis. Pengembang dapat mempercayai XLParser untuk memparsing sebagian besar formula yang ditemui dalam spreadsheet produksi, memungkinkan analisis formula yang kuat, refactoring, dan alur kerja jaminan kualitas. Tata bahasa yang kompak memastikan kemudahan pemeliharaan dan portabilitas di seluruh kerangka parser.
Parse Rumus Excel dan Periksa Pohon Parse
using XLParser;
var parser = new ExcelFormulaParser();
var tree = parser.Parse("SUM(A1:B10, C12)");
Console.WriteLine(tree.Print());Ekstrak Semua Referensi dari Rumus Excel
XLParser mencakup kelas `FormulaAnalyzer`, yang menyediakan metode kuat untuk menganalisis formula yang telah diparse. Salah satu fitur utamanya adalah `ParserReferences()`, yang mengembalikan semua referensi sel, rentang, rentang bernama, dan referensi horizontal/vertikal yang digunakan dalam sebuah formula. Ini sangat berharga untuk pelacakan ketergantungan, analisis dampak, dan alat refactoring. Misalnya, diberikan formula seperti `SUM(A1:B10, C12, NamedRange)`, `ParserReferences()` akan mengembalikan daftar `A1:B10`, `C12`, dan `NamedRange`. Ini memungkinkan pengembang membangun alat audit spreadsheet, memvisualisasikan alur data, atau mendeteksi ketergantungan melingkar. Metode ini bekerja mulus dengan struktur pohon parse yang kompak, memastikan ekstraksi cepat dan akurat bahkan untuk formula besar.
Ekstrak Semua Referensi Menggunakan 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());
}Jelajahi dan Analisis Pohon Parse
Tree parse XLParser dirancang untuk penelusuran dan analisis yang efisien. Kelas `ExcelFormulaParser` menyediakan metode seperti `AllNodes` untuk mengiterasi setiap node dalam pohon, memungkinkan analisis khusus, transformasi, atau logika validasi. Pengembang dapat memfilter node berdasarkan tipe (mis., fungsi, referensi, operator) dan melakukan operasi seperti menghitung kemunculan fungsi, mendeteksi rentang bernama yang tidak terpakai, atau mengidentifikasi potensi kesalahan. Metode `GetFunction()` menyederhanakan ekstraksi nama fungsi dari node pemanggilan fungsi, sementara `Print()` memungkinkan debugging cepat atau pencatatan struktur node apa pun. Kemampuan ini menjadikan XLParser ideal untuk membangun alat kualitas spreadsheet, asisten refactoring, dan visualisasi edukatif.
Jelajahi Semua Node dan Ekstrak Nama Fungsi
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()}");
}Debug dan Visualisasikan Pohon Parse
XLParser terintegrasi erat dengan alat GrammarExplorer milik Irony untuk debugging interaktif dan visualisasi pohon. Setelah membangun XLParser dan solusi GrammarExplorer, Anda dapat memuat `XLParser.dll` sebagai grammar dan menguji formula secara real time. Selama pengembangan, debugger Visual Studio mendukung inspeksi node pohon parse melalui jendela watch menggunakan `yournode.Print(),ac`. Fitur ini mempercepat pemahaman formula yang kompleks, pengujian kasus tepi, dan validasi aturan grammar. Struktur pohon yang kompak memastikan bahkan formula yang sangat bersarang tetap dapat dibaca dan dikelola. Baik Anda sedang membangun alat analisis spreadsheet atau meneliti perilaku formula Excel, dukungan debugging XLParser menyederhanakan pengembangan dan pemecahan masalah.
Debug Node Pohon Parse di Jendela Watch Visual Studio
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac