IRONSOFTWAREHOME
PORÓWNAJ Z INNYMI KOMPONENTAMI

Porównanie IronXL i NPOI

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Biblioteka IronXL.Excel i NPOI to biblioteki .NET dla programu Excel, które działają bez Office.Interop — nie wymagają instalacji programu Microsoft Excel. Niniejsze porównanie obejmuje interfejsy API służące do odczytu, zapisu i manipulacji plikami Excel, wraz z przykładami kodu dla operacji, z którymi programiści spotykają się najczęściej.

Czym jest NPOI?

NPOI to wersja .NET projektu POI Java dostępnego pod adresem http://poi.apache.org/. POI to projekt open source, który może pomóc w odczytywaniu i zapisywaniu plików xls, doc i PPT. Ma szeroki zakres zastosowań.

Można go na przykład wykorzystać do:

  • Generowanie raportu Excel bez zainstalowanego zestawu Microsoft Office na twoim serwerze i wydajniej niż wywołanie Microsoft Excel ActiveX w tle
  • Wyodrębnij tekst z dokumentów Office, aby wdrożyć funkcję indeksowania pełnotekstowego (w większości przypadków funkcja ta służy do tworzenia wyszukiwarek)
  • Wyodrębnianie obrazów z dokumentów Office
  • Generowanie arkuszy Excel zawierających formuły

NPOI i Excel

NPOI to port projektu POI Java firmy Apache napisany w języku C#. Jest to oprogramowanie darmowe i open-source. Ponadto nie wymaga on Interop, co oznacza, że użytkownicy nie będą musieli mieć zainstalowanego programu Excel, aby aplikacja programisty mogła z nim współpracować.

IronXL i Excel

IronXL to interfejs API programu Excel dla języków VB i C#. Dzięki IronXL możesz odczytywać, edytować i tworzyć arkusze kalkulacyjne Excel w środowisku .NET.

Jak wypada porównanie NPOI i IronXL?

NPOIIronXL
Zakresy komórekZakresy komórek
Stylizacja komórek (obramowanie, kolor, wypełnienie, czcionka, numeracja, wyrównanie)Style wizualne komórek: czcionka, rozmiar, wzór tła, obramowanie, wyrównanie i formaty liczb.
Obliczanie wzorówWzory
Walidacja danychWalidacja danych
Formatowanie warunkoweFormatowanie warunkowe
ObrazyObrazy
WykresyWykresy

Tabela 1 – Porównanie funkcji

Zespoły oceniające IronXL jako alternatywę dla NPOI mogą przetestować pełne API za pomocą bezpłatnej 30-dniowej wersji próbnej.


Instalacja IronXL i NPOI

Obie biblioteki można zainstalować, pobierając je ręcznie, za pośrednictwem NuGet lub za pomocą menedżera pakietów NuGet w programie Visual Studio. Oto krótki przegląd: Aby zapoznać się z instrukcją krok po kroku, zobacz przewodnik IronXL dla początkujących.

Instalacja NPOI

Instalacja NPOI za pomocą NuGet

Aby zainstalować NPOI za pomocą NuGet, otwórz wiersz poleceń programisty Visual Studio i wpisz następujące polecenie:

PM > Install-Package NPOI -Version x.x.x

Graphical user interfaceDescription automatically generated

Rysunek 1 — Instalacja NuGet NPOI

Menedżer pakietów Visual Studio NuGet i NPOI

Aby zainstalować IronXL lub NPOI za pomocą menedżera pakietów NuGet w Visual Studio, wykonaj następujące kroki:

  • Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań
  • Wybierz Zarządzaj pakietami NuGet
  • Wybierz swój pakiet
  • Kliknij Zainstaluj
A screenshot of a computerDescription automatically generated

Rysunek 2 — Menedżer pakietów NuGet dla NPOI

Instalacja IronXL

Pobieranie IronXL

Aby pobrać IronXL, przejdź do poniższego adresu URL i kliknij przycisk "Pobierz".

Download IronXL

Rysunek 3 — Pobierz IronXL

Instalacja IronXL za pomocą NuGet

Aby zainstalować IronXL za pomocą NuGet, otwórz wiersz poleceń programisty Visual Studio i wpisz następujące polecenie:

PM > Install-Package IronXL.Excel -Version x.x.x

NuGet IronXL Installation

Rysunek 4 — Instalacja NuGet IronXL

Menedżer pakietów Visual Studio NuGet i IronXL

Aby zainstalować IronXL za pomocą menedżera pakietów NuGet w Visual Studio, wykonaj następujące czynności:

  • Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań
  • Wybierz Zarządzaj pakietami NuGet
  • Wybierz swój pakiet
  • Kliknij Zainstaluj
A screenshot of a computerDescription automatically generated

Rysunek 5 — Menedżer pakietów NuGet dla IronXL

Odczytywanie i zapisywanie plików Excel za pomocą NPOI i IronXL

Odczytywanie pliku Excel za pomocą NPOI

Poniższy kod pokazuje, jak odczytać plik Excel i wyświetlić jego zawartość za pomocą NPOI. Dodaj poniższy kod i dołącz niezbędne przestrzenie nazw:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.Data;
using System.IO;
using System.Collections.Generic;

Poniższy kod odczytuje istniejący plik Excel i wyświetla go w widoku siatki danych.

