IRONSOFTWAREHOME
KORZYSTANIE Z IRONXL

Jak odczytywać pliki CSV z przecinkami w języku C#

Curtis Chau
Curtis Chau
Updated: 8 maja 2026

Dlaczego programiści .NET potrzebują lepszego rozwiązania do obsługi plików CSV?

Pliki CSV umożliwiają wymianę danych między niezliczoną liczbą aplikacji .NET. Od raportów finansowych po systemy magazynowe — masz swobodę programowego tworzenia plików CSV za pomocą zaledwie kilku wierszy kodu. Podczas gdy biblioteki takie jak CsvHelper obsługują podstawowe operacje CSV, współcześni programiści mają do czynienia ze złożonymi scenariuszami: konwersją skoroszytów Excel zawierających formuły, zachowaniem typów danych podczas eksportu oraz obsługą procesów związanych z arkuszami kalkulacyjnymi na poziomie Enterprise. IronXL stawia czoła tym wyzwaniom, łącząc solidne pisanie CSV z kompleksową funkcjonalnością Excela w pojedynczej, niezależnej od zależności bibliotece spełniającej standardy RFC 4180.

Dzięki temu jest to idealne rozwiązanie dla programistów tworzących niestandardowy moduł zapisujący pliki CSV w środowisku .NET lub parser plików CSV w środowisku .NET, który obsługuje wiele kolumn, funkcje specyficzne dla wierszy, wpływające wyłącznie na przetwarzany wiersz, oraz automatycznie wnioskowane separatory.

Pierwsze kroki z IronXL

Instalacja IronXL zajmuje kilka sekund za pomocą menedżera pakietów NuGet:

PM > Install-Package IronXL.Excel

Po zainstalowaniu dodaj przestrzeń nazw IronXL, aby rozpocząć pisanie plików CSV i efektywną pracę z wartościami rozdzielonymi:

using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("data");
        // Add headers
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Quantity";
        workSheet["C1"].Value = "Price";
        // Add data
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}

Ten prosty program testujący konsolę pokazuje, jak zapisywać zawartość CSV bezpośrednio z kodu C#, tworząc obiekt Workbook zawierający nasze dane. Metoda SaveAsCsv używa domyślnego separatora (przecinka), ale pozwala opcjonalnie zdefiniować sep dla różnych ustawień regionalnych; jest to szczególnie pomocne w przypadku obsługi separatora dziesiętnego lub alternatywnego znaku separatora kolumn. Wewnętrznie sep obsługuje alokację tablicy dla bufora wyjściowego. Wspomniany wcześniej parametr sep pozwala zdefiniować ten znak.

Pokazaliśmy również, jak zapewnić statyczny punkt wejścia oraz jak efektywnie zarządzać pamięcią przy użyciu statycznie zdefiniowanej puli zasobów, co pozwala na wysoką wydajność w wielu wierszach.

Zaawansowane techniki tworzenia plików CSV

Jak czytać pliki CSV z przecinkami w C#: Rysunek 1 - Przykład wyjścia CSV z IronXL

Zaawansowane techniki tworzenia plików CSV

Konwersja skoroszytów Excel do formatu CSV

IronXL doskonale radzi sobie z konwersją istniejących plików Excel do formatu CSV, obliczaniem formuł i zachowaniem integralności danych. Jest to niezbędne podczas tworzenia plików CSV zawierających zarówno wiersze nagłówkowe, jak i dane generowane dynamicznie.

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.

Podczas konwersji skoroszytów wielarkuszowych IronXL automatycznie generuje osobne pliki CSV dla każdego arkusza. Obliczenia formuł są wykonywane przed eksportem, co zapewnia dokładność danych w końcowym pliku CSV. Ale to nie jedyna cecha. Domyślny, automatycznie wyznaczany separator zapewnia kompatybilność w różnych regionach, a wiele wierszy lub wiele kolumn jest obsługiwane płynnie.

Można również użyć separatora nullable w środowiskach dynamicznych, w których domyślne obsługiwane separatory są różne.

Wynik

Najpierw tutaj można zobaczyć pliki CSV wygenerowane z naszego pliku Excel z kilkoma arkuszami:

Jak czytać pliki CSV z przecinkami w C#: Rysunek 2 - Pliki CSV

A oto przykładowe porównanie jednego z arkuszy Excel z odpowiadającym mu plikiem CSV:

Jak czytać pliki CSV z przecinkami w C#: Rysunek 3 - Przykład wyjścia

Eksportowanie tabeli danych do pliku CSV

W przypadku aplikacji opartych na bazach danych IronXL usprawnia eksport tabel danych (DataTable). Aby zapewnić większą przejrzystość, zmienną var ustawiamy na Datarow zamiast typowej zmiennej ref var v.

// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");

Podczas importowania każdy poziomy zestaw danych z kolekcji dataTable.Rows staje się nowym wierszem w arkuszu. IronXL zachowuje typy danych podczas konwersji, co oznacza, że liczby pozostają liczbami, daty zachowują formatowanie, a tekst poprawnie obsługuje znaki specjalne bez dodatkowej konfiguracji.

Wynik

Tutaj możesz zobaczyć nasze przykładowe źródło danych obok wyjściowego pliku CSV:

Jak czytać pliki CSV z przecinkami w C#: Rysunek 4 - Eksportowanie DataTable do wyjścia CSV

IronXL vs CsvHelper: Porównanie tworzenia plików CSV

Rozważmy ten scenariusz eksportu danych pracowników, ilustrujący procesy analizowania i zapisywania plików CSV.

Implementacja CsvHelper:

using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}

Wdrożenie IronXL:

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");

Funkcja

CsvHelper

IronXL

Podstawy pisania w formacie CSV

Konwersja plików Excel do CSV

Ocena formuły

Obsługa wielu arkuszy

Zachowanie typów danych

Podręcznik

Automatyczne

Obsługa formatu Excel

XLSX, XLS, XLSM

Nie jest wymagany pakiet MS Office

Podczas gdy CsvHelper sprawnie obsługuje proste operacje zapisywania kolumn, IronXL zapewnia elastyczność pracy z wieloma wierszami, interpolowanymi ciągami znaków i scenariuszami dynamicznego generowania kodu, a nawet umożliwia optymalizacje niskopoziomowe za pomocą konstrukcji takich jak ref struct link.

Programiści mogą wyliczać wiersze spełniające określone kryteria, zarządzać domyślnymi, automatycznie wywnioskowanymi separatorami, a nawet testować za pomocą prostych programów konsolowych, które udostępniają funkcje specyficzne dla wierszy oraz tylko klucz każdego wpisu do celów debugowania.

Funkcje dla Enterprise i najlepsze praktyki

Metoda SaveAsCsv biblioteki IronXL oferuje funkcje klasy Enterprise:

  • Niestandardowe separatory: Obsługa przecinka, średnika, tabulacji lub dowolnego znaku (domyślny separator można zastąpić za pomocą separatora sep)
  • Opcje kodowania: UTF-8, UTF-16 i kodowania niestandardowe
  • Obliczanie formuł: Oblicza formuły programu Excel przed eksportem
  • Obsługa wielu platform: Działa w systemach Windows, Linux i macOS

Programiści mogą również stosować metody rozszerzeń, aby uzyskać dostęp do wielu kolumn w celu wydajnego przetwarzania lub pisać wiersze CSV obejmujące wiele wierszy, gdy wymagane jest zawijanie tekstu.

Typowe problemy i rozwiązania

Podczas pracy z eksportami CSV programiści często napotykają następujące wyzwania:

  • Znaki specjalne w danych: IronXL automatycznie ucieka cudzysłowy, przecinki i nowe linie
  • Obsługa dużych plików: Użyj zakresów arkuszy kalkulacyjnych, aby przetwarzać dane w kawałkach,
  • Problemy z kodowaniem: Określ kodowanie UTF-8 dla znaków międzynarodowych
  • Brakujące typy danych: IronXL domyślnie zachowuje formaty liczbowe i daty

Aby uzyskać szczegółowe informacje dotyczące rozwiązywania problemów, odwiedź dokumentację CSV IronXL, Dokumentację API oraz zasoby pomocy technicznej.

Zacznij tworzyć swój program do zapisywania plików CSV już dziś

IronXL sprawia, że zapisywanie plików CSV przestaje być wyzwaniem związanym z parsowaniem, a staje się prostą operacją. Dzięki połączeniu funkcji CSV z obsługą skoroszytów Excel, obliczaniem formuł i automatyczną obsługą typów eliminuje to złożoność związaną z zarządzaniem wieloma bibliotekami lub ręczną konwersją danych.

Chcesz usprawnić swoje procesy związane z plikami CSV? Bezpłatna próba już od $999.

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