How to Use C# to Convert Datatable to CSV
Konwertuj DataTable na CSV w C# używając IronXL poprzez stworzenie WorkBook, wypełniając go wierszami DataTable i wywołując metodę SaveAsCsv() — bez potrzeby skomplikowanych pętli czy Interopu.
Szybki start: Eksport DataTable do CSV w jednej linii
Użyj IronXL, aby skonwertować wypełniony DataTable na plik CSV z jednym wywołaniem metody — bez pętli, bez Interopu, bez złożoności. Potrzebujesz tylko WorkBook i jego DefaultWorkSheet, aby wyeksportować dane w ciągu kilku sekund za pomocą SaveAsCsv.
-
Install IronXL with NuGet Package Manager
PM > Install-Package IronXl.Excel -
Skopiuj i uruchom ten fragment kodu.
IronXL.WorkBook.Create().DefaultWorkSheet.SaveAsCsv("output.csv", ","); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz i zainstaluj bibliotekę konwertującą DataTable na CSV w C#
- Użyj klasy `DataTable` do przechowywania nowych danych
- Utwórz nowy lub zaimportuj istniejący arkusz kalkulacyjny
- Przejdź pętlą przez wiersze tabeli i odpowiednio wypełnij komórki w arkuszu
- Eksportuj do pliku CSV za pomocą funkcji C# `SaveAsCsv`
Krok 1
Jak zainstalować IronXL w moim projekcie?
Musisz zainstalować IronXL, zanim użyjesz go w swoich aplikacjach. IronXL oferuje wiele możliwości instalacji dla twoich projektów. IronXL to biblioteka, która upraszcza pracę z plikami Excel w C# bez potrzeby instalacji Microsoft Excel lub Interopu.
Jaka metoda instalacji powinna być użyta?
Pobierz z oficjalnej strony używając poniższego linku: https://ironsoftware.com/csharp/excel/docs/
lub
- W Visual Studio wybierz menu Projekt
- Kliknij Zarządzaj pakietami NuGet
- Wyszukaj IronXL.Excel
- Kliknij Zainstaluj
Jakiej komendy NuGet powinienem użyć?
Install-Package IronXl.Excel
Dlaczego warto wybrać NuGet Package Manager?
NuGet to preferowana metoda dla deweloperów .NET, ponieważ automatycznie zarządza zależnościami i utrzymuje biblioteki w aktualności. Pakiet IronXL zawiera wszystkie niezbędne komponenty do konwersji typów plików arkusza kalkulacyjnego oraz pracy z różnymi formatami Excel.
Poradnik "Jak to zrobić"
Jak stworzyć i wyeksportować DataTable do CSV?
Proces konwersji DataTable do CSV polega na stworzeniu WorkBook, wypełnieniu go danymi i użyciu wbudowanej funkcji zapisywania CSV IronXL. To podejście jest bardziej wydajne niż ręczne tworzenie ciągów CSV czy używanie tradycyjnych metod strumieniowych.
Jaki przestrzeń nazw muszę zaimportować?
Najpierw zaimportuj przestrzeń nazw IronXL. IronXL zapewnia kompleksowe wsparcie dla importu i eksportu obiektów DataSet i DataTable, co czyni go idealnym dla aplikacji opartych na bazach danych.
using IronXL;
using IronXL;
Imports IronXL
Jaki jest kompletny przykład kodu?
Dodaj następujący kod:
:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;
// Create a new DataTable object
DataTable table = new DataTable();
// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));
// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";
// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Initialize rowCounter for Excel sheet rows
int rowCount = 1;
// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
// Populate worksheet cells with data from DataTable
ws["A" + (rowCount)].Value = row[0].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
Imports IronXL
Imports System
Imports System.Data
' Create a new DataTable object
Dim table As New DataTable()
' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(String))
' Add rows to the DataTable
table.Rows.Add("0")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")
' Create a new Excel workbook and set its author metadata
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"
' Get the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1
' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
' Populate worksheet cells with data from DataTable
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next
' Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Will be saved as: Save_DataTable_CSV.Sheet1.csv
Jak kod działa krok po kroku?
Powyższy kod tworzy DataTable, tworzy nowy skoroszyt, określając 'OJ' jako jego właściciela, a następnie używa pętli foreach do wstawienia danych z DataTable do arkusza Excel. Na koniec metoda SaveAsCsv eksportuje datatable do CSV.
Podział procesu:
-
Tworzenie DataTable: Zainicjalizuj nowy
DataTablei określ jego schemat, dodając kolumny. To przypomina definiowanie struktury tabeli bazy danych. -
Wypełnianie danymi: Dodaj wiersze do
DataTableużywając metodyRows.Add(). Każdy wiersz reprezentuje zapis do eksportu CSV. -
Generowanie skoroszytu: Metoda
WorkBook.Create()IronXL inicjalizuje nowy skoroszyt Excel. Możesz również tworzyć arkusze kalkulacyjne z wieloma arkuszami, jeśli to potrzebne. -
Wypełnianie komórek: Pętla foreach iteruje przez wiersze
DataTablei mapuje każdą wartość do konkretnej komórki arkusza przy użyciu składni referencji komórek (np. "A1", "A2"). - Eksport do CSV: Metoda
SaveAsCsv()obsługuje złożoności formatowania CSV, w tym właściwe ucieczkowanie znaków specjalnych i obsługę separatorów.
A co z zaawansowanymi scenariuszami DataTable?
Dla złożonych DataTable z wieloma kolumnami rozszerz kod w ten sposób:
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));
--snip--
workbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));
--snip--
workbook.SaveAsCsv("products.csv", ",");
' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(Decimal))
' --snip--
workbook.SaveAsCsv("products.csv", ",")
Jak wygląda wynik?
Wyjściowy arkusz Excel wygląda następująco:
Jak sobie radzić z dużymi DataTable?
Podczas pracy z dużymi DataTable zawierającymi tysiące wierszy, IronXL utrzymuje doskonałą wydajność. Biblioteka efektywnie obsługuje duże zestawy danych. Dla środowisk produkcyjnych, zastosuj swój klucz licencyjny, aby usunąć znaki wodne i włączyć pełną funkcjonalność.
A co z obsługą błędów?
Zawsze implementuj odpowiednie obsługi błędów podczas pracy z operacjami plikowymi:
try
{
// Your DataTable to CSV conversion code
WorkBook wb = WorkBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating CSV: {ex.Message}");
}
try
{
// Your DataTable to CSV conversion code
WorkBook wb = WorkBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating CSV: {ex.Message}");
}
Try
' Your DataTable to CSV conversion code
Dim wb As WorkBook = WorkBook.Create()
' ... rest of the code
wb.SaveAsCsv("output.csv", ",")
Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
Console.WriteLine($"Error creating CSV: {ex.Message}")
End Try
Szybki dostęp do biblioteki
Dokumentacja API IronXL
Dowiedz się więcej i podziel się informacjami na temat scalania, rozdzielania i pracy z komórkami w arkuszach kalkulacyjnych Excel, korzystając z przydatnej Dokumentacji API IronXL.
Dokumentacja API IronXLCzęsto Zadawane Pytania
Jak skonwertowac DataTable do CSV w C# bez pisania zlozonych petli?
IronXL zapewnia proste rozwiazanie w jednej linii do konwersji DataTable do CSV. Po utworzeniu WorkBook i wypelnieniu go danymi DataTable, mozesz uzyc metody SaveAsCsv(), aby bezposrednio wyeksportowac do formatu CSV bez pisania petli lub uzycia Interop.
Jakie sa opcje instalacji biblioteki do konwersji DataTable do CSV?
IronXL mozna zainstalowac za posrednictwem NuGet Package Manager w Visual Studio, wyszukujac 'IronXl.Excel' lub uzywajac linii polecen NuGet. Jest to preferowana metoda, poniewaz automatycznie zarzadza zaleznosciami i utrzymuje biblioteke aktualna.
Czy musze miec zainstalowany Microsoft Excel, aby skonwertowac DataTable do CSV?
Nie, IronXL dziala niezaleznie bez potrzeby instalacji Microsoft Excel lub Interop. To samodzielna biblioteka, ktora upraszcza prace z plikami Excel i eksport CSV w aplikacjach C#.
Jakie przestrzen nazw musze zaimportowac do konwersji DataTable do CSV?
Musisz zaimportowac przestrzen nazw IronXL, dodajac 'using IronXL;' na poczatku pliku C#. To zapewnia dostep do kompleksowego wsparcia importu i eksportu obiektow DataSet i DataTable.
Czy moge okreslic niestandardowy separator podczas eksportu do CSV?
Tak, metoda IronXL's SaveAsCsv() pozwala okreslic niestandardowy separator. W przykladzie kodu, przecinek (",") jest uzywany jako separator, ale mozesz go zmienic na dowolny znak, ktory odpowiada twoim wymaganiom.

