
XLParser
พาร์เซอร์สูตร Excel C# แบบโอเพ่นซอร์ส
แยก, วิเคราะห์ & เดินทางผ่านสูตร Excel ด้วยความแม่นยำสูงโดยใช้ต้นไม้การแยกแบบกะทัดรัดผ่านไลบรารี C# แบบโอเพ่นซอร์ส.
XLParser คืออะไร?
XLParser เป็นไลบรารี C# ที่มีความแม่นยำสูงสำหรับการแยกสูตร Microsoft Excel สร้างบนกรอบงาน Irony parser framework มันให้ความสำเร็จถึง 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 และสามารถติดตั้งได้โดยใช้ Package Manager Console หรือ UI ของ NuGet ใน Visual Studio วิธีที่ง่ายที่สุดคือการรัน `Install-Package XLParser` ใน Package Manager Console อีกทางหนึ่งคุณสามารถดาวน์โหลดเวอร์ชันล่าสุดจาก [XLParser GitHub](https://github.com/spreadsheetlab/XLParser) สร้างโซลูชัน และอ้างอิง DLL โดยตรง ไลบรารีนี้สร้างบนเฟรมเวิร์ก Irony parser และไม่ต้องการการพึ่งพาเพิ่มเติม เมื่อทำการติดตั้งแล้วคุณสามารถเริ่มต้นการแยกสูตร Excel ด้วยคลาส `ExcelFormulaParser` เมธอด `Parse()` ของมันรับสตริงสูตรและคืนค่าโครงสร้างต้นไม้การแยกสำหรับการวิเคราะห์หรือการแปลงต่อไป
ติดตั้ง XLParser ผ่าน NuGet
Install-Package XLParserการแยกสูตร Excel ที่เข้ากันได้สูง
XLParser ให้ผลการแยกวิเคราะห์สำเร็จ 99.9% บนสูตร Excel จริงมากกว่าหนึ่งล้านสูตร ทำให้เป็นหนึ่งในตัวแยกสูตร C# ที่เชื่อถือได้มากที่สุดที่มีอยู่ มันได้รับการตรวจสอบความถูกต้องบนชุดข้อมูลมาตรฐาน 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 รองรับการตรวจสอบโหนดต้นไม้การพาร์สผ่านหน้าต่าง watch ด้วยการใช้ `yournode.Print(),ac` ฟีเจอร์นี้ช่วยเร่งความเข้าใจสูตรที่ซับซ้อน การทดสอบกรณีขอบ และการตรวจสอบกฎไวยากรณ์ โครงสร้างต้นไม้ที่กะทัดรัดทำให้แม้สูตรที่ซ้อนลึกก็ยังอ่านง่ายและจัดการได้ ไม่ว่าคุณจะสร้างเครื่องมือวิเคราะห์สเปรดชีตหรือทำการวิจัยพฤติกรรมสูตร Excel การสนับสนุนการดีบักของ XLParser ทำให้การพัฒนาและการแก้ไขปัญหาง่ายขึ้น
ดีบักโหนดต้นไม้การแยกวิเคราะห์ในหน้าต่าง Watch ของ Visual Studio
var tree = parser.Parse("IF(A1>0, A1*2, 0)");
// In Watch window: tree.Print(),ac