Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak zapisywać dane w pliku CSV w C#

Ten artykuł omawia, jak napisać plik CSV używając IronXL.

Biblioteka IronXL

IronXL to biblioteka Excel w .NET, która oferuje kompleksową funkcjonalność do tworzenia, odczytywania i edytowania plików arkuszy kalkulacyjnych w aplikacjach C#. Wyróżnia się pod względem wydajności i dokładności wyników. Obsługuje różne formaty plików skoroszytów, takie jak XLS, XLSX, XLSM, CSV i TSV. Dodatkowo umożliwia zapisywanie lub eksportowanie danych z plików Excel do takich formatów jak CSV, JSON, HTML, Binary, Byte Array, DataSet czy DataTable.

Za pomocą IronXL programiści mogą płynnie pracować z arkuszami i zakresami komórek, oferując elegancki sposób manipulowania danymi. Umożliwia łatwą edycję formuł i ułatwia ponowne przeliczanie formuł w arkuszu. Sortowanie danych na podstawie zakresu, kolumny lub wiersza jest proste. Możesz również modyfikować układy, zamrażając okienka, automatycznie dopasowując wiersze/kolumny oraz dodając/usuwając wiersze/kolumny.

IronXL oferuje możliwość ochrony plików Excel przy użyciu haseł użytkowników oraz ustawiania uprawnień do edycji. Ponadto zapewnia funkcje dodawania, usuwania i ekstrakcji obrazów z arkuszy Excela. Biblioteka zawiera szeroką gamę funkcji Excela, wspierając różne formaty danych komórek. To sprawia, że IronXL jest jedną z najbardziej intuicyjnych API do pracy z plikami Excel.

Znaczącą zaletą IronXL jest to, że nie wymaga zainstalowania Microsoft Excel ani Office Interop, aby działać na maszynie. Jest to rozwiązanie samodzielne, które działa na wielu platformach i jest kompatybilne z wersjami .NET 7, 6 i 5. Obsługuje również .NET Core 2 i 3 oraz standardową wersję 2. Do pracy z arkuszami Excel, IronXL jest kompatybilny z .NET Framework 4.5 i nowszymi wersjami.

Utwórz aplikację konsolową

Zaleca się najnowszą wersję Visual Studio do tworzenia aplikacji początkowych. Visual Studio jest oficjalnym zintegrowanym środowiskiem programistycznym dla C#. Musisz je zainstalować. Możesz je pobrać z strony Microsoft Visual Studio, jeśli nie jest zainstalowane.

Następujące kroki utworzą nowy projekt o nazwie "DemoApp".

  1. Otwórz Visual Studio i kliknij "Utwórz nowy projekt".

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 1: Otworz Visual Studio Otwórz Visual Studio

  2. Wybierz Aplikację Konsolową i kliknij "Dalej".

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 2: Stworz nowy projekt w Visual Studio Utwórz nowy projekt w Visual Studio

  3. Ustaw nazwę projektu

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 3: Skonfiguruj nowy projekt Skonfiguruj nowy projekt

  4. Wybierz wersję .NET. Wybierz stabilną wersję .NET 6.0.

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 4: Wybór .NET Framework Wybór platformy .NET Framework

Zainstaluj bibliotekę IronXL

Po utworzeniu projektu należy zainstalować bibliotekę IronXL, aby móc ją używać w projekcie. Postępuj zgodnie z tymi krokami, aby ją zainstalować.

  1. Otwórz Menedżera Pakietów NuGet z Eksploratora Rozwiązań lub z narzędzi.

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 5: Nawigacja do Menedzera Paczek NuGet Przejdź do menedżera pakietów NuGet

  2. Wyszukaj Bibliotekę IronXL i wybierz bieżący projekt. Kliknij zainstaluj.

    Jak Zapisac Dane do Pliku CSV w C#, Rysunek 6: Wyszukiwanie i instalacja pakietu IronXL w UI Menedžera Paczek NuGet Wyszukaj i zainstaluj pakiet IronXL w interfejsie użytkownika NuGet Package Manager

Dodaj nastepujaca przestrzen nazw na poczatku pliku Program.cs:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Create a New Workbook in C

IronXL umożliwia tworzenie pustego skoroszytu. Skoroszyt to arkusz kalkulacyjny, który zawiera wiele arkuszy. Dane są przechowywane w komórkach. CSV również wygląda jak arkusz kalkulacyjny, ale zamiast tego ma rozszerzenie pliku CSV.

// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

Teraz, utwórzmy arkusz w WorkBook. Istnieje wiele sposobów na stworzenie arkusza w skoroszycie.

// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
' Adds a default sheet to the workbook
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet

' Creates a worksheet with the name "Sheet1"
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

Jesli chcesz dodac wiecej arkuszy do istniejacego skoroszytu, uzyj metody CreateWorkSheet.

Uwaga: Mozesz uzyc metody WorkBook.LoadCSV, jezeli plik CSV juz istnieje. Możesz to zobaczyć na stronie z przykładem kodu w celu załadowania istniejącego pliku CSV.

Zapisz dane do WorkSheet

Pisanie plików CSV jest łatwe przy użyciu IronXL. Oferuje funkcje Excela do zapisywania danych w plikach CSV. Odniesienia do komórek mogą być używane do dodawania wartości w określonych lokalizacjach. Tutaj, dodam kilka zapisow kilku pracownikow uzywajac petli foreach.

// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

' Starting row for data entry
Dim i As Integer = 2

' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"

' Populate each row with employee data
For Each employee In employeeNames
	' Set values for ID, Name, and Salary
	sheet("A" & i).Value = i
	sheet("B" & i).Value = employee
	sheet("C" & i).Value = i * 1000
	i += 1
Next employee
$vbLabelText   $csharpLabel

W powyzszym przykladzie kodu, została utworzona tablica employeeNames, a pierwszy wiersz zostal ustawiony z naglowkami: ID, Imie, Wynagrodzenie. Zmienna i jest rowniez zainicjowana wartoscia 2, ktora wprowadzi zapisy od 2. wiersza poniżej nagłówków. Petla foreach przetwarza kazdego pracownika z listy i dodaje go do biezacego wiersza z wartosciami ID oraz wynagrodzeniem. Przed zakonczeniem petli, i jest inkrementowane, aby przejsc do nastepnego wiersza dla kolejnego rekordu.

Zapisz Dane do Pliku CSV

Ostatnim krokiem jest zapisanie pliku CSV. IronXL zapewnia metode SaveAsCsv do zapisania skoroszytu jako pliku CSV. Pierwszym parametrem tej metody jest nazwa pliku CSV, a drugim - delimiter.

// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

Pełny kod wygląda następująco:

using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Create a new workbook and worksheet
		Dim workBook As WorkBook = WorkBook.Create()
		Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Initialize an array of employee names
		Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

		' Starting row for data entry
		Dim i As Integer = 2

		' Setting header titles for the columns
		sheet("A1").Value = "ID"
		sheet("B1").Value = "Name"
		sheet("C1").Value = "Salary"

		' Populate each row with employee data
		For Each employee In employeeNames
			' Set values for ID, Name, and Salary
			sheet("A" & i).Value = i
			sheet("B" & i).Value = employee
			sheet("C" & i).Value = i * 1000
			i += 1
		Next employee

		' Save the modified workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("sample.csv", ",")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik

Jak Zapisac Dane do Pliku CSV w C#, Rysunek 7: Plik wyjsciowy CSV Plik CSV wyjściowy

Podsumowanie

Artykuł prezentuje proste podejście do pisania pliku CSV używając IronXL w C#. IronXL również oferuje możliwość pracy z istniejącymi plikami CSV bez żadnych problemów. Umożliwia również pisanie plików CSV, tworzenie nowych plików Excel i zapisywanie do nich danych przy użyciu prostych składni. IronXL można również użyć do czytania i pisania plików Excel bez zainstalowanego Microsoft Office. Dla konwersji między różnymi formatami arkuszy kalkulacyjnych, możesz zobaczyć tę stronę z przykładem kodu.

IronXL jest bezpłatny do celów programistycznych, a na cele komercyjne można uzyskać licencję. Możesz również wypróbować darmowy okres próbny IronXL do użytku komercyjnego.

Często Zadawane Pytania

Jak mogę zapisać dane w pliku CSV w C#?

Możesz użyć metody `SaveAsCsv` z IronXL, aby wyeksportować dane do pliku CSV w C#. Najpierw utwórz skoroszyt i arkusz kalkulacyjny, zapisz dane do komórek, a następnie użyj `workBook.SaveAsCsv("filename.csv", ",");`, aby zapisać dane jako plik CSV.

Jakie są kroki tworzenia aplikacji konsolowej do zapisywania plików CSV w C#?

Aby stworzyć aplikację konsolową do zapisywania plików CSV, załóż nowy projekt w Visual Studio, wybierz odpowiednią wersję .NET i zainstaluj IronXL przez Menedżera pakietów NuGet. Następnie użyj IronXL, aby utworzyć skoroszyt, dodać dane do arkusza i zapisać je jako CSV.

Czy mogę zapisać dane w pliku CSV bez korzystania z Microsoft Excel?

Tak, możesz zapisać dane w pliku CSV bez korzystania z Microsoft Excel, używając IronXL. Umożliwia on programową manipulację plikami Excel i CSV bez konieczności instalacji Excela.

Jak zainstalować IronXL w projekcie Visual Studio?

Możesz zainstalować IronXL, otwierając Menedżera pakietów NuGet w Visual Studio, wyszukując 'IronXL' i klikając 'Install', aby dodać go do swojego projektu. To umożliwi korzystanie z funkcji IronXL do obsługi plików Excel i CSV.

Jakie formaty plików obsługuje IronXL do eksportu?

IronXL obsługuje eksport danych do kilku formatów, w tym CSV, JSON, HTML, Binary, Byte Array, DataSet i DataTable, dzięki czemu jest wszechstronnym narzędziem dostosowanym do różnych potrzeb związanych z obsługą danych.

Czy IronXL jest kompatybilny z różnymi wersjami .NET?

Tak, IronXL jest kompatybilny z wieloma wersjami .NET, w tym .NET Core 2 i 3, a także .NET 5, 6 i 7, co zapewnia programistom elastyczność w różnych środowiskach programistycznych.

Czy mogę używać IronXL w projektach komercyjnych?

Tak, IronXL może być licencjonowany do celów komercyjnych. Oferuje również bezpłatną wersję próbną do użytku deweloperskiego, umożliwiającą programistom przetestowanie jego funkcji przed zakupem licencji komercyjnej.

Jak utworzyć nowy skoroszyt i arkusz w języku C# przy użyciu IronXL?

Można utworzyć nowy skoroszyt i arkusz, używając `WorkBook.Create()` do zainicjowania obiektu skoroszytu, a następnie dodając do niego nowy arkusz. Umożliwia to rozpoczęcie zapisywania danych w arkuszu.

Czy IronXL wymaga jakichkolwiek zależności Office Interop?

Nie, biblioteka IronXL jest samodzielną biblioteką, która nie wymaga żadnych zależności Office Interop, co sprawia, że jest łatwa w użyciu i wdrażaniu w aplikacjach na różnych platformach.

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