Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak eksportować DataTable do CSV w C#

IronXL umożliwia płynną konwersję DataTable do formatu CSV w języku C# bez konieczności instalowania programu Microsoft Excel. Ta samodzielna biblioteka .NET udostępnia proste API do automatycznego konwertowania DataTables na pliki CSV o niestandardowych strukturach i separatorach, co ułatwia programistom eksport danych.

IronXL to popularna biblioteka, która pozwala programistom na pracę z dokumentami Microsoft Excel w technologiach C# .NET, w tym plikami CSV, bez konieczności instalowania programu Microsoft Excel. Umożliwia automatyczną konwersję zarejestrowanych typów do plików CSV oraz zapisywanie plików CSV o niestandardowych strukturach.

Jakie funkcje oferuje biblioteka IronXL?

Dokumenty Microsoft Excel można odczytywać i konwertować do plików CSV za pomocą biblioteki C# IronXL .NET. IronXL to samodzielna biblioteka oprogramowania .NET, która może odczytywać różne formaty arkuszy kalkulacyjnych. Nie jest zależne od Microsoft.Office.Interop.Excel ani nie wymaga instalacji programu Microsoft Excel.

Dzięki przyjaznemu dla użytkownika interfejsowi API C# firmy IronXL można szybko odczytywać, modyfikować i tworzyć pliki arkuszy kalkulacyjnych Excel w środowisku .NET. .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS i Azure są w pełni obsługiwane przez IronXL.

  • Wiodące biblioteki arkuszy kalkulacyjnych Excel dla C# w środowiskach .NET Core i .NET Framework obejmują biblioteki IronXL.
  • Obsługiwane są praktycznie wszystkie platformy .NET Framework, w tym Console, Windows Forms i aplikacje internetowe.
  • IronXL działa w systemach operacyjnych Windows, Linux i macOS.
  • IronXL sprawia, że odczytywanie plików Excel jest proste i szybkie.
  • IronXL obsługuje wiele formatów plików Excel: XLSX, XLS, CSV, TSV, XLST i XLSM.
  • IronXL eksportuje pliki do różnych formatów, w tym XLS, CSV, TSV, JSON i XML.
  • IronXL generuje obliczenia w Excelu i obsługuje formuły.
  • IronXL obsługuje formaty danych kolumn programu Excel, w tym tekst, liczby, daty, waluty i wartości procentowe.

Więcej szczegółów można znaleźć w przeglądzie dokumentacji IronXL.

Jak utworzyć nowy projekt w Visual Studio?

W programie Visual Studio przed użyciem frameworka IronXL należy utworzyć projekt .NET. Można użyć dowolnej wersji programu Visual Studio, ale zaleca się korzystanie z najnowszej. W zależności od potrzeb można stworzyć aplikację Windows Forms lub różne szablony projektów. Aby uprościć sprawę, w tym samouczku wykorzystamy aplikację konsolową.

Okno dialogowe Utwórz nowy projekt w Visual Studio

Następnie wprowadź nazwę projektu i lokalizację.

Okno dialogowe konfiguracji projektu Visual Studio przedstawiające ustawienia nowej aplikacji konsolowej C# o nazwie Skonfiguruj nowy projekt

Następnie wybierz następującą strukturę. W projekcie tym zostanie wykorzystany .NET Core 6.

Okno dialogowe tworzenia projektu w Visual Studio pokazujące konfigurację aplikacji konsolowej z wybranym frameworkiem .NET Framework 6.0 (długoterminowe wsparcie). Wybierz wersję .NET Framework

Plik program.cs zostanie otwarty po wygenerowaniu rozwiązania przez aplikację, aby umożliwić wprowadzenie kodu programu oraz skompilowanie i uruchomienie aplikacji.

Puste okno aplikacji konsolowej C# w Visual Studio pokazujące projekt IronXLConsole z początkową strukturą kodu gotową do wdrożenia funkcji eksportu CSV. Nowo utworzony projekt aplikacji konsolowej

Bibliotekę można następnie dodać i wykorzystać do oceny kodu. W przypadku innych typów projektów, takich jak aplikacje .NET MAUI lub projekty VB.NET, proces jest podobny, ale należy uwzględnić kwestie specyficzne dla danego frameworka.

Jak zainstalować bibliotekę IronXL?

Istnieją cztery metody pobierania i instalacji biblioteki IronXL.

Są to:

  • Instalacja za pomocą Visual Studio
  • Instalacja za pomocą konsoli menedżera pakietów Visual Studio
  • Pobieranie bezpośrednio ze strony NuGet
  • Pobieranie bezpośrednio ze strony internetowej IronXL

Jakiej metody powinienem użyć do instalacji Visual Studio?

Moduł IronXL można zainstalować za pomocą menedżera pakietów NuGet. Aby znaleźć IronXL, należy najpierw uruchomić menedżera pakietów NuGet, a następnie poszukać go w panelu przeglądania. Zainstaluj IronXL, wybierając go z listy wyników wyszukiwania. Następnie biblioteka IronXL będzie mogła korzystać z tej aplikacji.

Poniższy obrazek pokazuje, jak uruchomić menedżera pakietów NuGet w programie Visual Studio.

Rozwiń menu Narzędzia programu Visual Studio, aby wyświetlić opcję Menedżer pakietów NuGet oraz podświetloną konsolę Menedżera pakietów w menu rozwijanym Narzędzia. Przejdź do menedżera pakietów NuGet

Interfejs menedżera pakietów NuGet pokazujący pakiet IronXl.Excel w wersji 2022.3.0, z liczbą 133 tys. pobrań i przyciskiem Zainstaluj pakiet IronXL w interfejsie użytkownika menedżera pakietów NuGet

Kiedy należy korzystać z konsoli menedżera pakietów?

Wielu programistów woli korzystać z konsoli do wykonywania zadań. Zatem instalacja na terminalu jest również opcją. Aby zainstalować IronXL za pomocą wiersza poleceń, postępuj zgodnie z poniższymi instrukcjami.

  • Przejdź do interfejsu Narzędzia > Menedżer pakietów NuGet > Menedżer pakietów w programie Visual Studio.
  • Wpisz następujące polecenie w zakładce konsoli menedżera pakietów:

    Install-Package IronXl.Excel
  • Poczekaj, aż IronXL zostanie pobrany i zainstalowany w aktywnym projekcie.

Konsola menedżera pakietów w Visual Studio wyświetlająca polecenie Zainstaluj pakiet IronXL w interfejsie użytkownika konsoli menedżera pakietów

Dłączego warto pobrać pliki ze strony NuGet?

Pakiet NuGet można pobrać bezpośrednio ze strony internetowej jako trzecią opcję. Ta metoda jest szczególnie przydatna podczas pracy w środowiskach z ograniczonym dostępem do Internetu lub gdy konieczne jest ręczne zarządzanie pakietami.

  • Przejdź do oficjalnego linku NuGet.
  • Opcja pobrania pakietu znajduje się w menu po prawej stronie.
  • Kliknij dwukrotnie zapisany plik. Zostanie on natychmiast zainstalowany.
  • Następnie odśwież rozwiązanie i zacznij z niego korzystać w projekcie.

Jak zainstalować bezpośrednio ze strony internetowej IronXL?

Aby pobrać najnowszy pakiet bezpośrednio ze strony internetowej, kliknij ten link, aby pobrać plik ZIP IronXL. Ten link pozwoli pobrać plik ZIP zawierający najnowszą wersję biblioteki IronXL DLL. Po zakończeniu pobierania rozpakuj zawartość pliku ZIP do dowolnego katalogu.

Aby dodać plik do projektu po pobraniu, postępuj zgodnie z poniższymi instrukcjami.

  • W oknie rozwiązań kliknij prawym przyciskiem myszy projekt.
  • Wybierz opcję Referencje, a następnie przejdź do wyodrębnionego folderu zawierającego biblioteki DLL IronXL.
  • Wybierz plik DLL i kliknij OK, aby dodać go do aktywnego projektu jako odwołanie.

W przypadku scenariuszy wdrożeniowych można również skonfigurować IronXL w kontenerach Docker lub wdrożyć na platformach chmurowych, takich jak AWS Lambda i Azure Functions.

Jak wyeksportować DataTable do pliku CSV?

DataTables można łatwo i szybko wyeksportować do plików CSV za pomocą IronXL. Pomaga zapisywać dane do nowych plików CSV z obsługą niestandardowych separatorów i opcji kodowania.

Po pierwsze, jak pokazano na poniższym obrazku kodu, należy dołączyć przestrzeń nazw IronXL, aby móc korzystać z klas i metod IronXL.

Edytor kodu C# pokazujący deklaracje przestrzeni nazw Dodaj popularne przestrzenie nazw

Pliki Excel można tworzyć za pomocą IronXL, który następnie przekształca je w obiekty WorkBook. Następnie wykonaj różne operacje na tych obiektach. Poniższy przykładowy kod utworzy plik Excel poprzez konwersję DataTable na arkusz kalkulacyjny Excel.

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data

' Entry point of the application
Shared Sub Main(ByVal args() As String)
	' Specify the file path for the CSV file output
	ExportToExcel("H:\test.csv")
End Sub

' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
	' Create a DataTable and add columns and rows
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Fruits", GetType(String))
	table.Rows.Add("Apple")
	table.Rows.Add("Orange")
	table.Rows.Add("Strawberry")
	table.Rows.Add("Grapes")
	table.Rows.Add("Watermelon")
	table.Rows.Add("Bananas")
	table.Rows.Add("Lemons")

	' Create a new WorkBook and add the DataTable data to it
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		' Write each item from the DataTable into the worksheet starting from cell A1
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	' Save the workbook as a CSV file with a specified delimiter
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

Powyższy kod eksportuje DataTable do pliku Excel. Nagłówki kolumn są tworzone po utworzeniu DataTable. Następnie, po utworzeniu pierwszej kolumny, dodaj wiersze pojedynczo. Obiekt WorkBook jest tworzony po dodaniu kolumn i wierszy do obiektu DataTable w celu przechowywania tych danych. Następnie tworzony jest obiekt WorkSheet, który jest dodawany do obiektu WorkBook.

Każda wartość z DataTable jest odczytywana i dodawana za pomocą pętli foreach przed dodaniem wartości do WorkSheet. Po dodaniu wszystkich wartości do arkusza kalkulacyjnego metoda SaveAsCsv zapisuje je do pliku CSV. Jako parametry można określić zarówno separator, jak i lokalizację pliku.

W bardziej złożonych scenariuszach warto wyeksportować wiele tabel danych jako różne arkusze lub pracować z zestawami danych, aby uzyskać bardziej uporządkowaną organizację danych.

Praca z różnymi formatami CSV

IronXL zapewnia elastyczność podczas pracy z plikami CSV. Oto przykład pokazujący, jak wyeksportować DataTable z niestandardowym formatowaniem i kodowaniem:

// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
Imports System.Text

' Export with custom delimiter and encoding
Public Shared Sub ExportToCSVWithOptions(dataTable As DataTable, filepath As String)
    ' Create workbook from DataTable
    Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
    Dim ws As WorkSheet = wb.CreateWorkSheet("DataExport")

    ' Add headers
    For i As Integer = 0 To dataTable.Columns.Count - 1
        ws($"{ChrW(AscW("A"c) + i)}1").Value = dataTable.Columns(i).ColumnName
    Next

    ' Add data rows
    For row As Integer = 0 To dataTable.Rows.Count - 1
        For col As Integer = 0 To dataTable.Columns.Count - 1
            ws($"{ChrW(AscW("A"c) + col)}{row + 2}").Value = dataTable.Rows(row)(col)
        Next
    Next

    ' Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", Encoding.UTF8)
End Sub
$vbLabelText   $csharpLabel

Takie podejście zapewnia większą kontrolę nad procesem eksportu, umożliwiając ustawienie formatów danych komórek i dostosowanie struktury wynikowej.

Arkusz kalkulacyjny Excel zawierający listę owoców (jabłka, pomarańcze, truskawki, winogrona, arbuzy, banany, cytryny) w kolumnie A, z prawidłowym formatowaniem CSV i bez dodatkowych separatorów. Plik CSV wyjściowy