public void ReadExcelNPOI()
{
    DataTable dtTable = new DataTable();
    List<string> lstRows = new List<string>();
    ISheet objWorksheet;
    string strPath = @"c:\temp\NPOI_Test.XLSX";

    // Use FileStream to open the Excel file
    using (var fStream = new FileStream(strPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        fStream.Position = 0;
        XSSFWorkbook objWorkbook = new XSSFWorkbook(fStream);
        objWorksheet = objWorkbook.GetSheetAt(0);
        IRow objHeader = objWorksheet.GetRow(0);
        int countCells = objHeader.LastCellNum;

        // Add columns to the DataTable based on the header row of Excel
        for (int j = 0; j < countCells; j++)
        {
            ICell objCell = objHeader.GetCell(j);
            if (objCell == null || string.IsNullOrWhiteSpace(objCell.ToString())) continue;
            {
                dtTable.Columns.Add(objCell.ToString());
            }
        }

        // Add rows to the DataTable, looping through each row and cell
        for (int i = (objWorksheet.FirstRowNum + 1); i <= objWorksheet.LastRowNum; i++)
        {
            IRow objRow = objWorksheet.GetRow(i);
            if (objRow == null || objRow.Cells.All(d => d.CellType == CellType.Blank)) continue;

            for (int j = objRow.FirstCellNum; j < countCells; j++)
            {
                ICell cell = objRow.GetCell(j);
                if (cell != null && !string.IsNullOrEmpty(cell.ToString()) && !string.IsNullOrWhiteSpace(cell.ToString()))
                {
                    lstRows.Add(cell.ToString());
                }
            }

            if (lstRows.Count > 0)
                dtTable.Rows.Add(lstRows.ToArray());

            lstRows.Clear();
        }
    }

    // Assuming dataGridView1 is a DataGridView control on a Form
    dataGridView1.DataSource = dtTable;
}

private void button1_Click(object sender, EventArgs e)
{
    ReadExcelNPOI();
}

Odczytywanie pliku Excel za pomocą IronXL

Poniższy kod pokazuje, jak odczytać plik Excel i wyświetlić go w widoku siatki danych za pomocą IronXL. Więcej przykładów kodu IronXL można znaleźć w dokumentacji. Dodaj poniższy kod i dołącz przestrzeń nazw:

using IronXL;
using System.Data;

Zwróć uwagę na uwzględnienie IronXL. Jest to niezbędne do działania IronXL. Dodaj kilka następnych wierszy:

private void button2_Click(object sender, EventArgs e)
{
    // Load the Excel workbook
    string strPath = @"c:\temp\NPOI_Test.XLSX";
    WorkBook workbook = WorkBook.Load(strPath);

    // Access the default worksheet
    WorkSheet sheet = workbook.DefaultWorkSheet;

    // Convert the worksheet to a DataTable
    var dtTable = sheet.ToDataTable(true);

    // Assuming dataGridView1 is a DataGridView control on a Form
    dataGridView1.DataSource = dtTable;
}

Jak widać, IronXL redukuje operację odczytu i wyświetlania do około 5 linii kodu w porównaniu z ponad 40 liniami w NPOI, całkowicie eliminując ręczną iterację wierszy i pętlę wyodrębniania komórek. Zapoznaj się z pełnym zestawem przewodników po funkcjach IronXL, aby poznać bardziej usprawnione podejścia do typowych zadań w programie Excel.

Którą bibliotekę wybrać?

NPOI zapewnia solidną, ugruntowaną platformę open source do manipulacji danymi programu Excel w środowisku .NET — jego dziedzictwo jako portu biblioteki Apache POI oznacza, że korzysta z wieloletniego wkładu społeczności oraz szerokiego zakresu obsługiwanych formatów. Dla zespołów, których głównym wymaganiem jest odczyt i zapis arkuszy kalkulacyjnych w darmowym pakiecie tworzonym przez społeczność, NPOI jest niezawodnym wyborem.

Częstym źródłem trudności dla zespołów jest ilość kodu szablonowego wymaganego przez NPOI do wykonywania typowych operacji. Jak ilustruje powyższy przykład odczytu pliku, podejście IronXL wymaga około 5 linii kodu w porównaniu z ponad 40 liniami NPOI dla tej samej operacji — ładowania skoroszytu i wyświetlania go w tabeli danych — całkowicie eliminując ręczną pętlę iteracji wierszy i komórek. To zmniejszenie powierzchni kodu to inwestycja, która się opłaca dzięki łatwiejszej konserwacji i mniejszej liczbie miejsc, w których mogą się ukrywać błędy.

IronXL oferuje również profesjonalne wsparcie, regularne aktualizacje oraz możliwość zgłaszania wniosków dotyczących nowych funkcji bezpośrednio do inżynierów Iron Software. Projekty społecznościowe oferują w tym zakresie różne kompromisy: szerszy wkład współpracowników, ale mniej przewidywalny czas reakcji na konkretne problemy.

Oprócz kosztów licencji, całkowity koszt projektu obejmuje godziny pracy programistów poświęcone na pisanie i utrzymywanie dodatkowego kodu szablonowego wymaganego przez API niższego poziomu NPOI, a także debugowanie ręcznej logiki mapowania danych pokazanej w powyższych przykładach. Dla zespołów oceniających koszty w perspektywie wieloletniego cyklu życia projektu koszty rozwoju i utrzymania często przewyższają różnicę między licencjami open source a komercyjnymi.

Pliki do pobrania

Projekt jest dostępny na GitHubie:

Przykład: IronXL vs NPOI

Chcesz zobaczyć różnicę w swoim projekcie? Rozpocznij bezpłatny 30-dniowy okres próbny IronXL, aby uruchomić te przykłady lokalnie.

Zwróć uwagę: NPOI jest zarejestrowanym znakiem towarowym odpowiedniego właściciela. Ta strona nie jest powiązana z NPOI, nie jest przez nią promowana ani sponsorowana. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta