: Çalışma kitapları oluşturmak, büyük veritabanları okumak, hücreleri biçimlendirmek ve platformlar arası ihraç etmek gibi benzer görevlere karşı 12 C# Excel kütüphanesini test ettik. Bu kılavuz, MIT lisanslı açık kaynak seçeneklerinden işletme sınıfı ticari paketlere kadar her şeyi kapsar, bütçenize, ölçekinize ve uygulama hedefinize bağlı olarak en iyi seçim, tek bir C# Excel kütüphanesi her senaryoda kazanmaz. TL;DR Bu karşılaştırmada 12 kütüphanenin her birini aynı test senaryolarıyla çalıştırarak üç hafta geçirdik: iş kitabı oluşturmak, 100.000 satırlı veri kümelerini okumak, koşullu biçimlendirme uygulamak ve hem Windows hem de Linux'ta XLSX ve CSV'ye ihraç etmek. Tam açıklama: Biz arkasında DevRel ekibi , bu karşılaştırmanın 12 kütüphanesinden biri. Bu şekilde, dürüst değerlendirmeler, pazarlama spininden herkese daha iyi hizmet ettiğine inanıyoruz. Metodolojimizi göstereceğiz, önyargılarımızı kabul edeceğiz ve benchmarks'ın kendileri için konuşmasına izin vereceğiz. Eğer bir rakip belirli bir kullanım durumunda IronXL'i gerçekten üstleniyorsa, bunu söyleyeceğiz. İrlandalı İşte manzara bir bakışta nasıl görünüyor - sonra her kütüphaneye derinlemesine gideceğiz. // 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 Ürünleri Aşağıda, bu görevin her kütüphanenin sürümünü göstereceğiz, çünkü bir API'yi değerlendirmek için en iyi yol kodu okumaktır. Kişisel profillere girmeden önce, metodolojiye bir not.Her kütüphaneyi yedi boyutta değerlendirdik: (Kullanıcıların ortak görevleri yerine getirmek için kaç çizgi var) (Hangi dosya türlerini okuyabilir ve yazabilirsiniz) (Grafikler, pivotlar ve formüller) (Hız ve hafıza kullanımını ölçekte yazın), (Linux, Docker ve bulut için) (Gerçek maliyet, gizli ücretler dahil) ve Tek bir kütüphanenin hepsinin üstünde değil, her boyuta atadığınız ağırlık en iyi seçiminizi belirler. API ergonomics format support feature depth performance cross-platform support licensing clarity maintenance health Hangi C# Excel Kütüphanesi Seçmelisiniz?Hızlı Referans Tablosu Bu tablodaki her iddia, Şubat 2026 tarihinden itibaren her kütüphanenin belgelerine ve NuGet paketine karşı doğrulanır. 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 Ticari 749 Dolar / yıl ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ 3m + EPPlus epey Ticari 299 Dolar / yıl ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 80m+ ClosedXML kapatmaxml ile Ücretsiz ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ ✅ 60 m+ NPOI Apache 2.0 Hakkında Ücretsiz ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ 50 m+ Aspose.Cells Ticari 1.199 Dolar / yıl ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 20m+ Syncfusion XlsIO Ticari / Ücretsiz * $0–$995/yr ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 15m+ GemBox.Spreadsheet Gümüşhane.Spreadsheet Freemium 0 - 890 Dolar ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 5M+ ile OpenXML SDK ile Free ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ 100m+ ExcelDataReader MIT Free ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ 70M+ Spire.XLS Sıkıştırma.xls Ticari $999/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 3m + SpreadsheetLight MIT Free ✅ ❌ ✅ ⚠️ ❌ ⚠️ ✅ ❌ ✅ 2m + SpreadsheetGear Ticari 975 Dolar / Dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ 1 M + Syncfusion, <1 milyon dolar gelirli şirketler ve ≤5 geliştiriciler için ücretsiz bir Topluluk Lisansı sunar. ⚠️ = kısmi veya doğrulanmamış destek. free Community License The short version, by scenario: Sıkı bütçe, tam okuma/yazma? → ClosedXML (MIT, olgun, aktif geliştirme) Premium desteği ile Enterprise-grade? → IronXL veya Aspose.Cells → Aspose.Cells or Syncfusion XlsIO Maximum feature coverage? Sadece Okuma, Maksimum Hız? → ExcelDataReader → OpenXML SDK Low-level control, no abstraction? → NPOI Java port, legacy XLS required? Şimdi her kütüphaneyi ayrıntılı olarak inceleyelim. The 12 C# Excel Libraries Worth Knowing in 2026 Each profile below follows the same structure: what the library is, a code example performing the standard task (create workbook, write data, save), its genuine strengths and limitations, and who should use it. We're aiming for fairness — every library gets the same honest treatment. 1. IronXL – All-in-One Ticari .NET Kütüphanesi IronXL is a commercial .NET Excel library from that prioritizes API simplicity and cross-platform deployment. It reads and writes XLS, XLSX, CSV, TSV, and JSON without requiring Microsoft Office. Its extensive set of features also includes creating and editing Microsoft Excel worksheets, the ability to export Excel workbooks, work with formulas, and more. You can even add image formats into your Excel worksheets. Monthly release cadence — the latest version (2026.2) ships with .NET 10 support. 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 Output Excel File The API uses a WorkBook → WorkSheet → cell-addressing pattern that mirrors how developers think about spreadsheets. Cell addressing supports both A1 notation (ws["B2"]) and range expressions (ws["A1:C10"]), and the FormatString property accepts standard Excel format codes. The library handles formula recalculation automatically when cells are edited. Strengths: Minimum boilerplate, oluşturmak, okumak ve verileri 3-5 kod satırında ihraç etmek. Platformlar arası: Windows, Linux, macOS, Docker, Azure, AWS Lambda – hepsi test edilmiştir. Farklı .NET sürümlerinde çalışır Monthly releases with active bug fixes; the API-level simplicity is the primary differentiator, not raw throughput (see Benchmarks section for honest numbers) Supports XLS (legacy) + XLSX + CSV + TSV + JSON in a unified API Gerçek dünya dağıtımı: Brainycom, kar amacı gütmeyen finansal uzlaşma için IronXL'i kullanıyor, 4x daha hızlı ödeme işlemeyi başarıyor; ThreeB IT, Almanya'da lojistik ve sağlık bakım Excel otomasyonunu güçlendiriyor Limitations: No chart creation (you can read existing charts, but not generate them programmatically) No pivot table generation Commercial license required for production ($749/year for 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. Topluluk Favori Ticari Gitti EPPlus EPPlus, tarihteki en çok indirilen .NET Excel kütüphanelerinden biridir. in version 5 (2020). The last free version ( ) yaygın olarak kullanılır ancak sürdürülmez. ticari sürüm grafikler, pivot tablosu ve güçlü bir formül motoru ile özellikler zengin. 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")); EEPlus Output EPPlus, ExcelObject modelini yakından yansıtan bir ExcelPackage → Çalışma kitabı → Çalışma sayfası hierarşisini kullanır. Hücreler özelliği A1 tarzı referansları kabul eder ve stilizasyon bir yerleştirilmiş Stil nesnesi aracılığıyla uygulanır. Lisans yapılandırma satırına dikkat edin, EPPlus 5+ herhangi bir işlemden önce bir lisans bağlamı ayarlamanızı gerektirir. Strengths: Büyük bir topluluk ve ekosistem, 80 milyon NuGet indirme, kapsamlı Stack Overflow kapsama alanı 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: XLSX only, no XLS legacy format support Commercial license required for any commercial use since v5 ($299/year base) 4.5.3 (son ücretsiz sürüm) sürümü bakımsızdır ve yıllarca eksik olan hata düzeltmeleri Can struggle with memory on very large files (100K+ rows) in some configurations Mevcut EPPlus yatırımları olan ekipler, ılımlı bir bütçeye sahip grafikler / döngü tablolarına ihtiyaç duyan projeler ve büyük bir topluluk bilgi tabanını takdir eden geliştiriciler. Best for: ClosedXML – Excel API için Açık Kaynak Geliştirici Seçimi wraps Microsoft's in a developer-friendly API. MIT-licensed, actively maintained (frequent commits on Bu, geliştiricilerin ücretsiz, tam özellikli bir Excel kütüphanesi istedikleri zaman tavsiye edilmektedir. .NET topluluk forumları 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"); XML Çıkışı 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 license, genuinely free for all use, including commercial OpenXML SDK'yi dayanıklı kılan temiz, sezgisel API Düzenli sürümler ve duyarlı bakımcılar ile aktif geliştirme İyi pivot tablo desteği ve koşullu biçimlendirme Large community: 60M+ NuGet downloads Limitations: XLSX only, no XLS legacy format support Hiçbir grafik oluşturma (daha sık talep edilen bir özellik, henüz uygulanmamış) Performance degrades with very large datasets (100K+ rows can be slow or memory-intensive) No commercial support, community-only via GitHub Issues Open-source projects, budget-constrained teams, and any scenario where MIT licensing is a requirement. Excellent for small-to-medium datasets where chart generation isn't needed. Best for: 4. NPOI — The Java Port That Refuses to Die .NET Portu Hakkında , Java Excel kütüphanesi. hem XLS (BIFF) hem de XLSX (OOXML) formatlarını destekleyen birkaç ücretsiz kütüphaneden biridir. Apache 2.0 lisanslı. API, Java mirasını yansıtır, C#-native alternatiflerinden daha sözlü, ancak savaş test edilmiştir ve yeni kütüphanelerin dokunamadığı eski biçimleri ele alır. NPOI Apache POI 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, CreateRow() ve CreateCell() aracılığıyla açık satır ve hücre oluşturulmasını gerektirir, çerçeve tabanlı hücre adreslenmesi yoktur. XLS dosyaları için, XSSFWorkbook'u HSSFWorkbook ile değiştirin. arayüze dayalı tasarımı (IWorkbook, ISheet, IRow) tek bir yapımcıyı değiştirerek her iki biçimi hedefleyebilecek aynı kod mantığı anlamına gelir. Strengths: Apache 2.0 lisansı, ticari kullanım için ücretsiz Her iki XLS (97-2003) ve XLSX'i de destekler, geleneksel XLS'yi ele alan birkaç ücretsiz kitaplıktan biridir. Chart creation support (basic) Excel belgelerinin yanı sıra Word (.doc/.docx) ve PowerPoint'i kullanır Proven at enterprise scale — ported from Apache POI with decades of Java heritage Limitations: Verbose, Java-style API, significantly more boilerplate than C#-native alternatives Performans genellikle eşdeğer işlemler için EPPlus, ClosedXML veya IronXL'den daha yavaşdır Documentation is sparse and often in Chinese — English resources are community-contributed API can be unintuitive for developers unfamiliar with Apache POI Bu projeler Geçmiş XLS dosyalarını ticari bir lisans olmadan okumak veya yazmak. Aynı zamanda tek bir Excel + Word + PowerPoint kütüphanesine ihtiyacınız olduğu zaman da uygundur. Best for: must 5. Aspose.Cells — The Enterprise Heavyweight is the most feature-rich .NET Excel library available. It supports virtually every Excel feature: charts, pivot tables, conditional formatting, data validation, sparklines, slicers, VBA macros, and more. It's also the most expensive option. Aspose positions it as a complete Excel automation platform, not just a file I/O library. 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 Output Aspose.Cells, bir çalışma kitabı → çalışma sayfaları → hücreler hiyerarşisini kullanır. Veriler doğrudan atama yerine PutValue() ile yazılır. Styling, stil nesnesi oluşturmak ve uygulamak, bazı rakiplerden daha fazla adım gerektirir, ancak her biçimlendirme özelliği üzerinde granüler kontrol sağlar. Strengths: .NET Excel ekosisteminde en kapsamlı özellik, eğer Excel bunu yapabiliyorsa, Aspose.Cells muhtemelen bunu destekler Excellent performance on large files, optimized for enterprise-scale batch processing Extensive format support: XLSX, XLS, XLSB, XLSM, CSV, ODS, PDF, HTML, images Excel-to-PDF rendering that's among the most faithful available 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 Heavyweight dependency, the NuGet package is large Premium araçlama için bütçeye sahip kurumsal ekipler, gelişmiş özellikleri gerektiren projeler (grafikler, pivotlar, şimşekler, VBA) ve yüksek güvenilirlik gerektiren iş akışları . Best for: Excel-to-PDF conversion Syncfusion XlsIO - The Suite Play İndir Syncfusion’in büyük Essential Studio paketinin bir parçasıdır. Geniş bir Excel özellik kapsamı sunar ve Syncfusion’in çok platformlu UI kontrol ekosisteminden faydalanır. Ücretsiz Topluluk Lisansı ($1 milyon gelir altındaki şirketler için, ≤5 geliştiriciler için) küçük ekipler için erişilebilir hale getirir. 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, Excel'in COM nesne modeli yansıtan bir ExcelEngine → IApplication → IWorkbook hierarşisini kullanır. Hücre erişimi ayrı yazılı özelliklere (Text, Number, DateTime) sahip Range[] aracılığıyla gerçekleştirilir. Strengths: Feature-rich: Use data source's to create charts, pivot tables, conditional formatting, data validation, template markers, sparklines Küçük Şirketler için Ücretsiz Topluluk Lisansı, Gerçek Bir Ayrımcılık Excel-to-PDF dönüştürme dahil Deep integration with Syncfusion's Blazor, MAUI, and WPF UI controls Active development with quarterly releases; cross-platform (Windows, Linux, macOS, Docker) Limitations: Topluluk Lisansı, katı uygunluk gereksinimlerine sahiptir, 1 milyon doların üzerindeki gelirli şirketler satın almalıdır Full Suite pricing is complex and can be expensive ($995/dev/year for Essential Studio) Library is part of a massive suite, you're pulling in more dependencies than needed for Excel-only work Vendor lock-in concern: deep Syncfusion ecosystem integration can make migration difficult Syncfusion UI denetimlerini zaten kullanan ekipler, ücretsiz Topluluk Lisansı için uygun olan başlangıç şirketleri ve Excel işleme ve Blazor/MAUI ön uçları arasında sıkı bir entegrasyon gerektiren projeler. Best for: 7. Performans odaklı orta seviye Gümüşhane.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 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 Output 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: Büyük veri kümelerinde yüksek performans (1M satır, <256MB, <3.5s) PDF, XPS, and image export built in — no separate library needed Grafikler, pivot tablosu, koşullu biçimlendirme ve veri doğrulama desteği Free tier for small datasets (useful for prototyping) Clean, idiomatic C# API Limitations: Free tier limited to 150 rows and 5 sheets — too restrictive for most real applications Smaller community than EPPlus, ClosedXML, or NPOI — fewer Stack Overflow answers Profesyonel lisans ~ $ 890 (bir kez) başlar - rekabetçi ama ucuz değil Less name recognition — harder to get team buy-in compared to established alternatives Büyük dosyaları işleyen performans duyarlı uygulamalar, Excel'den yerleşik PDF / görüntü ihraç etmeyi gerektiren projeler ve tek seferlik lisanslamayı aboneliklerle kıyaslayan ekipler. Best for: OpenXML SDK - Foundation Layer Hakkında provides low-level access to Bu, ClosedXML ve diğer birçok kütüphanenin üzerine inşa edildiği şeydir. MIT lisanslı, Microsoft tarafından sürdürülür ve size .xlsx dosyalarının XML yapısının doğrudan kontrolünü sağlar. Microsoft'un Açık XML SDK Açık XML belgeleri 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 Çıkış OpenXML SDK, XML belge yapısını, çalışma kitabının parçalarını, çalışma sayfasının parçalarını, sayfa verilerini, satırları, hücreleri, hücre referanslarını, veri türlerini manuel olarak oluşturmanızı gerektirir. Strengths: MIT lisanslı, Microsoft tarafından sürdürülen, "resmi" olduğu gibi Belge yapısı üzerinde maksimum kontrol, hiçbir şey abstrak değildir Memory-efficient for streaming writes (SAX-style approach available) 100M+ NuGet downloads, the foundational layer many other libraries depend on Üçüncü taraf risk yok, Microsoft'un kendisinden geliyor Limitations: Son derece sözlü, basit görevler, herhangi bir üst düzey kütüphaneden 5-10 kat daha fazla kod gerektirir. Formül hesaplama motoru yok, formüller şeritler olarak depolanır, değerlendirilmez No XLS support, OOXML (.xlsx) only Uygun hücre adresleme, biçimlendirme anahtarları veya veri bağlama yardımcıları yok Dikey öğrenme eğriliği, OOXML özelliklerini anlamak gerekir Library authors building their own Excel abstraction, scenarios requiring absolute control over document structure, and teams with strict "no third-party dependencies" policies who can absorb the development cost. Best for: 9. ExcelDataReader – Hafif Sadece Okuma Uzmanı does one thing and does it well: reading Excel files. It supports XLS, XLSX, and CSV through a streaming IDataReader interface that's memory-efficient for large files. MIT-licensed. If you only need to spreadsheets, this should be your first consideration. ExcelDataReader Hakkında Okumak 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, bilinen System.Data arayüzleri aracılığıyla verileri iade eder: akış için IDataReader ve materyalized sonuçlar için DataSet/DataTable.The UseHeaderRow = true yapılandırma sütun adlarına ilk satırları teşvik eder. Strengths: MIT license — free for everything Lightweight: small NuGet package, minimal dependencies Streaming Reader – büyük dosyalar için hafıza verimli Supports both XLS and XLSX plus CSV DataTable entegrasyonu, verileri veri tabanlarına veya diğer sistemlere kolayca geçiş yapar 70M+ NuGet downloads — proven reliability Limitations: Sadece Okuma: Excel dosyalarını oluşturamaz veya değiştiremez 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 boru hattı, veri aktarma iş akışları, göç araçları ve ihtiyacınız olan herhangi bir senaryo Excel verileri hızlı ve ucuz bir şekilde, hiçbir zaman bir tabloda geri yazmadan. Best for: read 10. EceBlue Yarışması Sıkıştırma.xls 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. .NET için Spire.XLS 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, Syncfusion, Workbook → Worksheet → Range’a benzer bir biçimde yazılmış değer özellikleri kullanır. SaveToFile yöntemi, hedef Excel sürümünü açıkça belirtmek gerektirir. Strengths: Comprehensive feature set: charts, pivots, conditional formatting, encryption, digital signatures 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 XLS ve XLSX Desteği Daha geniş Spire.Office paketinin bir parçası Limitations: Ücretsiz sürümün 200 satır sınırı çoğu üretim kullanımı için çok kısıtlayıcı Ticari fiyat ~999 $ / geliştirici, üst ucunda başlar Aspose veya Syncfusion ile karşılaştırıldığında daha küçük .NET topluluk varlığı Documentation quality is inconsistent, some API areas are poorly documented Java örneği bazı API desenlerinde gösterilir Teams evaluating commercial alternatives to Aspose.Cells at a different price point, and projects already using other Spire.Office components. Best for: 11. SpreadsheetLight — The Minimalist is an MIT-licensed library built on OpenXML SDK. It aims to be the "simple" option — easy to learn, lightweight, and sufficient for common spreadsheet tasks. The tradeoff is that development has stalled — the last meaningful update was several years ago. SpreadsheetLight Hakkında 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: Ücretsiz, Gerçekten Ücretsiz Extremely simple API, lowest learning curve in this roundup Lightweight, minimal dependencies (just OpenXML SDK) Basic chart support (more than ClosedXML offers) Good enough for simple reporting and data export tasks Limitations: , infrequent updates, last major activity was years ago Appears unmaintained .NET Framework focused, .NET Core/.NET 8+ compatibility is uncertain XLSX only, no XLS support Limited feature set compared to active alternatives Küçük bir topluluk, sınırlı Stack Overflow kapsamı ve sorun giderme kaynakları .NET Framework projelerinde basit, tek seferlik sayfa oluşturma görevleri, hafif ve ücretsiz bir şeye ihtiyacınız olduğu durumlarda. Best for: 12. SpreadsheetGear — The Enterprise Veteran Bir on yıldan fazla bir süredir .NET Excel alanında bulunuyor. Kütüphanesi, 450+ fonksiyonlu bir formül motoru ve WinForms/WPF çalışma sayfası denetimlerini içerir. SpreadsheetGear 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 Çıkış SpreadsheetGear'ın API, Excel VBA nesne modelini yakından yansıtıyor, Excel makrolarını yazan geliştiriciler hemen evde hissedeceklerdir. Factory.GetWorkbook() şablonu ve IRange arayüzü, Excel'in geleneklerini yakından takip ediyor. Strengths: 450+ built-in functions, one of the most complete formula engines in any .NET library Finansal modelleme senaryoları için optimize edilmiş yüksek performanslı hesaplamalar WinForms and WPF spreadsheet UI controls for building interactive Excel-like interfaces Excellent Excel compatibility, aims for pixel-perfect rendering Uzun vadeli kayıt, kurumsal ortamlarda üretime kanıtlanmış Limitations: Daha yüksek fiyat noktası (~ $ 975 / geliştirici) daha az görünür fiyatlarla, satışlarla iletişime geçmelisiniz Smaller developer community than EPPlus, ClosedXML, or NPOI Less modern API feel compared to newer entrants Modern topluluk platformlarında sınırlı varlık (HackerNoon, Dev.to, vb.) Ücretsiz kategoriler veya topluluk sürümleri yok 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: Özellik Çözüm: Her Kütüphane Gerçekten Ne Yapabilir? Okuma ve yazma hücrelerinin temellerinin ötesinde, Excel kitaplıkları gelişmiş özellik destekleri açısından önemli ölçüde farklıdır. Dosya Formatı Desteği 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 ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ İrlandalı ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ❌ EPPlus ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ kapatmaxml ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ NPOI ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfuzyon ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ Gümbür ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ OpenXML SDK ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ExcelDataReader Hakkında ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Sıkıştırma.xls ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ SpreadsheetLight ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ SpreadsheetDüzenle ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ The format support gap is significant. If you need ücretsiz, NPOI sizin tek gerçek seçenektir. , you're looking at Aspose.Cells, Syncfusion, GemBox, Spire.XLS, or SpreadsheetGear, all commercial. IronXL's strength here is the unified API for XLSX + XLS + CSV + TSV + JSON, a practical combination for data pipeline work. 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) İrlandalı ❌ ❌ ✅ ✅ ✅ ✅ (Otomatik Dönüşüm) epey ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ❌ ✅ ✅ ✅ ✅ ✅ Daha sonra ( Temel ) ❌ ✅ ✅ ✅ ✅ Sıfır. hücreler ✅ ✅ ✅ ✅ ✅ ✅ Sinfuzyon ✅ ✅ ✅ ✅ ✅ ✅ Gümbür ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK Çözümü ✅ (Manual XML Kullanımı) ✅ (Manual XML Kullanımı) ✅ (manual XML) ✅ (Manual XML Kullanımı) ✅ ❌ ExcelDataReader Hakkında ❌ ❌ ❌ ❌ ❌ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight ( Temel ) ❌ ✅ ✅ ✅ ✅ SpreadsheetDüzenle ✅ ❌ ✅ ✅ ✅ ✅ (450+ functions) The tradeoff here is clear. If you need , EPPlus, Aspose.Cells, Syncfusion, GemBox veya Spire.XLS ihtiyacınız var. IronXL ve ClosedXML her ikisi de grafik oluşturma yeteneğinden yoksundur. chart and pivot table creation Performance: Benchmark Results Across Real-World Operations Metodoloji olmayan performans iddiaları pazarlama içindir. İşte testlerimizi nasıl yapılandırdık ve sonuçlar sizi şaşırtacak. Methodology 15 kütüphane üzerinde standartlaştırılmış bir benchmark paketi çalıştırdık (çözüm 12 artı , , and Tek bir sentetik görev yerine, geliştiricilerin aslında Excel kütüphaneleriyle neyi oluşturduğunu yansıtan dört gerçek dünya operasyonunu test ettik: yaygınlaştı Minişler Hızlı Finansal Rapor Üretimi: Formüller ve biçimlendirme ile 12 aylık bir rapor çalışma kitabı oluşturun Malzeme İzleme: Çapraz referanslar ile 500 öğe, 3 depo izleme tabloları oluşturun : Process and write 10,000 transactions with aggregation Sales Data Analysis : Generate a 250-employee payroll workbook with calculated fields Employee Payroll Processing Her test, duvar saati yürütme süresini (ms) ve zirve hafızasını (MB) ölçtü. Testler .NET 8'de çoklu iterasyonlarla çalıştı; kaydedilen değerleri benchmark hammaddesimizden rapor ediyoruz. yalnızca başarılı bir şekilde tamamlanan testler rapor edilir, belirli bir işlemde başarısız olan kitaplıklar cezalandırılmak yerine bu tablodan dışlanmaktadır. Finansal Raporlar (12 Aylık Raporlar) 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 yaygınlaştı 2.9 0.2 2 DevExpress Hakkında 53.2 4.5 3 Sıfır. hücreler 55.5 0.25 4 Sıkıştırma.xls 80.3 1.2 5 Ofisimiz 257.6 2.1 6 IronXL 498.1 4.2 SpreadCheetah'ın 2.9ms şaşırtıcı, sadece yazma, sadece ileriye yönelik bir akış kütüphanesi, açıkça maksimum akış için tasarlanmıştır. Basit rapor üretimi için, sadece çıkış yapısını önceden bildiğiniz için API kolaylığı (asla rastgele hücre erişimi, okuma yok) feda eder. Tam özellikli kitaplıklar arasında üst seviyeyi temsil eden 53-56ms aralığında Aspose.Cells ve DevExpress kümesi. IronXL burada 498ms. Bir tek aylık rapor için, bu son kullanıcı için fark edilemez. Binlerce rapor oluşturan bir batch iş için, bir dikkate dönüşür ve SpreadCheetah veya Aspose.Cells o belirli çalışma yükü için daha iyi bir seçim olurdu. Depo İzleme (500 Ürün, 3 Depo) 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 epey 51.2 2.9 2 ExcelBölüm 54.1 4.9 3 yaygınlaştı 56.3 2.1 4 Aspose.Cells 136.5 2.4 5 Sıkıştırma.xls 183.2 1.4 6 DevExpress Hakkında 451.7 5.0 7 IronXL 1,344.5 18.7 8 Ofisimiz 16,659.5 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. Sales Data Analysis (10,000 Transactions) Bu en ağır test, toplama ile 10.000 satırdır. Boyut için oluşturulan kitaplıkları rahatlık için optimize edilen kitaplıklardan ayırır. 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 yardımcım 140.3 9.3 2 ClosedXML 262.5 16.4 3 yaygınlaştı 289.7 15.9 4 FastExcel 346.7 13.8 5 Minişler 638.3 17.7 6 epey 671.0 21.3 7 Sıfır. hücreler 696.5 15.3 8 NPOI 1.304 kez okundu 35.0 9 Sıkıştırma.xls 2,015.5 26.8 10 DevExpress Hakkında 4,860.6 25.0 11 IronXL 11,322.9 80.9 Dürüst olalım: IronXL bu testte son buldu ve boşluk önemli. 11.3 saniyede ve 80.9 MB'de, CsvHelper'den 80x daha yavaş ve ClosedXML'den 43x daha yavaş. CsvHelper, amaçlı bir CSV analizci olduğu için kazanır - tam bir Excel kütüphanesi değil - ve OOXML belge yapısının üstünü tamamen önler. ClosedXML'in ikinci sıradaki gösterimi ücretsiz, tam özellikli bir kütüphanede etkileyici. Pratik etki: 10.000’den fazla işlem veritabanını defalarca işleyen bir veri boru hattı oluşturursanız, IronXL o belirli iş için doğru araç değildir. EPPlus, ClosedXML veya SpreadCheetah gibi bir akış kütüphanesi size dramatik olarak daha iyi hizmet verecektir. IronXL’in güçleri – API basitliği, çapraz format desteği, profesyonel destek – bu değerlendirmenin diğer boyutlarında ortaya çıkıyor, ölçekte değil. İşçi Maaşları İşlemleri (250 işçi) Sadece üç kütüphane bu karmaşık, çok sayıda sayfa işlemi başarıyla tamamladı: 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 Sıfır. hücreler 404.0 3.8 2 IronXL 2,893.0 12.5 3 Sıkıştırma.xls 4,323.0 N / A * Spire.XLS, olası bir ölçüm artefaktı olan negatif hafıza ölçümünü bildirdi. Çoğu kütüphane bu testi denememiştir ya da tamamlamamıştır. Sadece üç kütüphane başarılı olduğu gerçeği, hesaplanmış alanlarla çok sayıda sayfa, formül ağır çalışma kitaplarının karmaşıklığına işaret eder. Aspose.Cells ikna edici bir şekilde liderlik eder. IronXL ikinci, daha yavaş, ama işlemi başarıyla tamamladı ve çoğu rakip yönetemediği doğru çıkış sağladı. Benchmarks bize ne söylüyor (ve ne söylemiyorlar) Three patterns emerge from this data. First, SpreadCheetah, girdiği her testte ilk 3'te yer alıyor, ancak dosyaları okuyamıyor, rastgele hücre erişimi yapamıyor ve yazdıktan sonra karmaşık biçimlendirme uygulamıyor. in the mid-tier. Aspose.Cells, EPPlus, and Spire.XLS generally trade positions depending on the operation type. Third, DOM tabanlı mimarisi ve yüksek düzeyde API abstraksiyonları, girişte gördüğünüz temiz 3 satırlı API için kompromis olan ölçekte ortaya çıkan üst düzeyi tanıtıyor. streaming/write-only libraries dominate speed benchmarks full-featured commercial libraries cluster together IronXL's performance profile favors simplicity over speed Uygulamada, çoğu işletme uygulaması 10.000 satırın altında işlenir. aylık 500 satılık bir satış raporu, 2.000 işlemle çeyreklik bir ihracat, birkaç yüz SKU ile bir stok anahtarı, bu çalışma yükü bu karşılaştırmada herhangi bir kütüphanede rahatlıkla çalışıyor, IronXL de dahil. Performans farklılıkları sadece ölçekte kararlı hale gelir ve hatta o zaman, doğru yanıt genellikle tek bir kütüphaneyi her şeyi ele geçirmek yerine her iş için doğru aracı seçmektir. Çapraz Platform Desteği: Linux, Docker ve Bulut üzerinde çalışacak mı? Uygulamanız Docker konteynerlerine, Linux'taki Azure App Service'a veya AWS Lambda'ya dağıtılırsa, Excel kitaplığınız Windows özel bağımlılıkları olmadan çalışmalıdır. 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 ✅ ✅ ✅ ✅ ✅ ✅ ❌ IronXL ✅ ✅ ✅ ✅ ✅ ✅ ❌ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ❌ kapatmaxml ✅ ✅ ✅ ✅ ✅ ✅ ❌ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ❌ Sıfır. hücreler ✅ ✅ ✅ ✅ ✅ ✅ ❌ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ (servis için) GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader Hakkında ✅ ✅ ✅ ✅ ✅ ✅ ❌ Sıkıştırma.xls ✅ ✅ ✅ ✅ ✅ ️ ❌ SpreadsheetLight Hakkında ✅ ️ ️ ️ ️ ❌ ❌ SpreadsheetDüzenle ✅ ✅ ✅ ✅ ✅ ✅ ❌ İyi haber: çoğu modern, aktif olarak sürdürülen kütüphaneler .NET 8 üzerinde platformlar arası çalışıyor. + SpreadsheetLight, dışa dönük, .NET Framework odaklılığı, platformlar arası dağıtımı güvenilmez kılıyor. (Rendering motoru çok ağırdır), ancak sunucu tarafı Blazor bunların hepsiyle iyi çalışır. Müşteri tarafı : Hedeflenen tüm kütüphaneler .NET 6+ en az Docker konteynerlerinde çalışıyor ( Ana OS bağımlılıkları gerekmez, PDF kitaplıkları aksine, Excel kitaplıkları saf yönetilen kodlardır. Docker consideration .NET Standart 2.0 Hakkında mcr.microsoft.com/dotnet/sürüm süresi: 8.0 Lisanslama ve Fiyatlandırma: Bu Gerçekten Ekibinize Ne Kadar Maliyet Verecek? Lisanslama, Excel kitaplıklarının dramatik olarak farklılık gösterdiği yerdir. Gerçek maliyetleri bölelim. Açık kaynak seçenekleri 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 kapatmaxml ile Ücretsiz No commercial support; community-only fixes NPOI Apache 2.0 Hakkında ✅ Free Lisans bildirimi içermelidir; ticari destek yok OpenXML SDK Çözümü MIT Ücretsiz Microsoft tarafından desteklenir, ancak özel Excel desteği yoktur ExcelDataReader Hakkında MIT Ücretsiz Sadece okuma; yazılar için başka bir kütüphaneye ihtiyacınız olacak SpreadsheetLight Hakkında ile Ücretsiz Düzeltilmemiş görünür; düzeltilmemiş hataların riski "Ücretsiz" kütüphaneler gizli maliyetler taşıyor: SLA desteği yok, garantili düzeltme zaman çizelgeleri yok ve ekibinizin bir ticari satıcı tarafından ele alınabilecek sorunları çözmek için harcadığı mühendislik süresi. hobi projeleri ve prototipler için bu maliyetler kabul edilebilir. üretim işletme sistemleri için, ekibinizin saatlik ücretini ticari bir lisans ücretine karşı hesaplayın. ve her ikisi de sınırsız ticari kullanımlara izin verir, farklılık ne Bir satıcının garanti ettiği şeye karşı. Lisansım var Apache 2.0 Lisansı Topluluk Karşılaştırılmış Ticaret Seçenekleri 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 İrlandalı 799 Dolar (biraz daha az) Dolar 749 – Dolar 2 999 / yıl 30 günlük yargılama Evet Evet (Add-On) 24 / 5 Mühendislik epey $ 299 / yıl (bazı) $ 299 – $ 599 / yıl v4.5.3 (daha önceden güncellenmiş) Evet Evet (Add-On) Bu e-posta Sıfır. hücreler 1.199 Dolar / yıl 1.199 – 11.198 ABD Doları Eval (watermark) Evet (çok pahalı ) ✅ Priority Sinfuzyon $0 – $995 / yıl Sonraki Topluluk Lisansı * Suite İçeriği 2. Ücretli Ücretli Ücretler GemBox ~ $890 (bir kez) Per-Geliştirici 150 TL Ücretsiz Bir Zamanlar 12 ay önce Sıkıştırma.xls ~$999/dev Per-developer 200 adet / 5 adet Add-on Bu e-posta SpreadsheetGear ~ $ 975 / dev Per-Geliştirici Hiçbir Satış İletişim Bu e-posta Syncfusion Topluluk Lisansı: < 1 milyon $ yıllık brüt gelirli şirketler ve ≤ 5 geliştiriciler için ücretsiz. Not: EPPlus, 4.5.3 (2018) sürümüyle MIT tarafından lisanslanmıştır. Sürüm 5 Polyform Noncommercial olarak değiştirildi ve daha sonraki sürümler herhangi bir ticari kullanım için ticari bir lisans gerektirir. Birçok miras projesi hala 4.5.3'ü referanslıyor, eğer seniyseniz, düzeltilmemiş hatalarla sürdürülen bir sürümde çalıştığınızı bilmelisiniz. EPPlus 7+'a geçmek bir lisans satın almak gerektirir; ClosedXML veya IronXL'e geçmek alternatif bir yoldur. The EPPlus licensing story IRONXL Hakkında Bireysel geliştiricilerden ($749/yr Lite) takımlara ve işletmelere kadar. Iron Suite - tüm 10 Iron Software ürünleri bir araya getirildi - ayrıca PDF, OCR veya barkod özelliklerine ihtiyacınız varsa önemli tasarruflar sunar. Her lisans 30 günlük para iade garantisi ve mühendislik doğrudan desteği içerir. Üçüncü lisans .NET Uyumluluğu: Framework'ten .NET 10'a .NET ekosistemi sürümler arasında parçalanmış ve her kütüphane hızla devam etmemiştir. 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 ✅ ✅ ✅ ✅ ✅ ✅ ✅ İrlandalı ✅ ✅ ✅ ✅ ✅ ✅ ✅ epey ✅ ✅ ✅ ✅ ✅ ✅ ✅ kapatmaxml ✅ ✅ ✅ ✅ ✅ ✅ ✅ Daha sonra ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sıfır. hücreler ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfuzyon ✅ ✅ ✅ ✅ ✅ ✅ ✅ Gümbür ✅ ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK Çözümü ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader Hakkında ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sıkıştırma.xls ✅ ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight Hakkında ✅ ️ ️ ️ ❌ ❌ ❌ SpreadsheetDüzenle ✅ ✅ ✅ ✅ ✅ ✅ ✅ Diğer tüm kitaplıklar .NET Standard 2.0 ( .NET Framework 4.6.1+ ve tüm .NET Core/.NET 5+ sürümlerini kapsayan) veya çok yönlü paketler sağlar. Tüm 11 aktif olarak sürdürülen kütüphaneler tamamen desteklemektedir. For new projects in 2026, target . .NET 8 (LTS) Hakkında .NET 8 (LTS) Hakkında IronXL aylık güncelleştirmeleri sunar. EPPlus, Aspose.Cells ve Syncfusion çeyrek olarak yayınlanır. ClosedXML ve NPOI düzensiz ama sık topluluk kaynaklı yayınlara sahiptir. SpreadsheetLight yıllardır anlamlı bir güncelleme yapmadı, uzun vadeli kabul için kırmızı bir bayrak. Release cadence as a longevity signal: Excel Interop'tan geçiş - Ortak başlangıç noktası Birçok ekip bu karşılaştırmaya ulaşır, çünkü Microsoft.Office.Interop.Excel'den uzaklaşıyorlar. Eğer öyleyse, burada hızlı oynatma kitabı var. Interop, kodunuzu çalıştırdığınız her makineye, sunucular da dahil olmak üzere Office'i yüklemenizi gerektirir. Bu tek bir Windows Server'da tolere edilebilirdi, ancak konteynerize ettiğiniz, yatay olarak ölçeklendirdiğiniz veya Linux'a dağıtdığınız anı kırıyor. Taşınma şablonu, hangi kitaplıkta seçtiğinize bakılmaksızın basittir: // 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 En büyük zafer sadece platformlar arası dağıtım değil, COM temizleme baş ağrısının ortadan kaldırılmasıdır. Artık yetim EXCEL.EXE işlemleri yok, Marshal.ReleaseComObject() çağrıları yok, yayınlanmamış COM referanslarından daha fazla bellek sızıntısı yok. Bu karşılaştırmanın her kütüphanesi standart .NET IDisposable şablonları aracılığıyla kendi kaynaklarını yönetir. Hangi C# Excel Kütüphanesi Projeniz için Doğru? Tüm 12 kütüphaneyi test ettikten sonra, burada senaryolara göre düzenlenmiş dürüst rehberimiz var. IronXL'in her durum için en iyi seçim olduğunu sanmıyoruz, değil. Bütçe bilinçli projeler için en iyi Tam okuma / yazma yeteneğine ihtiyaç duyan ekipler için açık bir kazanan. MIT lisansı, aktif geliştirme, sezgisel API. Kompromis: hiçbir grafik ve performans 50K satırın üzerinde düşüş. Bu, özellikle XLS geçmişi desteğine ihtiyacınız varsa. ClosedXML NPOI Enterprise Uygulamaları için En İyi veya İhtiyaçlarınıza bağlı olarak, IronXL, grafikler ve pivotlar gerekmediğinde daha temiz API ve daha düşük fiyat noktası sunar, veri boru işlerinde, rapor oluşturmasında ve çapraz format dönüşümünde mükemmeldir. Aspose.Cells, güneşin altında her Excel özelliğine ihtiyacınız olduğunda doğru seçimdir ve bütçe kısıtlaması değildir. IronXL Aspose.Cells Çevrimiçi IronXL Yüksek Performanslı / Büyük Veri Seti için En İyi Benchmark'ta en iyi performans göstericisi, her operasyonda sürekli en üst 3'ü, finansal rapor üretimi için şaşırtıcı 2.9ms ile. Sadece yazma ve sadece ileriye yöneliktir, ancak bu sizin kullanım durumunuza uygunsa, başka hiçbir şey yaklaşmaz. tam özellikli kitaplıklar arasında, and Yüksek performanslı sadece okuma için üst seviyeye yerleştirilir, Streaming ile IDataReader arayüzü eşsizdir. SpreadCheetah Aspose.Cells EPPlus ExcelDataReader Sadece Okunma Senaryoları için En İyi MIT lisanslı, hafif, hızlı ve System.Data.DataTable ile doğal olarak entegre edilir. Eğer sadece sayfa verilerini içmeniz gerekiyorsa, tam bir okuma / yazma kütüphanesi eklemek gereksizdir. ExcelDataReader Maksimum Kapasite için En İyisi or Hem grafikler, pivot tablosu, şimşekler, koşullu biçimlendirme, veri doğrulama, VBA ve PDF ihracatını destekler. Syncfusion'ın ücretsiz Topluluk Lisansı, küçük ekiplere ücretsiz olarak kurumsal özelliklere erişim sağlar. Aspose.Cells Syncfusion XlsIO En İyi Geliştirici Deneyimi veya En az boilerplate ile en sezgisel API'leri sunuyoruz. Her ikisi de Install-Package'den 5 satırlık kod altında çalışan bir Excel dosyasına geçmenizi sağlar. IronXL cross-format desteği (XLS + XLSX + CSV + JSON) ve profesyonel desteği ekler; ClosedXML MIT lisanslama ve daha büyük bir topluluk ekler. IronXL ClosedXML Excel Dosyaları Okumak: Eşitliğin Diğer Yarısı Kütüphane değerlendirmelerinin çoğu Excel dosyaları, ancak birçok üretim uygulaması okumak için daha fazla zaman harcıyor. okuyucu deneyimi dört popüler kütüphanede karşılaştırıldığında, hepsi aynı görevi yerine getiriyor: varolan bir Excel dosyası yüklemek, satırları tekrarlamak ve yazılan verileri çıkarmak. yazmak // 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, yalnızca ileriye dönük bir IDataReader şablonu kullanır, belirli bir hücreye atlayamazsınız veya geriye dönemezsiniz. Sıralı okuma için en hızlı ve en hafif seçenektir. IronXL ve ClosedXML her ikisi de yazılmış hücre erişimi ile satırları önde geçirir, ancak sentezleri farklıdır. EPPlus, dört yaklaşımın hepsi işe yarıyor, seçim, rastgele erişime (IronXL, ClosedXML, EPPlus) ya da sadece sıralı akışa (ExcelDataReader) ihtiyacınız olup olmadığına bağlıdır. Etiket Arşivi: kütüphane görmeye değer Benchmark testlerimiz, temel 12'imizde olmayan ama dikkat etmeye değer üç kütüphaneyi ortaya çıkardı. sadece yazma, sadece ileriye yönelik bir akış kütüphanesi, finansal rapor üretimi için hız referanslarımızı, 2.9ms'i, her testte sürekli olarak en üst 3'e sahiptir. bilinen rapor yapılarını yüksek hacimde oluşturursanız ve hücrelere okumak veya rastgele erişmek zorunda değilseniz, SpreadCheetah değerlendirmeye değer bir uzman araçtır. yaygınlaştı yaygınlaştı 5. Satış verileri analizinde (638ms, 17.7MB), EPPlus ve Aspose.Cells ile rekabet eder. API'si geleneksel değildir (anonim türlerin ve sözlüklerin ağır kullanımı), ancak MIT lisanslı ve aktif olarak sürdürülmektedir. Minişler Minişler Satış verileri analizinde (447ms, 13.8MB) 4. sırada yer alan hafif bir XLSX okuyucu / yazıcıdır. Daha az bilinen ancak minimum ayak izi için sağlam performans sunar. Hızlı, düşük bağımlılık seçeneği istiyorsanız düşünmeye değer. FastExcel Hızlı Common Gotchas: Pitfalls Her Geliştirici Hits After working with all 12 libraries (and the three bonus contenders), we compiled the issues that trip up developers most frequently. These aren't library-specific bugs, they're patterns that emerge across the ecosystem. Etiket Arşivi: .NET Core ExcelDataReader, NPOI ve diğer birkaç kitaplık, .NET Core'de XLS (binary) dosyalarını okumadan önce kod sayfalarını kodlama sağlayıcısını kaydetmenizi gerektirir: // Add this ONCE at application startup — before any Excel operations System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); Bu satır olmadan, kodlama hakkında NotSupportedException 1252 alırsınız. yalnızca .NET Core/.NET 5+ üzerinde XLS (XLSX değil) etkiler ve hata iletisi çözümü açıkça göstermez. Kütüphane çapında işlemler Excel, tarihleri yüzen noktalar (1 Ocak 1900 tarihinden itibaren günler) olarak depolar. her kitaplık bunları DateTime'a biraz farklı bir şekilde dönüştürür ve zaman bölgeleri, , ve null tarihler dikkatli değilseniz sizi ısırır. tavsiyemiz: her zaman üretimde tarih işleme güvenmeden önce belirli kütüphanenizle tarih tur seyahatleri (yazın → kaydet → yeniden yükleme → okuyun) doğrulayın. 1900 leap year bug Unisposed Workbooks'tan hafıza sızıntısı Birkaç kütüphanede IDisposable, ClosedXML, EPPlus, SpreadsheetLight ve OpenXML SDK'ları uygulanır. Açıklamaları kullanmayı unutmak, yalnızca yük altında yüzeysel hafıza sızıntılarına neden olabilir. IronXL, NPOI ve Aspose.Cells temizlemeyi farklı bir şekilde işlemektedir (finalizer veya açıkça Close() yöntemleri). Tüm kütüphanelerde en güvenli model: // 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 EPPlus Lisans Gereksinimleri EPPlus 5+ lisans bağlamını ayarlamamışsanız ilk API çağrısında bir LicenseException atar. // Required before ANY EPPlus operations in v5+ ExcelPackage.License.SetNonCommercialOrganization("Org Name"); // or: ExcelPackage.License.SetLicenseKey("your-key"); 32-bit işlemlerde büyük dosya OOM Uygulamanız 32-bit bir süreç olarak çalışıyorsa (IntPtr.Size == 4'ü kontrol edin), DOM tabanlı kitaplıklar, genellikle sütun sayısına bağlı olarak 20.000-30.000 satır arasında, çok daha erken OutOfMemoryException'ı çarpacak. Bu, IIS altında çalışan uygulamaları, "32-bit Uygulamaları etkinleştirin" ayarını gerçek olarak etkiler, bu da birçok eski sunucuda varsayılan. düzeltme: ya 64-bit bir süreçte geçin ya da SpreadCheetah veya ExcelDataReader gibi bir akış kitaplığı kullanın. What to Do Next .NET Excel kütüphanesi ekosistemi sağlıklı, rekabetçi ve aktif olarak gelişmektedir. tek bir "en iyi" kütüphanesi yoktur, sadece en iyi kütüphanesi Projeniz, bütçeniz ve dağıtım hedefleriniz. senin Önerimiz: Bu karşılaştırmadan 2-3 aday seçin, NuGet aracılığıyla yükleyin ve gerçek verilerinize karşı küçük bir prototip oluşturun. Yukarıdaki kod örnekleri, API ergonomisini baştan başı değerlendirmek için tutarlı bir başlangıç görevi sağlar. kenar durumları, birleştirilmiş hücreler, formüller, büyük dosyalar, belirli biçimlendirme gereksinimleri, çünkü gerçek farklılıklar ortaya çıkıyor. senin IronXL için özellikle, ve , and en yaygın senaryoları kapsayan çalışma örnekleri sağlar. a Su işaretleri olmadan üretimde test edebilirsiniz. Belgelendirme Başlıyor Kod örnekleri Tutorialleri Ücretsiz 30 günlük deneme Kütüphaneler yeni sürümler yayınlarken bu karşılaştırmayı güncelleyeceğiz - .NET ekosistemi hızla hareket ediyor ve bu kaynağın istediğimiz şekilde kalmasını istiyoruz. Düşünen takımlar için Gerçek iş akışınıza uygun olup olmadığını değerlendirmek için en iyi yöntemdir. Üretim lisansı ile ilerlemeden önce pratikte nasıl performans gösterdiğini görmek için kendi tablolarınız, formülleriniz, biçimlendirme ve dağıtım ortamı ile test edin. IronXL, 30 günlük ücretsiz deneme Sıkça Sorulan Sorular Bunlar, C# Excel kitaplıklarını değerlendiren geliştiricilerden en sık gördüğümüz sorular. How do I create an Excel file in C# without Microsoft Office installed? Bu karşılaştırmada Microsoft.Office.Interop.Excel hariç tüm kitaplıklar Office olmadan çalışır. ve ve , vb. - ve Linux sunucuları ve Docker konteynerleri de dahil olmak üzere hiçbir Office yüklemesi olmayan makinelerde XLSX dosyaları oluşturabilir, okuyabilir ve yazabilirsiniz. Etiket Arşivleri.Excel Epilasyon paketleri ClosedXML Yükleme Paketi Is EPPlus still free for commercial use? EPPlus sürümü 5 (2020 yılında yayınlandı) ve sonraki sürümler herhangi bir ticari kullanım için ticari bir lisans gerektirir. En son ücretsiz sürüm 4.5.3 olup, yıllarca hata düzeltmeleri ve güvenlik düzeltmeleri eksik kalmıştır. Benzer özelliklerle ücretsiz bir alternatif ihtiyacınız varsa, ClosedXML (MIT lisansı) en doğrudan geçiş yoludur. What's the fastest .NET Excel library for large datasets? Yazma kılavuzlarımızda, GemBox.Spreadsheet ve SpreadsheetGear sürekli olarak 100K+ satırlık yazılar için liderdir. Büyük dosyaların yalnızca okuma alımı için, ExcelDataReader'ın akış IDataReader arayüzü en hafıza verimli seçenektir. OpenXML SDK, SAX yazıcısı aracılığıyla en düşük hafıza tavanı sunar, ancak önemli ölçüde daha fazla kod gerektirir. Which libraries support legacy XLS (97-2003) format? IronXL, NPOI, Aspose.Cells, GemBox.Spreadsheet, ExcelDataReader (sadece okuma), Spire.XLS ve SpreadsheetGear hepsi ikili XLS biçimini destekler. Ücretsiz seçenekler arasında, NPOI, XLS dosyalarını hem okuyabilen hem de yazabilen tek kütüphanedir. Can these libraries run in Docker containers on Linux? Evet – aktif olarak sürdürülen tüm kütüphaneler (SpreadsheetLight hariç 12'den 11'i) standart .NET 8 Docker konteynerlerinde Linux'ta yerel bağımlılıklar olmaksızın çalışıyor. Bazen sistem fontlarını veya tarayıcı motorlarını gerektiren PDF görüntüleyici kütüphanelerinden farklı olarak, Excel kütüphaneleri saf yönetilen kodlardır. 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.