Wynik działania przykładowego kodu przedstawiono powyżej. Na zrzucie ekranu każdy element danych z tabeli został indywidualnie dodany do nowo utworzonego arkusza Excel. Przed eksportem można również zastosować formatowanie komórek lub dodać formuły do obliczanych wartości.

W przypadku bardziej zaawansowanych operacji na plikach CSV można:

Aby dowiedzieć się więcej o samouczku IronXL, kliknij ten poradnik dotyczący eksportu do formatów Excel.

Dłączego warto używać IronXL do eksportu plików CSV?

Jednym z najpopularniejszych narzędzi do pracy z Excelem jest IronXL. Nie opiera się na żadnych innych bibliotekach pochodzących ze źródeł zewnętrznych. Jest to rozwiązanie autonomiczne i nie wymaga instalacji programu Microsoft Excel. Działa na wielu kanałach.

IronXL zapewnia kompleksowe rozwiązanie do programowego wykonywania wszystkich zadań związanych z dokumentami Microsoft Excel. Można wykonywać obliczenia formuł, sortować ciągi znaków lub liczby, przycinać i dołączać, wyszukiwać i zamieniać, łączyć i rozdzielać, zapisywać pliki itp. Można również ustawiać formaty danych komórek oraz sprawdzać poprawność danych w arkuszu kalkulacyjnym. Obsługuje również odczyt i zapis plików CSV oraz ułatwia pracę z danymi w formacie Excel.

Dodatkowe korzyści obejmują:

Cena początkowa IronXL w momencie premiery wynosi $799. Oferuje również użytkownikom możliwość opłacenia rocznej subskrypcji w celu uzyskania pomocy technicznej i aktualizacji produktu. Za dodatkową opłatą IronXL oferuje zabezpieczenie umożliwiające nieograniczoną redystrybucję. Aby uzyskać więcej informacji na temat orientacyjnych cen, odwiedź tę stronę dotyczącą licencji.

Często Zadawane Pytania

Jak wyeksportować tabelę danych (DataTable) do pliku CSV w języku C#?

Możesz użyć IronXL do wyeksportowania tabeli danych (DataTable) do pliku CSV, tworząc skoroszyt (WorkBook) i eksportując dane do obiektów arkusza roboczego. Pozwala to na płynną konwersję i eksport bez konieczności korzystania z programu Microsoft Excel.

Jakie formaty plików mogę eksportować za pomocą tej biblioteki?

IronXL umożliwia eksport danych do różnych formatów, takich jak XLS, CSV, TSV i JSON, zapewniając elastyczność w obsłudze różnych potrzeb związanych z danymi.

Czy za pomocą tej biblioteki można wykonywać operacje podobne do tych w programie Excel?

Tak, IronXL umożliwia operacje podobne do tych w programie Excel, takie jak obliczenia formuł, sortowanie danych i zapisywanie plików, co czyni go wszechstronnym narzędziem do zadań programistycznych związanych z Excelem.

Czy muszę zainstalować program Microsoft Excel, aby korzystać z tej biblioteki?

Nie, biblioteka IronXL to samodzielna biblioteka .NET, która nie wymaga instalacji programu Microsoft Excel, umożliwiając programistom pracę z dokumentami Excel bezpośrednio w ich aplikacjach C#.

Z jakimi platformami jest kompatybilna ta biblioteka?

IronXL jest kompatybilny z wieloma platformami, w tym .NET Core, .NET Framework, Xamarin, a także systemami operacyjnymi, takimi jak Windows, Linux i macOS.

Jak zainstalować bibliotekę IronXL w moim projekcie?

IronXL można zainstalować w projekcie .NET przy użyciu programu Visual Studio, korzystając z menedżera pakietów NuGet lub pobierając go bezpośrednio ze stron internetowych NuGet lub IronXL.

Jakie są dostępne opcje cenowe dla tej biblioteki?

IronXL oferuje cenę początkową z opcjami rocznej subskrypcji, która obejmuje pomoc techniczną i aktualizacje, zapewniając stałe wsparcie i dostęp do najnowszych funkcji.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie