Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Czytaj plik CSV używając C# (Przykład kodu Samouczek)

W tym samouczku demonstrujemy, jak odczytać plik CSV za pomocą biblioteki IronXL C# bez instalowania dodatkowych interop, w bardzo wydajny i skuteczny sposób.

How to read CSV Files in C

Musisz najpierw zainstalować IronXL, zanim użyjesz go do odczytu plików CSV w MVC, ASP.NET lub .NET Core. Oto podstawowy przegląd procesu.

Wybierz menu Projekt w Visual Studio, Zarządzaj pakietami NuGet i Wyszukaj IronXL.Excel, a następnie Zainstaluj.

Odczytaj plik CSV za pomocą C# (Przykład kodu - poradnik), Rysunek 1: Zainstaluj pakiet IronXL w Menedżerze pakietów NuGet Zainstaluj pakiet IronXL w Menedżerze pakietów NuGet

IronXL to doskonałe narzędzie do użytku, gdy trzeba odczytać pliki CSV w C#. Poniższy przykład kodu pokazuje, że można odczytać plik CSV używając przecinków lub innego separatora.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

Odczytaj plik CSV za pomocą C# (Przykład kodu - poradnik), Rysunek 2: Dane CSV do tego poradnika Dane CSV dla tego poradnika

Obiekt WorkBook jest tworzony. Metoda LoadCSV obiektu WorkBook jest następnie używana do określenia nazwy pliku CSV, jego formatu i używanych w nim separatorów, które są przechowywane jako tablica ciągów. W tym scenariuszu jako separatery są wykorzystywane przecinki.

Następnie tworzony jest obiekt WorkSheet; to tam zostanie zapisane zawartość pliku CSV. Plik jest następnie przemapowany i zapisany w nowym formacie. Dane pliku CSV są następnie uporządkowane w arkuszu kalkulacyjnym w formie tabelarycznej. Wynik będzie wyglądać mniej więcej tak:

Odczytaj plik CSV za pomocą C# (Przykład kodu - poradnik), Rysunek 3: Dane przekonwertowane na plik Excel Dane przekonwertowane do pliku Excel

CSV parsing in C# .NET

CSV mają kilka problemów związanych z obsługą znaków końca wiersza w polach oraz sposobem zamykania pól w cudzysłowach, co uniemożliwia użycie prostej techniki dzielenia ciągów Split("'"). Zamiast tego, IronXL oferuje możliwość dostosowania separatora za pomocą opcjonalnego parametru z metody LoadCSV, sprawdź dokumentację API LoadCSV po więcej szczegółów.

C# Records — Reading CSV Data

W poniższym przykładzie pętla foreach jest używana do iteracji po wierszach w pliku CSV, a Konsola jest używana do zapisywania danych w rekordzie.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Convert the worksheet data into a DataTable
Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header

' Iterate through each row in the DataTable
For Each row As DataRow In dt.Rows
	' Iterate through each column in the current row
	For i As Integer = 0 To dt.Columns.Count - 1
		' Output each cell value to the console
		Console.Write(row(i) & "  ")
	Next i
	' New line after each row
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

Odczytaj plik CSV za pomocą C# (Przykład kodu - poradnik), Rysunek 4: Odwiedzenia danych z pliku CSV i wyświetlenie w Konsoli Dostęp do danych z pliku CSV i wyświetlanie w Konsoli

Konwersja linii tekstu pliku CSV na format Excel

Procedura jest prosta: załaduj plik CSV i zapisz go jako plik Excel.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

Odczyt i manipulacja przekonwertowanymi plikami CSV za pomocą IronXL

Klasa IronXL WorkBook reprezentuje arkusz Excel i używa tej klasy do otwierania pliku Excel w C#. Przykłady kodu poniżej załadują pożądany plik Excel do obiektu WorkBook:

// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
' Load WorkBook from a .xlsx file
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
$vbLabelText   $csharpLabel

Obiekty WorkSheet można znaleźć w licznych WorkBooks. Oto arkusze dokumentu Excel. Jeśli książka robocza posiada arkusze kalkulacyjne, można je uzyskać po nazwie, wykonując następujące czynności:

// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open a specific worksheet for reading by its name
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

Kod do odczytu wartości komórek:

// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read and output values from a range of cells elegantly
For Each cell In worksheet("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

Poniższy przykład kodu może aktualizować formuły lub zastosować je do określonych komórek po załadowaniu i odczytaniu książki roboczej oraz arkusza kalkulacyjnego. Oto kod:

// Set formulas for 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();
// Set formulas for 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();
' Set formulas for 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()
$vbLabelText   $csharpLabel

Podsumowanie i specjalna oferta IronXL

IronXL przekształca CSV do Excela w zaledwie dwóch liniach kodu, oprócz przetwarzania CSV w C#.

Bez konieczności użycia Interopa, korzystanie z API Excela IronXL to bułka z masłem. Ponadto IronXL oferuje również szeroki zakres funkcji umożliwiających interakcję z poziomem skoroszytów, arkuszy i komórek programu Excel, takich jak konwersja między popularnymi formatami, formatowanie danych w komórkach, scałanie komórek, wstawianie funkcji matematycznych, a nawet zarządzanie wykresami i dodawanie obrazów.

Możesz uruchomić bez znaku wodnego, używając kluczy licencyjnych IronXL trial.

Licencje zaczynają się od $999 i obejmują rok bezpłatnego wsparcia i aktualizacji.

IronPDF, IronXL, IronOCR, IronBarcode i IronWebScraper są częścią Iron Suite od Iron Software. Iron Software pozwala na zakup całego pakietu po obniżonej cenie. Można korzystać ze wszystkich tych narzędzi w cenie dwóch.

To zdecydowanie opcja warta zbadania.

Często Zadawane Pytania

Jak odczytać plik CSV w języku C#?

Plik CSV można odczytać w języku C# przy użyciu biblioteki IronXL, korzystając z metody LoadCSV, która pozwala załadować dane CSV do obiektu WorkBook w celu dalszej obróbki.

Jaki jest najlepszy sposób na konwersję danych CSV do formatu Excel w języku C#?

Najlepszym sposobem na konwersję danych CSV do formatu Excel w języku C# jest użycie biblioteki IronXL. Wczytaj plik CSV do obiektu WorkBook i użyj metody SaveAs, aby zapisać go jako plik Excel.

Jak obsługiwać pliki CSV z niestandardowymi separatorami w języku C# przy użyciu biblioteki?

Dzięki IronXL można obsługiwać pliki CSV z niestandardowymi separatorami, określając separator jako opcjonalny parametr w metodzie LoadCSV.

Czy w języku C# mogę bezpośrednio przekonwertować dane CSV do formatu bazy danych?

Tak, w języku C# można przekonwertować dane CSV do formatu bazy danych za pomocą biblioteki IronXL, wykorzystując metodę ToDataTable, która przekształca dane w obiekt DataTable odpowiedni do operacji bazodanowych.

Jakie metody są dostępne do sprawdzania nieistniejących plików CSV przy użyciu języka C#?

W języku C# można użyć metody Exists biblioteki IronXL, aby sprawdzić, czy plik CSV istnieje, przed podjęciem próby jego załadowania, unikając w ten sposób błędów związanych z nieistniejącymi plikami.

Jak mogę przetwarzać dane z Excela po konwersji z formatu CSV w języku C#?

Po konwersji pliku CSV do formatu Excel w języku C# można manipulować danymi, korzystając z funkcji IronXL, takich jak formatowanie, scałanie komórek, wstawianie funkcji matematycznych oraz dodawanie wykresów lub obrazów.

Jakie zalety oferuje IronXL w zakresie odczytu i konwersji plików CSV w języku C#?

IronXL zapewnia takie korzyści, jak łatwa instalacja, brak konieczności stosowania dodatkowych rozwiązań interoperacyjnych, obsługa niestandardowych separatorów oraz zaawansowane metody konwersji i manipulacji danymi CSV w programie Excel.

Jak w języku C# można obsługiwać znaki specjalne w danych CSV?

IronXL obsługuje znaki specjalne w danych CSV, umożliwiając określenie kodowania pliku i separatorów podczas ładowania pliku CSV, co zapewnia integralność i dokładność danych.

Jakie wsparcie jest dostępne dla użytkowników IronXL?

Licencje IronXL obejmują rok bezpłatnego wsparcia i aktualizacji, zapewniając pomoc oraz dostęp do najnowszych funkcji i poprawek.

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ę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie