PORÓWNAJ Z INNYMI KOMPONENTAMI

Porównanie IronXL i CsvHelper

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Praca z plikami CSV może być trudnym zadaniem. Obecnie dostępnych jest wiele bibliotek, które pomagają programistom w tym zadaniu bez konieczności instalowania programu Microsoft Excel.

W tym artykułe omówimy i porównamy sposoby programowej pracy z dokumentami Microsoft Excel w środowisku C# .NET Technologies, zarówno w formacie CSV, jak i standardowym formacie XLSX, przy użyciu dwóch najpopularniejszych bibliotek: IronXL i CsvHelper.

Przyjrzyjmy się najpierw temu, co mają do zaoferowania obie biblioteki.

Biblioteka IronXL

Biblioteka IronXL .NET ułatwia odczyt i edycję dokumentów Microsoft Excel za pomocą języka C#. IronXL.Excel to samodzielna biblioteka oprogramowania .NET służąca do odczytu szerokiej gamy formatów arkuszy kalkulacyjnych. Nie wymaga instalacji programu Microsoft Excel ani nie jest zależne od Interop. Bardzo sprawnie współpracuje z plikami CSV.

IronXL to intuicyjny interfejs API języka C#, który umożliwia odczytywanie, edytowanie i tworzenie plików arkuszy kalkulacyjnych Excel w środowisku .NET z błyskawiczną wydajnością. IronXL w pełni obsługuje .NET Core, .NET Framework, Xamarin, urządzenia mobilne, systemy Linux, macOS oraz platformę Azure.

IronXL to wiodąca biblioteka arkuszy kalkulacyjnych Excel dla C# oparta na platformach .NET Core i .NET Framework.

Zestaw funkcji IronXL

  • Wczytuj, przeglądaj i edytuj dane - z plików XLS/XLSX/CSV/TSV
  • Zapisywanie i eksportowanie - do formatów XLS/XLSX/CSV/TSV/JSON
  • Zakresy - łatwa w użyciu składnia WorkSheet["A1:B10"]. Intuicyjnie łącz i twórz zakresy.
  • Sortowanie - sortowanie zakresów, kolumn i wierszy.
  • Stylizacja - style wizualne komórek, czcionka, rozmiar, wzór tła, obramowanie, wyrównanie i formaty liczb.

CsvHelper

Biblioteka .NET do odczytu i zapisu plików CSV. Niezwykle szybkie, elastyczne i łatwe w użyciu. Obsługuje odczyt i zapis obiektów klas niestandardowych. Wszystkie przykładowe kody są dostępne w dokumentacji pakietu CsvHelper.

Funkcje CsvHelper

  • Szybkie: kompiluje klasy na żywo dla niezwykle szybkiej wydajności
  • Elastyczna: konserwatywna przy pisaniu, liberalna przy czytaniu
  • Łatwy w użyciu: czytanie i pisanie są tak proste jak GetRecords<t>() i WriteRecords(records)
  • Wysoce konfigurowalna
  • Tryb Linux
  • Niskie zużycie pamięci

1. Utwórz aplikację konsolową

Aby utworzyć aplikację konsolową, wykonaj następujące kroki:

  • Uruchom IDE Visual Studio 2022.
  • Kliknij "Utwórz nowy projekt".
  • Na stronie "Utwórz nowy projekt" wybierz C# z listy rozwijanej język, Windows z listy Platformy, oraz Konsola z listy "Typy projektów".
  • Wybierz Aplikacja konsolowa (.NET Framework) z wyświetlanych szablonów projektów.

Utwórz projekt - Aplikacja konsolowa

  • Kliknij Dalej.
  • Na ekranie Dodatkowe informacje określ wersję Framework, której chcesz użyć. W tym przykładzie użyjemy .NET Framework 4.8.

Utwórz projekt - .NET Framework

  • Kliknij Utwórz, aby zakończyć proces.

Projekt jest teraz utworzony i jesteśmy prawie gotowi do przetestowania bibliotek. Jednak nadal musimy je zainstalować i zintegrować z naszym projektem. Najpierw zainstalujmy IronXL.

2. Instalacja biblioteki IronXL C#

Bibliotekę IronXL można pobrać i zainstalować, korzystając z następujących metod:

  1. Używanie Visual Studio z pakietami NuGet
  2. Pobierz pakiet NuGet bezpośrednio
  3. Ręczna instalacja z użyciem DLL

Przyjrzyjmy się bliżej każdemu z nich.

2.1. Korzystanie z programu Visual Studio z pakietami NuGet

Visual Studio udostępnia menedżera pakietów NuGet do instalowania pakietów NuGet w projektach. Dostęp do niego można uzyskać poprzez menu Projekt lub klikając prawym przyciskiem myszy na projekt w Eksploratorze rozwiązań.

Wybierz-Zarządzaj-Pakietem-NuGet

  • Teraz z karty przeglądaj -> wyszukaj IronXL.Excel -> Zainstaluj

Wyszukaj IronXL

  • I gotowe.

2.2. Pobierz pakiet NuGet bezpośrednio

Można to zrobić, odwiedzając bezpośrednio stronę NuGet i pobierając pakiet. Kroki są następujące:

  • Navigate to https://www.nuget.org/packages/IronXL.Excel
  • Wybierz "Pobierz pakiet"
  • Kliknij dwukrotnie pobrany pakiet
  • Pakiet zostanie zainstalowany
  • Ponownie załaduj swój projekt Visual Studio i zacznij z niego korzystać

2.3. Ręczna instalacja za pomocą pliku DLL

Innym sposobem pobrania i zainstalowania biblioteki IronXL C# jest wykonanie poniższych kroków w celu zainstalowania pakietu IronXL NuGet za pomocą wiersza poleceń programisty.

  • Otwórz wiersz poleceń programisty - zazwyczaj znajduje się on w folderze Visual Studio.
  • Wpisz następujące polecenie: PM> Install-Package IronXL.Excel
  • Naciśnij Enter
  • To pobierze i zainstaluje pakiet
  • Ponownie załaduj swój projekt Visual Studio i zacznij z niego korzystać

2.4. Dodaj niezbędne dyrektywy using

  1. W oknie Solution Explorer kliknij prawym przyciskiem myszy plik Program.cs, a następnie wybierz opcję View Code.
  2. Dodaj następujące dyrektywy using na początku pliku kodu:
using IronXL;

Gotowe! IronXL jest pobrany, zainstalowany i gotowy do użycia. Jednak zanim to zrobimy, powinniśmy zainstalować CsvHelper.

3. Instalacja CsvHelper

3.1. Korzystanie z konsoli menedżera pakietów NuGet

Aby pobrać i zainstalować bibliotekę CsvHelper w C#, skorzystaj z poniższych kroków, aby zainstalować pakiet NuGet przez wiersz polecenia dla deweloperów.

  • Otwórz wiersz poleceń programisty - zazwyczaj znajduje się on w folderze Visual Studio.
  • Wpisz następujące polecenie: PM> Install-Package CsvHelper -Version 27.2.1
  • Naciśnij Enter
  • To pobierze i zainstaluje pakiet
  • Ponownie załaduj swój projekt Visual Studio i zacznij z niego korzystać

3.2. Pobieranie bezpośrednie

Pobierz z witryny NuGet: https://www.nuget.org/packages/CsvHelper.

4. Praca z plikami CSV przy użyciu IronXL

Wartości rozdzielane przecinkami (CSV) to plik tekstowy z ogranicznikami, który używa przecinka do oddzielania wartości. Każda linia pliku to rekord danych. Manipulowanie tymi plikami w celu obliczeń może być trudnym zadaniem, a IronXL dostarcza całkiem dobrą i łatwą opcję, aby to zrobić bez Microsoft Excel. Najpierw przekształćmy plik CSV na zwykły plik Excel.

4.1. Konwertowanie pliku CSV na format Excel

Proces jest dość prosty i łatwy. Zazwyczaj wykonuje się to za pomocą jednej linii kodu.

Formaty CSV do Excel:

// Load the CSV file and convert it to an Excel format
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Access the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");

4.2. Odczyt i manipulacja przekonwertowanymi plikami CSV przy użyciu IronXL

Klasa IronXL WorkBook reprezentuje arkusz Excel. Aby otworzyć plik Excel za pomocą C#, używamy WorkBook.Load i określamy ścieżkę do pliku Excel (.xlsx). Poniższy jednowierszowy kod służy do otwarcia pliku w celu odczytu:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx");

Każdy WorkBook może zawierać wiele obiektów WorkSheet. Są to arkusze w dokumencie Excel. Jeśli skoroszyt zawiera arkusze, należy je pobrać według nazwy w następujący sposób:

// Open the sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");

Kod do odczytu wartości komórek:

// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

Po załadowaniu i odczytaniu skoroszytu i arkusza kalkulacyjnego, poniższy przykład kodu może być wykorzystany do wprowadzenia zmian w formułach lub ich zastosowaniu w konkretnych komórkach. Kod wygląda następująco:

// Set formulas in specific cells
worksheet["A1"].Formula = "SUM(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "MAX(C3:C7)";

// Force recalculate all formula values in all sheets
workbook.EvaluateAll();

4.3. Zapisanie dokumentu Excel z powrotem do pliku CSV

Pisanie plików CSV jest łatwym procesem przy użyciu IronXL. Poniższy kod po prostu zapisuje plik Excel w formacie CSV za pomocą metody SaveAsCsv.

// Load the Excel Workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");

// Save the workbook as a CSV file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// This will save as "SaveAsCSV.Sheet1.csv"

5. Praca z plikami CSV przy użyciu CsvHelper

