: Testirali smo 12 C# Excel biblioteka protiv identičnih zadataka: kreiranje radnih knjiga, čitanje velikih skupova podataka, oblikovanje ćelija i izvoz preko platformi. Ovaj vodič obuhvaća sve od MIT-ovih licenciiranih opcija otvorenog koda do komercijalnih paketa poduzeća, sa kodom uz stranu, kriterijima performansi, troškovima licenciranja i okvirom za donošenje odluka koji će vam pomoći da odaberete pravu biblioteku za vaš projekat. TL;DR U ovoj usporedbi proveli smo tri sedmice vođenjem svake od 12 biblioteka kroz identične test scenarije: stvaranje radnih knjiga od nule, čitanje 100 000 serija skupova podataka, primjena uslovnog oblikovanja i izvoz na XLSX i CSV na Windows i Linux. Potpuno otkrivanje: Mi smo DevRel tim iza , jedna od 12 biblioteka u ovom poređenju. To je rekao, verujemo da iskrene ocjene služe svima bolje od marketinških spinova. Pokazaćemo našu metodologiju, priznati naše predrasude i pustiti referentne oznake da govore za sebe. Gde konkurent istinski nadmašuje IronXL za određeni slučaj upotrebe, reći ćemo to. Ironija Evo kako krajolik izgleda na jedan pogled - onda ćemo ići duboko u svaku biblioteku. // The task every library in this article performs: // Create a workbook → write headers + 3 data rows → save as XLSX // IronXL (3 lines of core logic) using IronXL; WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet ws = wb.CreateWorkSheet("Sales"); ws["A1"].Value = "Product"; ws["B1"].Value = "Revenue"; ws["A2"].Value = "Widget"; ws["B2"].DoubleValue = 14999.99; wb.SaveAs("sales_ironxl.xlsx"); IronXL Izlazak Pokazaćemo svakoj biblioteci verziju ovog zadatka ispod, jer je najbolji način za procjenu API-ja čitanje koda. Prije nego što dođemo do pojedinačnih profila, jedna napomena o metodologiji. Ocenili smo svaku biblioteku u sedam dimenzija: (koliko linija za obavljanje zajedničkih zadataka), (koji tipovi fajlova možete čitati i pisati), (grafike, pivotovi i formule) (Zapišite brzinu i upotrebu memorije na skali), (Linux, Docker i cloud aplikacije) (stvarni troškovi uključujući skrivene naknade), i (release kadence, community size, documentation quality).Nijedna biblioteka ne nadmašuje svih sedam, težina koju dodelite svakoj dimenziji određuje vaš najbolji izbor. API ergonomics format support feature depth performance cross-platform support licensing clarity maintenance health Koju C# Excel biblioteku treba odabrati? Tablica brzog upućivanja Prije uronjenja u 12 pojedinačnih profila, evo usporedne tabele. Svaka tvrdnja u ovoj tabeli provjerava se prema dokumentaciji svake biblioteke i paketu NuGet od februara 2026. Library License Entry Price XLSX Files XLS Files CSV Files .NET 8 LTS .NET 10 Linux/Docker Charts Pivot Tables Formula Engine NuGet Downloads IronXL Commercial $749/yr ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ 3M+ EPPlus Commercial $299/yr ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 80M+ ClosedXML MIT Free ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ ✅ 60M+ NPOI Apache 2.0 Free ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ 50M+ Aspose.Cells Commercial $1,199/yr ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 20M+ Syncfusion XlsIO Commercial/Free* $0–$995/yr ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 15M+ GemBox.Spreadsheet Freemium $0–$890 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 5M+ OpenXML SDK MIT Free ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ 100M+ ExcelDataReader MIT Free ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ 70M+ Spire.XLS Commercial $999/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 3M+ SpreadsheetLight MIT Free ✅ ❌ ✅ ⚠️ ❌ ⚠️ ✅ ❌ ✅ 2M+ SpreadsheetGear Commercial $975/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ 1M+ IronXL Komercijalno 749 dolara za godinu dana ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ 3M i više EPPlus Epilog Komercijalno 299 dolara za godinu dana ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 80m više ClosedXML Završetak sa slobodno ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ ✅ 60m i više NPOI Uslovi korišćenja 2.0 slobodno ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ 50m više Aspose.Cells Komercijalno 1.199 dolara godišnje ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 20M+ Syncfusion XlsIO Komercijalno / Besplatno * 0 – 995 dolara godišnje ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 15m više GemBox.Spreadsheet GemBox.Spreadsheet Izložba Freemium 0 – 890 dolara ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 5m više OpenXML SDK sa slobodno ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ 100m više ExcelDataReader sa Free ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ 70M+ Spire.XLS Spire.XLS Commercial $999/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 3M+ SpreadsheetLight sa Free ✅ ❌ ✅ ⚠️ ❌ ️ ✅ ❌ ✅ 2m+ više SpreadsheetGear Commercial 975 dolara / dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ 1M+ Syncfusion nudi besplatnu Licencu Zajednice za kompanije sa <1M prihoda i ≤5 programera. ⚠️ = Delimična ili nepotvrđena podrška. Besplatna dozvola Zajednice The short version, by scenario: Oštar budžet, pun čitanje/pisanje? → ClosedXML (MIT, zrel, aktivan razvoj) → IronXL or Aspose.Cells Enterprise-grade with premium support? → Aspose.Cells or Syncfusion XlsIO Maximum feature coverage? → ExcelDataReader Read-only, maximum speed? Kontrola niskog nivoa, bez abstrakcije? → OpenXML SDK → NPOI Java port, legacy XLS required? Now let's look at each library in detail. The 12 C# Excel Libraries Worth Knowing in 2026 Svaki profil ispod slijedi istu strukturu: što je biblioteka, kod primjera koji obavlja standardni zadatak (stvoriti radnu svesku, napisati podatke, sačuvati), njegove prave snage i ograničenja, i ko bi trebao da ga koristi. 1. IronXL — The All-in-One Commercial .NET Library IronXL is a commercial .NET Excel library from koji daje prednost jednostavnosti API-ja i implementaciji na više platformi. Čita i piše XLS, XLSX, CSV, TSV i JSON bez potrebe za Microsoft Officeom. Njegov opsežan skup funkcija uključuje i stvaranje i uređivanje Microsoft Excel radnih lista, mogućnost izvoza Excelovih radnih knjiga, rada sa formulama i još mnogo toga. Možete čak dodati formate slika u Excelove radne liste. Mjesečna kadencija oslobađanja – najnovija verzija (2026.2) plovi sa .NET 10 podrškom. Iron Software using IronXL; // Create a new workbook and write data WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet ws = wb.CreateWorkSheet("Sales"); ws["A1"].Value = "Product"; ws["B1"].Value = "Revenue"; ws["C1"].Value = "Date"; ws["A2"].Value = "Widget"; ws["B2"].DoubleValue = 14999.99; ws["C2"].Value = DateTime.Now.ToShortDateString(); // Apply formatting ws["B1:B2"].FormatString = "$#,##0.00"; wb.SaveAs("sales_ironxl.xlsx"); IronXL Izlazak Excel datoteka API koristi WorkBook → WorkSheet → obrazac za adresiranje ćelija koji odražava način na koji programeri razmišljaju o preglednicama. Adresiranje ćelija podržava i A1 notaciju (ws["B2"]) i izraze opsega (ws["A1:C10"]), a svojstvo FormatString prihvaća standardne kode formata programa Excel. Knjižnica automatski obrađuje ponovni izračun formule kada se ćelije uređuju. Strengths: Minimal boilerplate, create, read, and export data in 3-5 lines of code. This makes is a piece of cake to add into your .NET applications Cross-platform: Windows, Linux, macOS, Docker, Azure, AWS Lambda — all tested. Works across different .NET versions Mjesečna izdanja s aktivnim ispravkama grešaka; jednostavnost na nivou API-ja je primarni diferencijator, a ne sirovi prijenos (pogledajte odjeljak Benchmarks za poštene brojeve) Supports XLS (legacy) + XLSX + CSV + TSV + JSON in a unified API Real-world deployment: uses IronXL for nonprofit financial reconciliation, achieving 4× faster payment processing; powers logistics and healthcare Excel automation across Germany Brainycom ThreeB IT Limitations: No chart creation (you can read existing charts, but not generate them programmatically) No pivot table generation Komercijalna dozvola potrebna za proizvodnju ($ 749 / godina za Lite) Smaller community compared to EPPlus or ClosedXML Teams that need a clean API for reading/writing/exporting Excel data across platforms, don't need chart generation, and value professional support and frequent updates. Strong fit for data pipelines, report generation, and CSV/Excel conversion workflows. Best for: 2. - Zajednica omiljeni otišao komercijalni EPPlus EPPlus is one of the most downloaded .NET Excel libraries in history. Originally MIT-licensed, it u verziji 5 (2020). Poslednja besplatna verzija ( ) remains widely used but unmaintained. The commercial version is feature-rich with charts, pivot tables, and a strong formula engine. switched to a commercial Polyform license 4.5.3 on NuGet using OfficeOpenXml; ExcelPackage.License.SetNonCommercialOrganization("My Organization"); using var package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("Sales"); ws.Cells["A1"].Value = "Product"; ws.Cells["B1"].Value = "Revenue"; ws.Cells["C1"].Value = "Date"; ws.Cells["A2"].Value = "Widget"; ws.Cells["B2"].Value = 14999.99; ws.Cells["C2"].Value = DateTime.Now; ws.Cells["C2"].Style.Numberformat.Format = "yyyy-mm-dd"; ws.Cells["B1:B2"].Style.Numberformat.Format = "$#,##0.00"; package.SaveAs(new FileInfo("sales_epplus.xlsx")); Izlaznost EEPlus EPPlus uses a ExcelPackage → Workbook → Worksheets hierarchy that closely mirrors the Excel object model. The Cells property accepts A1-style references, and styling is applied through a nested Style object. Note the license configuration line, EPPlus 5+ requires you to set a license context before any operations. Strengths: Velika zajednica i ekosustav, 80M+ NuGet preuzimanja, opsežna pokrivenost Stack Overflow Charts, pivot tables, conditional formatting, data validation, VBA support Powerful LoadFromCollection<T>() and LoadFromDataTable() for object-to-Excel mapping Mature formula engine with broad function coverage Limitations: Samo XLSX, bez podrške za XLS legacy formate Commercial license required for any commercial use since v5 ($299/year base) Verzija 4.5.3 (posljednja besplatna verzija) nije održana i nedostaje godina ispravki grešaka Može se boriti s memorijom na veoma velikim datotekama (100K+ redova) u nekim konfiguracijama Teams with existing EPPlus investments, projects needing charts/pivot tables on a moderate budget, and developers who value the enormous community knowledge base. Best for: 3. ClosedXML — The Open-Source Developer's Choice for Excel API wraps Microsoft's in a developer-friendly API. MIT-licensed, actively maintained (frequent commits on ), and used by millions. It's the go-to recommendation when developers ask for a free, full-featured Excel library on i .NET forumi zajednice. ClosedXML OpenXML SDK GitHub Stack Overflow using ClosedXML.Excel; using var wb = new XLWorkbook(); var ws = wb.AddWorksheet("Sales"); ws.Cell("A1").Value = "Product"; ws.Cell("B1").Value = "Revenue"; ws.Cell("C1").Value = "Date"; ws.Cell("A2").Value = "Widget"; ws.Cell("B2").Value = 14999.99; ws.Cell("C2").Value = DateTime.Now; ws.Cell("B2").Style.NumberFormat.Format = "$#,##0.00"; wb.SaveAs("sales_closedxml.xlsx"); ClosedXML Output ClosedXML's API is intuitive: XLWorkbook → AddWorksheet → Cell() with string-based addressing. The Style property chain is clean and discoverable via IntelliSense. It builds on top of OpenXML SDK, so it generates spec-compliant .xlsx files. Strengths: MIT licenca, zaista besplatna za svaku upotrebu, uključujući komercijalnu Čista, intuitivna API koja čini OpenXML SDK podnošljivim Aktivni razvoj sa redovnim izdanjima i odgovornim održavateljima Good pivot table support and conditional formatting Large community: 60M+ NuGet downloads Limitations: XLSX only, no XLS legacy format support No chart creation (a frequently requested feature, still unimplemented) Smanjenje performansi sa vrlo velikim skupovima podataka (100K+ redova može biti sporo ili pamćenje intenzivno) No commercial support, community-only via GitHub Issues Projekti otvorenog koda, timovi sa ograničenim budžetom i bilo koji scenarij u kojem je MIT licenciranje potreban. Odličan za mala do srednja skupova podataka u kojima nije potrebna generacija grafikona. Best for: NPOI – Java port koji odbija da umre is the .NET port of , the Java Excel library. It's one of the few free libraries that supports both XLS (BIFF) and XLSX (OOXML) formats. Apache 2.0 licensed. The API reflects its Java heritage, it's more verbose than C#-native alternatives, but it's battle-tested and handles legacy formats that newer libraries can't touch. NPOI Apache posle using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; IWorkbook wb = new XSSFWorkbook(); ISheet ws = wb.CreateSheet("Sales"); IRow headerRow = ws.CreateRow(0); headerRow.CreateCell(0).SetCellValue("Product"); headerRow.CreateCell(1).SetCellValue("Revenue"); headerRow.CreateCell(2).SetCellValue("Date"); IRow dataRow = ws.CreateRow(1); dataRow.CreateCell(0).SetCellValue("Widget"); dataRow.CreateCell(1).SetCellValue(14999.99); dataRow.CreateCell(2).SetCellValue(DateTime.Now.ToShortDateString()); using var fs = new FileStream("sales_npoi.xlsx", FileMode.Create); wb.Write(fs); NPOI Output NPOI zahtijeva eksplicitno stvaranje reda i ćelija putem CreateRow() i CreateCell(), nema adresiranja ćelija zasnovanog na nizu. Za XLS datoteke, zamijenite XSSFWorkbook sa HSSFWorkbook. Dizajn zasnovan na interfejsu (IWorkbook, ISheet, IRow) znači da ista logika koda može ciljati oba formata promjenom jednog konstruktora. Strengths: Apache 2.0 license, free for commercial use Podržava XLS (97-2003) i XLSX, jednu od rijetkih besplatnih biblioteka koje se bave legacy XLS Chart creation support (basic) Rješava Word (.doc/.docx) i PowerPoint osim Excel dokumenata Dokazano na korporativnoj razini – portirano iz Apache POI-a sa desetljećima Java naslijeđa Limitations: Verbose, Java-style API, significantly more boilerplate than C#-native alternatives Performance is generally slower than EPPlus, ClosedXML, or IronXL for equivalent operations Dokumentacija je rijetka i često na kineskom - engleski resursi su doprinos zajednice API može biti neintuitivan za programere koji nisu upoznati s Apache POI Projects that read or write legacy XLS files without a commercial license. Also suitable when you need a single library for Excel + Word + PowerPoint on a zero budget. Best for: must 5. Aspose.Cells — The Enterprise Heavyweight je najfunkcionalnija .NET Excel knjižnica dostupna. Podržava praktički svaku Excel značajku: grafikone, vrtljive tabele, uslovno oblikovanje, validaciju podataka, sparkline, slicers, VBA makroe i više. To je takođe najskuplja opcija. Aspose ga pozicionira kao kompletnu Excel automatizacijsku platformu, a ne samo datoteku I/O biblioteku. Aspose.Cells using Aspose.Cells; Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; ws.Cells["A1"].PutValue("Product"); ws.Cells["B1"].PutValue("Revenue"); ws.Cells["C1"].PutValue("Date"); ws.Cells["A2"].PutValue("Widget"); ws.Cells["B2"].PutValue(14999.99); ws.Cells["C2"].PutValue(DateTime.Now); Style style = wb.CreateStyle(); style.Number = 7; // $#,##0.00 ws.Cells["B2"].SetStyle(style); wb.Save("sales_aspose.xlsx"); Aspose.Cells Izlazak Aspose.Cells uses a Workbook → Worksheets → Cells hierarchy. Data is written with PutValue() rather than direct assignment. Styling requires creating a Style object and applying it, more steps than some competitors, but it provides granular control over every formatting property. Strengths: Najobuhvatnija funkcija postavljena u .NET Excel ekosustavu, ako to Excel može učiniti, Aspose.Cells verovatno podržava Excellent performance on large files, optimized for enterprise-scale batch processing Ogromna podrška za formate: XLSX, XLS, XLSB, XLSM, CSV, ODS, PDF, HTML, slike Excel-to-PDF rendering koji je među najvernijim dostupnim Strong documentation, extensive code samples, and dedicated support team Limitations: Highest price point: Developer Small Business starts at $1,199/year; OEM tiers reach $11,198 API is verbose in places, creating and applying styles is more ceremonial than IronXL or ClosedXML The massive API surface can be overwhelming for simple tasks Teška ovisnost, NuGet paket je velik Enterprise teams with budget for premium tooling, projects requiring advanced features (charts, pivots, sparklines, VBA), and workflows needing high-fidelity . Best for: Excel-to-PDF conversion 6. Syncfusion XlsIO — The Suite Play is part of Syncfusion's massive Essential Studio suite. It offers broad Excel feature coverage and benefits from Syncfusion's cross-platform UI control ecosystem. The free Community License (for companies under $1M revenue, ≤5 developers) makes it accessible to small teams. Uslovi korišćenja Syncfusion Essential XlsIO using Syncfusion.XlsIO; using ExcelEngine excelEngine = new ExcelEngine(); IApplication app = excelEngine.Excel; app.DefaultVersion = ExcelVersion.Xlsx; IWorkbook wb = app.Workbooks.Create(1); IWorksheet ws = wb.Worksheets[0]; ws.Range["A1"].Text = "Product"; ws.Range["B1"].Text = "Revenue"; ws.Range["C1"].Text = "Date"; ws.Range["A2"].Text = "Widget"; ws.Range["B2"].Number = 14999.99; ws.Range["C2"].DateTime = DateTime.Now; ws.Range["B2"].NumberFormat = "$#,##0.00"; wb.SaveAs("sales_syncfusion.xlsx"); Syncfusion XlsIO Output Syncfusion koristi ExcelEngine → IApplication → IWorkbook hijerarhiju koja odražava Excelov COM objektni model. Pristup ćelijama je kroz raspon[] sa zasebnim tipkanim svojstvima (Text, Number, DateTime). Ovaj snažno tipkan pristup hvata tipske greške u vremenu kompilacije, a ne u vremenu rada. Strengths: Feature-rich: Use data source's to create charts, pivot tables, conditional formatting, data validation, template markers, sparklines Besplatna licenca Zajednice za mala preduzeća, pravi diferencijator Excel-to-PDF konverzija uključena Duboka integracija sa kontrolama UI Blazor, MAUI i WPF kompanije Syncfusion Active development with quarterly releases; cross-platform (Windows, Linux, macOS, Docker) Limitations: The Community License has strict eligibility requirements, companies over $1M revenue must purchase Cijene kompletne suite su složene i mogu biti skupe ($ 995/dev/godišnje za Essential Studio) Knjižnica je deo masivne suite, vi ste povlačenje u više zavisnosti nego što je potrebno za Excel-samo rad Vendor lock-in concern: deep Syncfusion ecosystem integration can make migration difficult Teams already using Syncfusion's UI controls, startups qualifying for the free Community License, and projects needing tight integration between Excel processing and Blazor/MAUI front ends. Best for: 7. – Performance-Focused srednji nivo GemBox.Spreadsheet is a commercially licensed .NET component with a compelling free tier (150 rows, 5 sheets). It advertises strong performance numbers — the company claims 1 million rows in under 3.5 seconds with less than 256MB RAM — and supports an unusually broad range of output formats including PDF, XPS, and image rendering. Available on . GemBox.Spreadsheet Izložba NuGet using GemBox.Spreadsheet; SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); var wb = new ExcelFile(); var ws = wb.Worksheets.Add("Sales"); ws.Cells["A1"].Value = "Product"; ws.Cells["B1"].Value = "Revenue"; ws.Cells["C1"].Value = "Date"; ws.Cells["A2"].Value = "Widget"; ws.Cells["B2"].Value = 14999.99; ws.Cells["C2"].Value = DateTime.Now; ws.Cells["B2"].Style.NumberFormat = "$#,##0.00"; wb.Save("sales_gembox.xlsx"); GemBox.Spreadsheet Izlazak GemBox uses ExcelFile → Worksheets → Cells with string-based addressing. The API is clean and similar to ClosedXML's pattern. The free tier key (FREE-LIMITED-KEY) enables evaluation without watermarks — just with row limits. Strengths: Strong claimed performance on large datasets (1M rows, <256MB, <3.5s) PDF, XPS, and image export built in — no separate library needed Grafičke tabele, okretne tabele, uslovno oblikovanje i podrška za validaciju podataka Free tier for small datasets (useful for prototyping) Čista, idiomatski C# API Limitations: Free tier limited to 150 rows and 5 sheets — too restrictive for most real applications Manja zajednica od EPPlus, ClosedXML ili NPOI – manje Stack Overflow odgovora Professional license starts at ~$890 (one-time) — competitive but not cheap Less name recognition — harder to get team buy-in compared to established alternatives Aplikacije osetljive na performanse koje obrađuju velike datoteke, projekte kojima je potreban ugrađeni izvoz PDF-a/slika iz programa Excel i timove koji vrednuju jednokratnu licencu nad pretplatama. Best for: OpenXML SDK – Osnovni sloj provides low-level access to To je ono na čemu su ClosedXML i mnoge druge biblioteke izgrađene. MIT licenciran, održava Microsoft, i daje vam direktnu kontrolu nad XML strukturom .xlsx datoteka. Microsoft's Open XML SDK Office Open XML documents using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet; using var doc = SpreadsheetDocument.Create("sales_openxml.xlsx", SpreadsheetDocumentType.Workbook); var workbookPart = doc.AddWorkbookPart(); workbookPart.Workbook = new Workbook(); var worksheetPart = workbookPart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = new Worksheet(new SheetData()); var sheets = workbookPart.Workbook.AppendChild(new Sheets()); sheets.Append(new Sheet { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sales" }); var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>(); var row = new Row { RowIndex = 1 }; row.Append(new Cell { CellReference = "A1", DataType = CellValues.String, CellValue = new CellValue("Product") }); row.Append(new Cell { CellReference = "B1", DataType = CellValues.String, CellValue = new CellValue("Revenue") }); sheetData.Append(row); workbookPart.Workbook.Save(); OpenXML izlazak Hajde da budemo direktni: to je mnogo koda samo da biste napisali dvije ćelije. OpenXML SDK zahtijeva da ručno konstruirate strukturu XML dokumenta, dijelove radnih knjiga, dijelove radnih lista, podatke o listovima, redove, ćelije, reference ćelija, tipove podataka. Strengths: MIT licensed, maintained by Microsoft, as "official" as it gets Maximum control over document structure, nothing is abstracted away Memorijski efikasan za streaming pisanja (SAX-style pristup dostupan) 100M+ NuGet downloads, the foundational layer many other libraries depend on No third-party risk, it's from Microsoft themselves Limitations: Izuzetno verbalni, jednostavni zadaci zahtijevaju 5-10 puta više koda od bilo koje biblioteke na višem nivou No formula calculation engine, formulas are stored as strings, not evaluated No XLS support, OOXML (.xlsx) only Nema prikladnog adresiranja ćelija, skraćenica za oblikovanje ili pomoćnika za vezivanje podataka Brza krivulja učenja, morate razumjeti OOXML specifikaciju Autori biblioteka grade vlastite Excel abstrakcije, scenarije koji zahtijevaju apsolutnu kontrolu nad strukturom dokumenata, i timovi sa strogim politikama "bez ovisnosti o trećim stranama" koji mogu apsorbirati troškove razvoja. Best for: ExcelDataReader – Lightweight specijalista samo za čitanje radi jednu stvar i radi dobro: čita Excel datoteke. Podržava XLS, XLSX i CSV putem Interfejsa za streaming IDataReader koji je pamćenje-efikasan za velike datoteke. spreadsheets, ovo bi trebalo da bude vaša prva razmatranja. ExcelDataReader read using ExcelDataReader; using System.Data; // Required for .NET Core System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); using var stream = File.Open("sales_data.xlsx", FileMode.Open, FileAccess.Read); using var reader = ExcelReaderFactory.CreateReader(stream); DataSet result = reader.AsDataSet(new ExcelDataSetConfiguration { ConfigureDataTable = _ => new ExcelDataTableConfiguration { UseHeaderRow = true } }); DataTable table = result.Tables[0]; foreach (DataRow row in table.Rows) { Console.WriteLine($"{row["Product"]}: {row["Revenue"]}"); } ExcelDataReader Reading Output ExcelDataReader vraća podatke preko poznatih System.Data sučelja: IDataReader za streaming i DataSet/DataTable za materijalizovane rezultate. UseHeaderRow = istinita konfiguracija promiče prvi red do imena kolona. Strengths: MIT license — free for everything Lightweight: small NuGet package, minimal dependencies Streaming reader — memory-efficient for large files Podržava XLS i XLSX plus CSV DataTable integration makes it easy to pipe data into databases or other systems 70M+ NuGet preuzimanja – dokazana pouzdanost Limitations: — cannot create or modify Excel files Read-only No formatting, styling, charts, or formula evaluation No cell addressing — data access is row/column based only Requires manual encoding provider registration on .NET Core ETL pipelines, data import workflows, migration tools, and any scenario where you need to Excel podatke brzo i jeftino bez ikada pisanje natrag u radnom listu. Best for: read 10. – The eIceBlue Contender Preduzetnik Uslovi korišćenja by eIceBlue is a commercial Excel component with a free version limited to 200 rows and 5 sheets. The commercial version supports the full range of Excel features including charts, pivot tables, and Excel-to-PDF conversion. eIceBlue also offers Word, PDF, and PowerPoint libraries in their Spire.Office bundle. Spire.XLS for .NET using Spire.Xls; Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; ws.Name = "Sales"; ws.Range["A1"].Text = "Product"; ws.Range["B1"].Text = "Revenue"; ws.Range["C1"].Text = "Date"; ws.Range["A2"].Text = "Widget"; ws.Range["B2"].NumberValue = 14999.99; ws.Range["C2"].DateTimeValue = DateTime.Now; ws.Range["B2"].NumberFormat = "$#,##0.00"; wb.SaveToFile("sales_spire.xlsx", ExcelVersion.Version2016); Spire.XLS Output Spire.XLS follows a pattern similar to Syncfusion, Workbook → Worksheet → Range with typed value properties. The SaveToFile method requires specifying the target Excel version explicitly. Strengths: Sveobuhvatni set funkcija: grafikoni, pivotovi, uslovno oblikovanje, enkripcija, digitalni potpis Excel-to-PDF and Excel-to-image conversion built in Free version available (200 rows, 5 sheets), more generous than GemBox's free tier for row count Podrška za XLS i XLSX Dio šire Spire.Office suite Limitations: Limit od 200 serija besplatne verzije je previše restriktivan za većinu proizvodnih upotreba Commercial pricing starts at ~$999/developer, on the higher end Manja prisutnost .NET zajednice u odnosu na Aspose ili Syncfusion Documentation quality is inconsistent, some API areas are poorly documented Java naslijeđe prikazuje u nekim API obrascima Timovi koji procjenjuju komercijalne alternative za Aspose.Cells na različitim cenovnim točkama, i projekti koji već koriste druge komponente Spire.Office. Best for: SpreadsheetLight – Minimalistički je MIT licencirana biblioteka izgrađena na OpenXML SDK. Cilj je da bude "jednostavna" opcija - jednostavna za učenje, laka i dovoljna za uobičajene zadatke tablica. SpreadsheetSvijet using SpreadsheetLight; using var doc = new SLDocument(); doc.SetCellValue("A1", "Product"); doc.SetCellValue("B1", "Revenue"); doc.SetCellValue("C1", "Date"); doc.SetCellValue("A2", "Widget"); doc.SetCellValue("B2", 14999.99); doc.SetCellValue("C2", DateTime.Now.ToShortDateString()); doc.SaveAs("sales_spreadsheetlight.xlsx"); SpreadsheetLight uses a single SLDocument class as the entry point. The SetCellValue method is overloaded for different types. It's arguably the simplest API in this comparison — but simplicity comes at a cost. Strengths: MIT licenciran, zaista besplatan Extremely simple API, lowest learning curve in this roundup Lightweight, minimal dependencies (just OpenXML SDK) Basic chart support (more than ClosedXML offers) Dovoljno dobar za jednostavne zadatke izveštavanja i izvoza podataka Limitations: , infrequent updates, last major activity was years ago Appears unmaintained .NET Framework fokusiran, .NET Core/.NET 8+ kompatibilnost je neizvesna XLSX only, no XLS support Sastav ograničenih značajki u poređenju sa aktivnim alternativama Mala zajednica, ograničena pokrivenost Stack Overflow i resursi za rješavanje problema Simple, one-off spreadsheet generation tasks in .NET Framework projects where you need something lightweight and free. For this use case, ClosedXML might actually be the better choice given its active maintenance. Best for: SpreadsheetGear – Enterprise veteran has been in the .NET Excel space for over a decade. It positions itself as the high-performance, Excel-compatible calculation engine for enterprise applications. The library includes charting, a formula engine with 450+ functions, and WinForms/WPF spreadsheet controls for building interactive Excel-like UIs. Širenje using SpreadsheetGear; IWorkbook wb = Factory.GetWorkbook(); IWorksheet ws = wb.Worksheets["Sheet1"]; IRange cells = ws.Cells; cells["A1"].Value = "Product"; cells["B1"].Value = "Revenue"; cells["C1"].Value = "Date"; cells["A2"].Value = "Widget"; cells["B2"].Value = 14999.99; cells["C2"].Value = DateTime.Now; cells["B2"].NumberFormat = "$#,##0.00"; wb.SaveAs("sales_spreadsheetgear.xlsx", FileFormat.OpenXMLWorkbook); SpreadsheetGear Output SpreadsheetGear-ov API usko odražava Excel VBA objektni model, programeri koji su napisali Excel makroe odmah će se osećati kao kod kuće. Strengths: 450+ built-in functions, one of the most complete formula engines in any .NET library Izračuni visokih performansi optimizovani za scenarije financijskog modeliranja WinForms i WPF kontroleri korisničkog interfejsa za izgradnju interaktivnih interfejsa poput Excela Excellent Excel compatibility, aims for pixel-perfect rendering Long track record, production-proven in enterprise environments Limitations: Viša cena (~ $ 975 / developer) sa manje vidljivim cenama, mora kontaktirati prodaju Manja zajednica programera od EPPlus, ClosedXML ili NPOI Less modern API feel compared to newer entrants Limited presence on modern community platforms (HackerNoon, Dev.to, etc.) No free tier or community edition Financial applications needing a powerful calculation engine, desktop applications requiring embedded spreadsheet UI controls, and enterprise environments where Excel VBA migration is the use case. Best for: Feature Showdown: What Can Each Library Actually Do? Beyond the basics of reading and writing cells, Excel libraries differ dramatically in their advanced feature support. Here's what we found when we tested features that matter in production applications. File Format Support Library XLSX XLS XLSB XLSM CSV TSV JSON ODS PDF Export IronXL ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ❌ EPPlus ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ClosedXML ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ NPOI ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ OpenXML SDK ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ExcelDataReader ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ SpreadsheetLight ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ SpreadsheetGear ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ Ironija ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ❌ EPPlus ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ClosedXML ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ Posle ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfuziju ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ OpenXML SDK ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ExcelDataReader ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Uslovi korišćenja ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ SpreadsheetLight ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Širenje ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ The format support gap is significant. If you need za besplatno, NPOI je vaša jedina stvarna opcija. , gledate Aspose.Cells, Syncfusion, GemBox, Spire.XLS, ili SpreadsheetGear, sve komercijalne. IronXL snaga ovdje je ujedinjeni API za XLSX + XLS + CSV + TSV + JSON, praktična kombinacija za rad na podatkovnom kanalu. XLS legacy support PDF export from Excel Charts, Pivot Tables & Advanced Features Library Charts Pivot Tables Cond. Formatting Data Validation Images Formula Engine IronXL ❌ ❌ ✅ ✅ ✅ ✅ (auto-recalc) EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ❌ ✅ ✅ ✅ ✅ ✅ NPOI ✅ (basic) ❌ ✅ ✅ ✅ ✅ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK ✅ (manual XML) ✅ (manual XML) ✅ (manual XML) ✅ (manual XML) ✅ ❌ ExcelDataReader ❌ ❌ ❌ ❌ ❌ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight ✅ (basic) ❌ ✅ ✅ ✅ ✅ SpreadsheetGear ✅ ❌ ✅ ✅ ✅ ✅ (450+ functions) IronXL ❌ ❌ ✅ ✅ ✅ ✅ (auto-povratak) EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ❌ ✅ ✅ ✅ ✅ ✅ NPOI ✅ (osnovno) ❌ ✅ ✅ ✅ ✅ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ Sinfuziju ✅ ✅ ✅ ✅ ✅ ✅ Korišćenje ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK aplikacije ✅ (manual XML) ✅ (manualni XML) ✅ (manualni XML) ✅ (manual XML) ✅ ❌ ExcelDataReader ❌ ❌ ❌ ❌ ❌ ❌ Uslovi korišćenja ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetSvijet ✅ (osnovno) ❌ ✅ ✅ ✅ ✅ Širenje ✅ ❌ ✅ ✅ ✅ ✅ (450+ funkcija) The tradeoff here is clear. If you need , you need EPPlus, Aspose.Cells, Syncfusion, GemBox, or Spire.XLS. IronXL and ClosedXML both lack chart creation — an honest limitation worth acknowledging. For read/write data work without charts, both offer cleaner APIs than the chart-capable alternatives. chart and pivot table creation Učinak: Benchmark rezultati u realnom svetu poslovanja Izjave o performansi bez metodologije su marketing. Evo kako smo strukturirali naše testove, a rezultati će vas verovatno iznenaditi. Metodologija Mi smo pokrenuli standardizovani paket referentnih točaka u 15 biblioteka (naša osnovna 12 plus , , and as bonus contenders). Rather than a single synthetic task, we tested four real-world operations that mirror what developers actually build with Excel libraries: SpreadCheetah Minijaturni Brzina : Create a 12-month statement workbook with formulas and formatting Financial Report Generation Pretraga zaliha: Izgradite tablicu za praćenje od 500 stavki, 3 skladišta s križnim referencama : Process and write 10,000 transactions with aggregation Sales Data Analysis Obrađivanje plate zaposlenika: Generirajte radnu svesku plate za 250 zaposlenih sa izračunanim poljima Svaki test je izmjerio vreme izvršenja zidnog sata (ms) i vrhunsku memoriju (MB). Testovi su pokrenuti na .NET 8 s višestrukim iteracijama; mi izveštavamo o zabilježenim vrednostima iz našeg benchmarka. Prijavljuju se samo testovi koji su uspješno završeni, biblioteke koje nisu uspjele u određenoj operaciji isključene su iz te tabele umjesto da budu kažnjene. Finansijski izveštaji (12 mesečnih izveštaja) Rank Library Time (ms) Memory (MB) 1 SpreadCheetah 2.9 0.2 2 DevExpress 53.2 4.5 3 Aspose.Cells 55.5 0.25 4 Spire.XLS 80.3 1.2 5 OfficeIMO 257.6 2.1 6 IronXL 498.1 4.2 1 SpreadCheetah 2.9 0.2 2 DevExpress 53.2 4.5 3 Struktura. ćelije 55.5 0.25 4 Spire.XLS 80.3 1.2 5 OfficeIMO 257.6 2.1 6 IronXL 498.1 4.2 SpreadCheetah je 2.9ms je iznenađujuće, to je samo pisanje, samo napred streaming biblioteka dizajnirana eksplicitno za maksimalni prijenos. On žrtvuje API udobnost (bez slučajnog pristupa ćelije, bez čitanja) za sirovu brzinu. Za čistu generaciju izveštaja gde znate izlaznu strukturu unapred, to je u osnovi nepobediv. Aspose.Cells i DevExpress klaster blizu u rasponu od 53-56ms, što predstavlja vrh nivo među punim funkcijama biblioteke. IronXL sledi ovde na 498ms. Za jednokratni mesečni izveštaj, to je neprimetno za krajnjeg korisnika. Za batni posao koji generira hiljade izvješća, to postaje razmatranje, a SpreadCheetah ili Aspose.Cells bi bio bolji izbor za to specifično radno opterećenje. Inventory Tracking (500 Items, 3 Warehouses) Rank Library Time (ms) Memory (MB) 1 EPPlus 51.2 2.9 2 ExcelMapper 54.1 4.9 3 SpreadCheetah 56.3 2.1 4 Aspose.Cells 136.5 2.4 5 Spire.XLS 183.2 1.4 6 DevExpress 451.7 5.0 7 IronXL 1,344.5 18.7 8 OfficeIMO 16,659.5 14.4 1 EPPlus 51.2 2.9 2 Izbornik 54.1 4.9 3 SpreadCheetah 56.3 2.1 4 Aspose.Cells 136.5 2.4 5 Uslovi korišćenja 183.2 1.4 6 DevExpress 451.7 5.0 7 IronXL 1,344.5 18.7 8 OfficeIMO Uslovi korišćenja 14.4 EPPlus dominates this mid-complexity operation, followed closely by SpreadCheetah and ExcelMapper. The memory numbers tell an important story: Spire.XLS achieves competitive speed at just 1.4MB, the most memory-efficient result for this test. IronXL's 18.7MB footprint at rank 7 reflects its DOM-based architecture loading the full document model into memory. That said, 1.3 seconds for a 500-item inventory workbook is perfectly acceptable for interactive use, it's the kind of overhead you optimize only when it shows up in profiling. Analiza podataka o prodaji (10 000 transakcija) Ovo je najteži test, 10.000 redova sa agregiranjem. Odvaja biblioteke izgrađene za skalu od onih optimiziranih za praktičnost. Rank Library Time (ms) Memory (MB) 1 CsvHelper 140.3 9.3 2 ClosedXML 262.5 16.4 3 SpreadCheetah 289.7 15.9 4 FastExcel 346.7 13.8 5 MiniExcel 638.3 17.7 6 EPPlus 671.0 21.3 7 Aspose.Cells 696.5 15.3 8 NPOI 1,930.4 35.0 9 Spire.XLS 2,015.5 26.8 10 DevExpress 4,860.6 25.0 11 IronXL 11,322.9 80.9 1 Pomoć 140.3 9.3 2 Završetak 262.5 16.4 3 Širenje 289.7 15.9 4 Brzina 346.7 13.8 5 Minijaturni 638.3 17.7 6 EPPlus 671.0 21.3 7 Struktura. ćelije 696.5 15.3 8 Posle 1,930.4 35.0 9 Uslovi korišćenja 2,015.5 26.8 10 Preduzetništvo Članak 8606 25.0 11 IronXL 11,322.9 80.9 Budimo iskreni: IronXL završava posljednji u ovom testu, a razlika je značajna. Na 11,3 sekundi i 80,9 MB, to je 80× sporije od CsvHelper i 43× sporije od ClosedXML. CsvHelper pobjeđuje jer je to namjenski izgrađen CSV analizator – ne punu Excel biblioteku – i izbegava preopterećenje OOXML dokumenta konstrukcije u potpunosti. Praktična implikacija: ako gradite podatkovni kanal koji obrađuje više od 10.000 skupova podataka o transakcijama više puta, IronXL nije pravi alat za taj specifičan posao. EPPlus, ClosedXML, ili streaming biblioteka kao što je SpreadCheetah će vam služiti dramatično bolje. IronXL snage - jednostavnost API-ja, cross-format podrška, profesionalna podrška - pokazuju se u drugim dimenzijama ove evaluacije, a ne u sirovom prodoru na skali. Obrada plate zaposlenih (250 zaposlenih) Samo tri biblioteke su uspješno završile ovaj složen, višeslojni rad: Rank Library Time (ms) Memory (MB) 1 Aspose.Cells 404.0 3.8 2 IronXL 2,893.0 12.5 3 Spire.XLS 4,323.0 N/A* 1 Aspose.Cells 404.0 3.8 2 IronXL 2,893.0 12.5 3 Uslovi korišćenja 4,323.0 N / A * Spire.XLS reported negative memory measurement — likely a measurement artifact. Većina biblioteka ili nije pokušala ovaj test ili ga nije dovršila. Činjenica da su samo tri biblioteke uspele govori o složenosti višeslojnih, formula-teških radnih knjiga s izračunanim poljima. Aspose.Cells vodi uvjerljivo. IronXL završava drugi, sporije, ali je uspješno dovršio operaciju i proizvela ispravan ishod, koji većina konkurenata nije mogla upravljati. Šta nam referentni markeri govore (i šta ne govore) Three patterns emerge from this data. First, SpreadCheetah se pojavljuje u prvih 3 u svakom testu koji je ušao, ali ne može čitati datoteke, ne može učiniti slučajni pristup ćelijama i ne može primijeniti složeno oblikovanje nakon pisanja. Aspose.Cells, EPPlus, i Spire.XLS općenito trgovanje pozicije ovisno o vrsti operacije. . Its DOM-based architecture and high-level API abstractions introduce overhead that shows up at scale, the tradeoff for that clean 3-line API you saw in the introduction. streaming/write-only libraries dominate speed benchmarks full-featured commercial libraries cluster together IronXL's performance profile favors simplicity over speed In practice, most business applications process well under 10,000 rows. A monthly sales report with 500 rows, a quarterly export with 2,000 transactions, an inventory snapshot with a few hundred SKUs, these workloads run comfortably on any library in this comparison, IronXL included. The performance differences become decision-relevant only at scale, and even then, the right response is often to choose the right tool for each specific job rather than forcing a single library to handle everything. Cross-Platform Support: Will It Run on Linux, Docker, and Cloud? Ako vaša aplikacija raspoređuje na Docker kontejnere, Azure App Service na Linux-u ili AWS Lambda, vaša Excel knjižnica mora raditi bez ovisnosti specifičnih za Windows. Library Windows Linux macOS Docker Azure App Svc AWS Lambda Blazor WASM IronXL ✅ ✅ ✅ ✅ ✅ ✅ ❌ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ❌ ClosedXML ✅ ✅ ✅ ✅ ✅ ✅ ❌ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ❌ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ (server) GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ⚠️ ❌ SpreadsheetLight ✅ ⚠️ ⚠️ ⚠️ ⚠️ ❌ ❌ SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ❌ Ironija ✅ ✅ ✅ ✅ ✅ ✅ ❌ Epilog ✅ ✅ ✅ ✅ ✅ ✅ ❌ Završetak ✅ ✅ ✅ ✅ ✅ ✅ ❌ Posle ✅ ✅ ✅ ✅ ✅ ✅ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ❌ Sinfuziju ✅ ✅ ✅ ✅ ✅ ✅ (Službenik) GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ OpenXML SDK aplikacije ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ❌ Uslovi korišćenja ✅ ✅ ✅ ✅ ✅ ️ ❌ SpreadsheetSvijet ✅ ⚠️ ️ ⚠️ ️ ❌ ❌ SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ❌ Dobra vijest: većina modernih, aktivno održavanih biblioteka radi na različitim platformama na .NET 8+. SpreadsheetLight je najekstremniji, a njegov fokus na .NET Framework čini da razmjena na različitim platformama nije pouzdana. (the rendering engine is too heavy), but server-side Blazor works fine with all of them. Klijentske strane : Sve biblioteke koje su ciljane ili .NET 6+ radi u minimalnim Docker kontejnerima ( Nema native OS zavisnosti su potrebne, za razliku od PDF biblioteke, Excel biblioteke su čista upravljanog koda. Docker consideration .NET Standard 2.0 mcr.microsoft.com/dotnet/tržište rada: 8.0 Licenciranje i cijena: Koliko će to zapravo koštati vaš tim? Licenciranje je tamo gde se Excel biblioteke dramatično razlikuju. Hajde da razbijemo stvarne troškove. Opcije otvorenog koda Library License Commercial Use Gotchas ClosedXML MIT ✅ Free No commercial support; community-only fixes NPOI Apache 2.0 ✅ Free Must include license notice; no commercial support OpenXML SDK MIT ✅ Free Microsoft-maintained, but no dedicated Excel support ExcelDataReader MIT ✅ Free Read-only; you'll need another library for writes SpreadsheetLight MIT ✅ Free Appears unmaintained; risk of unpatched bugs Završetak MIT Besplatno No commercial support; community-only fixes Posle Uslovi korišćenja 2.0 Besplatno Mora sadržavati obaveštenje o licenci; nema komercijalne podrške OpenXML SDK aplikacije sa Besplatno Microsoft održava, ali nema posebnu podršku za Excel ExcelDataReader sa Besplatno Samo za čitanje; Trebat će vam još jedna biblioteka za pisanje SpreadsheetSvijet sa Besplatno Pojavljuje se nezaštićeno; rizik od nezaštićenih bugova "Bezplatne" biblioteke nose skrivene troškove: nema podrške koju podržava SLA, nema zajamčenih vremenskih granica za popravak i inženjersko vrijeme koje vaš tim troši na rješavanje problema koje bi komercijalni dobavljač rješavao. Za hobi projekte i prototipe, ti troškovi su prihvatljivi. i oboje dozvoljavaju neograničeno komercijalno korištenje, razlika je u tome što pruža u odnosu na ono što prodavac garantuje. Sa dozvolom Apache 2.0 license community Commercial Options Compared Library Entry Price Per-Dev Pricing Free Tier OEM/SaaS Extra Support Included IronXL $749/yr (Lite) $749–$2,999/yr 30-day trial Yes (add-on) ✅ 24/5 engineering EPPlus $299/yr (base) $299–$599/yr v4.5.3 (outdated) Yes (add-on) ✅ Email Aspose.Cells $1,199/yr $1,199–$11,198/yr Eval (watermark) Yes (expensive) ✅ Priority Syncfusion $0–$995/yr Per-suite Community License* Included in suite ✅ (paid tiers) GemBox ~$890 (one-time) Per-developer 150 rows free One-time ✅ 12 months Spire.XLS ~$999/dev Per-developer 200 rows/5 sheets Add-on ✅ Email SpreadsheetGear ~$975/dev Per-developer None Contact sales ✅ Email Ironija Uslovi korišćenja: 749 € (Lite) Uslovi korišćenja: $ 749 – $ 2,999 / godišnje Tridesetodnevno suđenje Uslovi korišćenja (add-on) ✅ 24/5 inženjerstvo Epilog $299/yr (base) Od 299 do 599 dolara godišnje V4.5.3 (za sada zastarjeli) Yes (add-on) E-mail poruke Struktura. ćelije 1.199 dolara godišnje Od 1.199 do 11.198 dolara godišnje Eval (watermark) Yes (expensive) Prioriteti Syncfusion 0 – 995 dolara godišnje Posle Zajednička dozvola* Uključeno u suite ✅ (plaćanje po osobi) Korišćenje ~ $ 890 (jednom) Per-razvojnik 150 rubalja besplatno Jednokratno 12 meseci Uslovi korišćenja ~999 dolara/dev Per-razvojnik 200 redova / 5 listova Add-on E-mail poruke Širenje ~975 dolara/dev Per-razvojnik Niko Kontakt Prodaja E-mail poruke Licenca Zajednice Syncfusion: besplatna za kompanije sa bruto godišnjim prihodom od < 1M $ i ≤ 5 programera. zaslužuje napomenu. EPPlus je bio licenciran MIT-om kroz verziju 4.5.3 (2018). Verzija 5 prešla je na Polyform Noncommercial, a kasnije verzije zahtijevaju komercijalnu licencu za bilo koju komercijalnu upotrebu. Mnogi nasljedni projekti još uvek upućuju na 4.5.3, ako ste vi, znajte da radite na verziji bez održavanja s neispravljenim greškama. Migracija na EPPlus 7+ zahtijeva kupnju licence; migracija na ClosedXML ili IronXL je alternativni put. The EPPlus licensing story IronXL je Scale od pojedinih programera ($749/yr Lite) do timova i preduzeća. Iron Suite – svih 10 Iron Software proizvoda u paketu – nudi značajne uštede ako takođe trebate PDF, OCR ili funkcije čarobnog koda. Svaka licenca uključuje 30-dnevnu garanciju za povrat novca i inženjersku direktnu podršku. Licenciranje trećih strana Kompatibilnost .NET: Od okvira do .NET 10 .NET ekosustav je rascjepkan u različitim verzijama, a ne svaka biblioteka je držala korak. Library .NET Framework 4.x .NET Core 3.1 .NET 6 .NET 8 (LTS) .NET 9 .NET 10 .NET Standard 2.0 IronXL ✅ ✅ ✅ ✅ ✅ ✅ ✅ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ✅ ✅ ✅ ✅ ✅ ✅ ✅ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ✅ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ✅ Spire.XLS ✅ ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight ✅ ⚠️ ⚠️ ⚠️ ❌ ❌ ❌ SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ✅ Ironija ✅ ✅ ✅ ✅ ✅ ✅ ✅ Epilog ✅ ✅ ✅ ✅ ✅ ✅ ✅ Završetak ✅ ✅ ✅ ✅ ✅ ✅ ✅ Posle ✅ ✅ ✅ ✅ ✅ ✅ ✅ Struktura. ćelije ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfuziju ✅ ✅ ✅ ✅ ✅ ✅ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK aplikacije ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ✅ Uslovi korišćenja ✅ ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetSvijet ✅ ⚠️ ️ ️ ❌ ❌ ❌ Širenje ✅ ✅ ✅ ✅ ✅ ✅ ✅ Svaka druga biblioteka ima za cilj .NET Standard 2.0 (koji obuhvaća .NET Framework 4.6.1+ i sve .NET Core/.NET 5+ verzije) ili pruža multi-targeted pakete. Sve 11 aktivno održanih biblioteka u potpunosti ga podržavaju. For new projects in 2026, target . .NET 8 (LTS) Uslovi korišćenja .NET 8 (LTS) IronXL isporučuje mesečne ažuriranja. EPPlus, Aspose.Cells i Syncfusion izlaze tromjesečno. ClosedXML i NPOI imaju nepravilna, ali česta izdanja zasnovana na zajednici. SpreadsheetLight nije imao značajnu ažuriranje godinama, crvenu zastavu za dugoročno usvajanje. Release cadence as a longevity signal: Migracija iz programa Excel Interop – zajednička polazna tačka Mnoge ekipe dolaze do ove usporedbe jer se odmaknu od Microsoft.Office.Interop.Excel. Ako ste vi, evo brzog playbooka. Interop zahtijeva da Office bude instaliran na svakoj mašini koja pokreće vaš kod, uključujući i servere. To je bilo prihvatljivo na jednom Windows Serveru, ali to prekida trenutak kada kontejnerizujete, skalirate horizontalno ili distribuirate na Linux. Uzorak migracije je jednostavan bez obzira na to koju biblioteku izaberete: // Step 1: Remove COM references // Delete: Microsoft.Office.Interop.Excel references from your .csproj // Step 2: Install replacement via NuGet // PM> Install-Package IronXL.Excel (or EPPlus, ClosedXML, etc.) // Step 3: Replace Interop patterns // Interop: xlApp.Workbooks.Add() → IronXL: WorkBook.Create() // Interop: ws.Cells[1,1] = value → IronXL: ws["A1"].Value = value // Interop: wb.SaveAs(path) → IronXL: wb.SaveAs(path) // Step 4: Remove COM cleanup code // Delete: Marshal.ReleaseComObject() calls — no longer needed Najveća pobeda nije samo raspodjela na više platformi, već uklanjanje glavobolja COM čišćenja. Nema više siročadi EXCEL.EXE procesa, nema više Marshal.ReleaseComObject() poziva, nema više ispuštanja memorije iz neobjavljenih COM referencija. Svaka biblioteka u ovom usporedbi upravlja svojim resursima putem standardnih .NET IDisposable uzoraka. Koja C# Excel knjižnica je prava za vaš projekat? Nakon testiranja svih 12 biblioteka, evo našeg iskrenog vodiča organiziranog po scenariju. Nećemo se pretvarati da je IronXL najbolji izbor za svaku situaciju, nije. Najbolje za budžetski svesne projekte je jasan pobednik za timove kojima su potrebne potpune sposobnosti čitanja/pisanja na nultom budžetu. MIT licenca, aktivni razvoj, intuitivni API. Kompromis: nema grafikona, a performanse degradiraju iznad 50K redova. je runner-up, pogotovo ako vam je potrebna podrška za XLS legacy. ClosedXML NPOI Najbolje za enterprise aplikacije ili , ovisno o vašim potrebama. IronXL nudi čistiji API i nižu cijenu kada grafikoni i pivotovi nisu potrebni, odličan je u radu na podatkovnim kanalima, generaciji izveštaja i konverziji u križnim formatima. uz IronPDF i IronOCR za njihovu digitalnu transformaciju. Aspose.Cells je pravi izbor kada vam je potrebna svaka Excel značajka pod suncem i budžet nije ograničenje. IronXL Aspose.Cells RuralCo integrisani IronXL Najbolje za visoke performanse / velike skupove podataka bio je izuzetan izvođač u našim referentnim kriterijima, dosljedno top 3 u svakoj operaciji, sa zapanjujućim 2.9ms za generaciju finansijskih izveštaja. To je samo za pisanje i samo za unapređenje, ali ako se to uklapa u vaš slučaj upotrebe, ništa drugo ne dolazi blizu. i dosljedno postavljen na vrhu nivoa. Za samo čitanje visokih performansi unosa, sa svojim streaming IDataReader sučelje je neusporediva. SpreadCheetah Aspose.Cells EPPlus ExcelDataReader Najbolji scenariji za samo čitanje To je MIT licenciran, lagan, brz, i integrira nativno sa System.Data.DataTable. Ako samo treba da unese podatke tablica, dodavanje punu čitanje / pisanje biblioteke je nepotrebno nadglavlje. ExcelDataReader Najbolje za maksimalnu pokrivenost ili Podržava grafike, pivotne tabele, sparkline, uslovno oblikovanje, potvrđivanje podataka, VBA i izvoz PDF-a. Besplatna Licenca Zajednice kompanije Syncfusion omogućava malim timovima pristup korporativnim funkcijama bez troškova, provjerite da li ste kvalificirani. Aspose.Cells Syncfusion XlsIO Najbolje za razvojno iskustvo ili nude najintuitivnije API-je uz najmanje boilerplate. Oba vam omogućuju da pređete iz Install-Package na radnu Excel datoteku u manje od 5 redova koda. IronXL dodaje podršku prekrižnog formata (XLS + XLSX + CSV + JSON) i profesionalnu podršku; ClosedXML dodaje MIT licenciranje i veću zajednicu. IronXL ClosedXML Čitanje Excel datoteke: Druga polovina jednadžbe Većina bibliotekarskih evaluacija fokusira se na Excel datoteke, ali mnoge aplikacije za proizvodnju troše više vremena na čitanje. Evo kako se iskustvo čitanja uspoređuje u četiri popularne biblioteke, a sve obavlja isti zadatak: učitavanje postojeće Excel datoteke, iteracija kroz redove i izvlačenje tipkanih podataka. pisanje // ExcelDataReader — streaming, read-only, lowest overhead using var stream = File.Open("report.xlsx", FileMode.Open, FileAccess.Read); using var reader = ExcelReaderFactory.CreateReader(stream); while (reader.Read()) { string product = reader.GetString(0); double revenue = reader.GetDouble(1); } // IronXL — concise cell-addressing syntax WorkBook wb = WorkBook.Load("report.xlsx"); WorkSheet ws = wb.DefaultWorkSheet; foreach (var row in ws.Rows.Skip(1)) // skip header { string product = row.Columns[0].StringValue; double revenue = row.Columns[1].DoubleValue; } // ClosedXML — similar pattern, IXLRow interface using var wb = new XLWorkbook("report.xlsx"); var ws = wb.Worksheet(1); foreach (var row in ws.RowsUsed().Skip(1)) { string product = row.Cell(1).GetString(); double revenue = row.Cell(2).GetDouble(); } // EPPlus — row/column indexed access using var package = new ExcelPackage(new FileInfo("report.xlsx")); var ws = package.Workbook.Worksheets[0]; for (int r = 2; r <= ws.Dimension.End.Row; r++) { string product = ws.Cells[r, 1].GetValue<string>(); double revenue = ws.Cells[r, 2].GetValue<double>(); } ExcelDataReader koristi IDataReader uzorak samo napred, ne možete skočiti u određenu ćeliju ili ići nazad. To je najbrža i najlakša opcija za sekvencijalno čitanje. IronXL i ClosedXML nude foreach preko redova sa tipkanim pristup ćelije, iako se njihova sintaksa razlikuje. EPPlus koristi čitavo-indeksirani red/kolumna adresiranje, što je verbose ali eksplicitno. Sve četiri pristupa rade, izbor dolazi do toga da li vam je potreban slučajni pristup (IronXL, ClosedXML, EPPlus) ili samo sekvencijalni streaming (ExcelDataReader). Čestitke: Knjižnice koje vredi pogledati Naš test referentne vrednosti pokazao je tri biblioteke koje nisu u našoj osnovnoj 12, ali zaslužuju pažnju. je samo pisanje, samo napredovanje streaming biblioteka koja je dominirala naše brzine reference, 2.9ms za generiranje finansijskih izveštaja, dosljedno top 3 u svakom testu. Ako generirate poznate strukturu izveštaja na velikom volumenu i ne treba da čitate ili slučajno pristup ćelije, SpreadCheetah je specijalizirani alat vrijedi procjenjivati. Širenje Širenje usredotočuje se na čitanje i pisanje sa niskom količinom memorije koristeći streaming. Nalazi se na 5. mjestu u analizi podataka o prodaji (638ms, 17.7MB), konkurirajući EPPlus i Aspose.Cells. Njegov API je nekonvencionalan (teška upotreba anonimnih tipova i rečnika), ali je MIT-ov licenciran i aktivno održavan. Posebno koristan za okruženja ograničena memorijom kao što je Azure Functions. MiniExcel Minijaturni je lagani XLSX čitač / pisač koji je na 4. mjestu u analizi podataka o prodaji (347ms, 13.8MB). Manje je poznat, ali pruža čvrste performanse za svoj minimalni otisak. Vrijedi razmotriti ako želite brzu opciju niske ovisnosti. Brzina Brzina Common Gotchas: Pitfalls Every Developer Hits Nakon što smo radili sa svih 12 biblioteka (i tri bonus natjecatelja), sastavili smo probleme koji najčešće dolaze do programera. Uslovi korišćenja na .NET Core ExcelDataReader, NPOI i nekoliko drugih biblioteka zahtijevaju da registrujete provajder kodiranja stranica pre nego što pročitate XLS (binarne) datoteke na .NET Core: // Add this ONCE at application startup — before any Excel operations System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); Bez ove linije, dobićete NotSupportedException o kodiranju 1252. To utječe samo na XLS (ne XLSX), samo na .NET Core/.NET 5+, a poruka o grešci ne ukazuje jasno na rešenje. Uslovi korišćenja preko biblioteka Excel pohranjuje datume kao brojeve u plutajućim točkama (datumi od 1. siječnja 1900. godine). Svaka biblioteka pretvara ove datume u DateTime na malo drugačiji način, a slučajevi granica oko vremenskih zona, , i null datumi će vas ugrizati ako niste oprezni. Naša preporuka: uvek potvrdite datum okruglih putovanja (pisati → sačuvati → ponovno učitati) sa svojom specifičnom bibliotekom prije nego što poverite rukovanju datumom u proizvodnji. 1900 skok godine bug Memorijska curenja iz neodređenih radnih knjiga Nekoliko knjižnica implementira IDisposable, ClosedXML, EPPlus, SpreadsheetLight i OpenXML SDK među njima. Zaboravljanje upotrebe izjava može uzrokovati curenje memorije koje se pojavljuje samo pod opterećenjem. IronXL, NPOI i Aspose.Cells drugačije rukuju čišćenjem (finalizeri ili eksplicitne metode Close()). Najsigurniji uzorak u svim knjižnicama: // Always wrap in using — even if the library doesn't strictly require it using var wb = /* load or create workbook */; // ... work with workbook ... // Disposal happens automatically at scope exit Kontekstni zahtev za EPPlus licencu EPPlus 5+ će baciti LicenseException na prvi API poziv ako niste postavili kontekst licencije. // Required before ANY EPPlus operations in v5+ ExcelPackage.License.SetNonCommercialOrganization("Org Name"); // or: ExcelPackage.License.SetLicenseKey("your-key"); Veliki fajl OOM na 32-bitnim procesima Ako vaša aplikacija radi kao 32-bitni proces (proverite IntPtr.Size == 4), DOM-based biblioteke će pogoditi OutOfMemoryException mnogo ranije, često oko 20.000-30.000 redova ovisno o broju kolona. Ovo tiho utječe na aplikacije koje rade pod IIS sa "Omogućavanje 32-bitnih aplikacija" postavljen na istinu, što je podrazumevano na mnogim nasljednim serverima. Šta učiniti sledeće Ekosistem biblioteke .NET Excel je zdrav, konkurentan i aktivno se razvija. Ne postoji jedna "najbolja" biblioteka, samo najbolja biblioteka za Vaš projekat, vaš budžet i cilj implementacije. Vaš Naša preporuka: izaberite 2-3 kandidata iz ove poređenja, instalirajte ih putem NuGeta i izgradite mali prototip protiv vaših stvarnih podataka. Primeri kodova iznad daju vam dosljedan početni zadatak za procjenu ergonomije API-ja od glave do glave. Obratite pažnju na to kako svaka biblioteka rukuje krajnji slučajevi, spajane ćelije, formule, velike datoteke, specifični zahtevi za oblikovanje, jer se tu pojavljuju prave razlike. Vaš Za IronXL posebno, na U pitanju je i osigurati radne uzorke koji pokrivaju najčešće scenarije. omogućuje vam da testirate u proizvodnji bez vodene oznake. Početak dokumentacije Kodeks primjera Tutoriali Besplatan 30-dnevni probni proces Mi ćemo ažurirati ovu usporedbu kako biblioteke izdaju nove verzije - .NET ekosistem se brzo kreće, a mi želimo da to ostane resurs koji smo željeli da imamo. Ekipe koje razmatraju je najbolji način za procjenu da li se uklapa u vaš stvarni tok posla. Testirajte ga sa svojim radnim listovima, formulama, oblikovanjem i okruženjem za ugradnju da biste videli kako funkcioniše u praksi prije nego što nastavite sa proizvodnom dozvolom. IronXL, besplatna 30-dnevna probna verzija Često postavljana pitanja Ovo su pitanja koja najčešće vidimo od programera koji procjenjuju C# Excel biblioteke. Svaki odgovor se temelji na našem testiranju i iskustvu u proizvodnji. How do I create an Excel file in C# without Microsoft Office installed? Svaka biblioteka u ovoj usporedbi, osim Microsoft.Office.Interop.Excel (koju smo namjerno isključili) radi bez Officea. U pitanju je U pitanju je , itd. – i možete kreirati, čitati i pisati XLSX datoteke na mašinama bez Office instalacije, uključujući Linux servere i Docker kontejnere. Uređaj za instalaciju IronXL.Excel Instalacija paketa EPPlus Instalacija paketa ClosedXML Is EPPlus still free for commercial use? EPPlus verzija 5 (izdana 2020. godine) i kasnije zahtijevaju komercijalnu licencu za bilo koju komercijalnu upotrebu. Posljednja besplatna verzija je 4.5.3, koja nije održana i nedostaje godinama popravaka grešaka i sigurnosnih popravaka. Ako vam je potrebna besplatna alternativa sa sličnim mogućnostima, ClosedXML (MIT licenca) je najdirektniji migracijski put. What's the fastest .NET Excel library for large datasets? U našim referentnim kriterijima za pisanje, GemBox.Spreadsheet i SpreadsheetGear dosljedno su vodili 100K+ reda pisanja. Za gutanje velikih datoteka samo za čitanje, ExcelDataReaderov interfejs za streaming IDataReader je opcija koja najviše štedi memoriju. OpenXML SDK nudi najniži plafon memorije kroz svoj SAX pisac, ali zahtijeva znatno više koda. Which libraries support legacy XLS (97-2003) format? IronXL, NPOI, Aspose.Cells, GemBox.Spreadsheet, ExcelDataReader (samo za čitanje), Spire.XLS i SpreadsheetGear podržavaju binarni XLS format. Među besplatnim opcijama, NPOI je jedina biblioteka koja može čitati i pisati XLS datoteke. Can these libraries run in Docker containers on Linux? Da – sve aktivno održavane biblioteke (11 od 12, isključujući SpreadsheetLight) pokreću se u standardnim .NET 8 Docker kontejnerima na Linux-u bez nativnih ovisnosti. Za razliku od PDF rendering biblioteka koje ponekad zahtijevaju sistemske fontove ili motore pretraživača, Excel biblioteke su čisti upravljani kod. What's your experience? Which C# Excel library are you using in production, and what made you choose it? Drop your thoughts in the comments — we read every one.