Odczytywanie plików CSV to jedno z tych zadań, które wydają się znacznie łatwiejsze, niż są w rzeczywistości. Biblioteka CsvHelper umożliwia łatwe pisanie kodu, który jest bezpieczny typowo, szybki i elastyczny.

5.1. Odczyt plików CSV z użyciem CsvHelper

To przykład pliku CSV, ma trzy kolumny tekstowe i jedną kolumnę liczbową.

FirstName,LastName,Age,IsActive
Ali,Talal,30,Yes
Affan,Ahmad,31,No
Saad,Bhatti,31,Yes
Text

Zmapujemy każdy wiersz na obiekt typu Person.

// Define the Person class to map CSV records
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int? Age { get; set; }
    public string IsActive { get; set; }
}

Kod do odczytu naszego pliku CSV znajduje się poniżej.

// Define the path to the CSV file
var fileName = @"<path to our CSV file>";

// Configure CsvHelper
var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    Encoding = Encoding.UTF8,
    Delimiter = ","
};

// Read CSV file
using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    using (var textReader = new StreamReader(fs, Encoding.UTF8))
    using (var csv = new CsvReader(textReader, configuration))
    {
        var data = csv.GetRecords<Person>();
        
        // Iterate over each person record
        foreach (var person in data)
        {
            // Process each Person object
        }
    }
}

Typ data to IEnumerable<Person>. CsvHelper automatycznie zmapuje każdą kolumnę do właściwości o tej samej nazwie. Na przykład wartość w kolumnie FirstName zostanie zmapowana na Person.FirstName. Następnie możemy iterować data i uzyskać dostęp do wartości w każdym wierszu.

5.2. Konwersja danych w plikach CSV z jednego typu na inny

Pliki CSV głównie zawierają dane tekstowe. Na przykład kolumna wieku jest wartością liczbową, a plik CSV zawiera tylko tekst. CsvHelper może konwertować dane z łańcucha znaków na standardowe typy .NET (Boolean, Int32, Int64, Enum). W naszym przypadku mamy typ danych IsActive bool, który może mieć tylko True/False i zawiera niestandardowe wartości. Można go przekształcić, tworząc niestandardowy konwerter. Stylizacja kodu przebiega w nastepujacy sposob:

// Custom Boolean Converter for CsvHelper
public class CustomBooleanConverter : DefaultTypeConverter
{
    public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        // Convert "Yes" to true and anything else to false
        return text.Equals("Yes", StringComparison.OrdinalIgnoreCase);
    }
}

Mimo że bool jest standardowym typem .NET, domyślny konwerter obsługuje tylko wartość True/False, podczas gdy nasz plik CSV ma Yes/No. Tutaj musimy podklasować DefaultTypeConverter, a następnie nadpisać metodę ConvertFromString.

6. Licencjonowanie

IronXL to komercyjna biblioteka Excel w C#. Jest bezpłatny do celów programistycznych i zawsze można uzyskać licencję na wdrożenie komercyjne. Licencje sa dostepne do uzytku w pojedynczym projekcie, dla jednego dewelopera, agencji oraz globalnych korporacji, a takze na potrzeby SaaS i redystrybucji OEM. Wszystkie licencje obejmują 30-dniową gwarancję zwrotu pieniędzy, roczną pomoc techniczną i aktualizacje, ważność na środowiska deweloperskie, testowe i produkcyjne, a także licencję stałą (jednorazowy zakup). Pakiet Lite zaczyna się od $999.

CsvHelper - odczyt i zapis plikow CSV sa calkowicie darmowe do uzytku komercyjnego.

7. Podsumowanie i wnioski

Podsumowanie

IronXL to kompletna biblioteka oferujaca wszystko, co potrzebne do manipulacji plikiem Excel. Jest latwa w uzyciu i umozliwia konwersje roznych formatow do XLSX oraz z XLSX do innych formatow, takich jak CSV. Ta mozliwosc konwersji zapewnia uzytkownikowi elastycznosc pracy z roznymi formatami plikow.

Z kolei CsvHelper jest zaprojektowany specyficznie do pracy z formatem plikow CSV, co oznacza, ze potrafi obsluzyc tylko pliki CSV. Wsystkie przykladowe kody sa dostepne w dokumentacji CsvHelper. Dokumentacja oferuje wskazowki, jak korzystac z CsvHelper w swoim projekcie.

Wnioski

IronXL ma wyrazna przewage nad CsvHelper, poniewaz wspiera prace z wieloma formatami. Ponadto mozna stosowac formuly i style wedlug wlasnych potrzeb, podczas gdy CsvHelper umozliwia tylko odczyt i zapis plikow CSV z ograniczonymi opcjami. Nie mozna rowniez dopisac nowych rekordow do istniejacego pliku CSV, poniewaz jedynie nadpisuje wczesniejsze wpisy.

Zwróć uwagę: CsvHelper jest zarejestrowanym znakiem towarowym swojego wlasciciela. Ta strona nie jest powiazana, popierana ani sponsorowana przez CsvHelper. 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 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