
Jak konwertować DataSet do CSV w C#
W poniższym artykułe zostanie pokazane, jak przekonwertować zbiór danych C# na plik CSV.
IronXL to doskonałe rozwiązanie do pracy z arkuszami kalkulacyjnymi, zarówno w formacie CSV, jak i plikach Excel. IronXL jest darmowy do celów programistycznych, łatwy w użyciu i oferuje szeroki zakres funkcji do pracy z dowolnym rodzajem arkusza kalkulacyjnego. Jest bezpieczny i zapewnia wysoką wydajność. Zanim przejdziemy dalej, zapoznajmy się pokrótce z IronXL.
IronXL
IronXL to biblioteka firmy Iron Software, która umożliwia programistom C# odczytywanie, generowanie i edytowanie plików Excel (oraz innych arkuszy kalkulacyjnych) w aplikacjach .NET i na stronach internetowych.
IronXL to szybki i łatwy sposób na pracę z plikami Excel i innymi arkuszami kalkulacyjnymi w języku C# i środowisku .NET. IronXL dobrze współpracuje z .NET Framework, .NET Core i Azure bez konieczności korzystania z Office Excel Interop. IronXL nie wymaga również instalacji pakietu Microsoft Office ani żadnych innych podobnych zależności.
Przejdźmy do tworzenia i pisania kodu służącego do generowania pliku CSV dla zbioru danych.
Utwórz nowy projekt Visual Studio
Otwórz środowisko IDE Visual Studio; zalecana jest najnowsza wersja Visual Studio, ale możesz użyć dowolnej wersji zgodnie z własnymi preferencjami. Należy pamiętać, że kroki tworzenia nowego projektu mogą się różnić w zależności od wersji.
Okno startowe programu Visual Studio
Kliknij Utwórz nowy projekt. Pojawi się nowe okno, jak pokazano poniżej.
Utwórz nowy projekt w Visual Studio
Wybierz preferowany szablon projektu z listy. Kliknij przycisk Dalej, a pojawi się nowe okno, jak pokazano poniżej.
Skonfiguruj nowo utworzony projekt
Nadaj nazwę projektowi, wybierz jego lokalizację i naciśnij przycisk Dalej. Pojawi się nowe okno, jak pokazano poniżej.
Wybierz wersję .NET Framework
Wybierz docelową platformę .NET Framework. Możesz wybrać dowolną wersję .NET Framework, która odpowiada Twoim potrzebom, ponieważ IronXL obsługuje wszystkie wersje .NET Framework. W tym samouczku zostanie użyty .NET 7. Kliknij przycisk Utwórz, a zostanie utworzony nowy projekt, jak pokazano poniżej.
nowa aplikacja konsolowa w Visual Studio
Teraz zainstaluj pakiet IronXL NuGet, aby móc z niego korzystać w tej aplikacji.
Zainstaluj IronXL
Otwórz konsolę menedżera pakietów NuGet i wprowadź następujące polecenie.
Pakiet NuGet zostanie zainstalowany i będzie gotowy do użycia, jak pokazano poniżej.
Instalacja pakietu IronXL i jego zależności
Teraz napiszmy kod, który przekształci zbiór danych w plik CSV w języku C#.
W tym przykładzie zostaną wprowadzone dane z bazy danych serwera SQL. Po pobraniu zbioru danych z bazy SQL utworzymy plik CSV na podstawie tych danych wejściowych.
Utwórz tabelę danych
Pierwszym krokiem jest pobranie danych z bazy SQL, ale można użyć dowolnego źródła danych.
W tym samouczku wykorzystano następujące dane:
Utwórz nową bazę danych z przykładowymi danymi
Oto skrypt SQL służący do tworzenia przykładowych danych:
USE Test_DB;
CREATE TABLE STUDENT_DATA
(
REG_NUM INT PRIMARY KEY,
FIRST_NAME VARCHAR(30),
LAST_NAME VARCHAR(30),
CLASS VARCHAR(5),
CONTACT_NUM VARCHAR(15)
);
INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');
Poniższy kod w języku C# służy do eksportowania tabeli danych do pliku CSV.
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;
class Program
{
// Method to retrieve data from SQL database and return as DataTable
public static DataTable GetData()
{
// Define connection string (modify accordingly for your local server)
string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
string query = "SELECT * FROM STUDENT_DATA";
try
{
// Create SQL connection
using SqlConnection conn = new SqlConnection(connString);
// Create SQL command
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
// Create data adapter
using SqlDataAdapter da = new SqlDataAdapter(cmd);
// Query the database and return the result to a data table
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
throw;
}
}
static void Main(string[] args)
{
// Retrieve data and store it in a DataTable
DataTable table = GetData();
// Create a new Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "JOHN";
// Use the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
int rowCount = 1;
// Populate the worksheet with data from the DataTable
foreach (DataRow row in table.Rows)
{
ws[$"A{rowCount}"].Value = row[0].ToString();
ws[$"B{rowCount}"].Value = row[1].ToString();
ws[$"C{rowCount}"].Value = row[2].ToString();
ws[$"D{rowCount}"].Value = row[3].ToString();
ws[$"E{rowCount}"].Value = row[4].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
}
}Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL
Friend Class Program
' Method to retrieve data from SQL database and return as DataTable
Public Shared Function GetData() As DataTable
' Define connection string (modify accordingly for your local server)
Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
Dim query As String = "SELECT * FROM STUDENT_DATA"
Try
' Create SQL connection
Using conn As New SqlConnection(connString)
' Create SQL command
Dim cmd As New SqlCommand(query, conn)
conn.Open()
' Create data adapter
Using da As New SqlDataAdapter(cmd)
' Query the database and return the result to a data table
Dim dt As New DataTable()
da.Fill(dt)
Return dt
End Using
End Using
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
Throw
End Try
End Function
Shared Sub Main(ByVal args() As String)
' Retrieve data and store it in a DataTable
Dim table As DataTable = GetData()
' Create a new Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "JOHN"
' Use the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
' Populate the worksheet with data from the DataTable
For Each row As DataRow In table.Rows
ws($"A{rowCount}").Value = row(0).ToString()
ws($"B{rowCount}").Value = row(1).ToString()
ws($"C{rowCount}").Value = row(2).ToString()
ws($"D{rowCount}").Value = row(3).ToString()
ws($"E{rowCount}").Value = row(4).ToString()
rowCount += 1
Next row
' Save the workbook as a CSV file
wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
End ClassWyjaśnienie kodu
-
Metoda
GetData()pobiera dane z bazy danych SQL Server i zwraca je jakoDataTable. -
W metodzie
Maintworzony jestWorkBookprzy użyciu IronXL, a następnie dane są wprowadzane doWorkSheet. -
Pętla
foreachiteruje przez wierszeDataTable, wstawiając każdą wartość w nowy wiersz wWorkSheet. -
Na koniec, plik CSV jest zapisywany przy użyciu funkcji
SaveAsCsvdostarczonej przez IronXL.
Wynik
Plik CSV wygenerowany przez ten program wygląda następująco:
Plik wyjściowy CSV
Widać wyraźnie, że plik CSV został wygenerowany poprawnie i jest zgodny z podanymi danymi wejściowymi.
Podsumowanie
W tym artykułe pokazano, jak utworzyć plik CSV w języku C# na podstawie zbioru danych. Biblioteka może również odczytywać pliki CSV przy użyciu języka C#. Zbiór danych z bazy danych SQL Server jest wypełniany i tworzy plik CSV w trzech krokach:
- Pobieranie danych z serwera SQL.
- Wprowadź dane do tabeli danych.
- Utwórz plik CSV na podstawie tej tabeli danych.
Jak pokazano powyżej, tworzenie plików CSV w .NET 7 za pomocą IronXL jest bardzo proste. Wydajność programu jest wyjątkowa, ponieważ został on napisany w .NET 7 z wykorzystaniem IronXL. IronXL oferuje inne przydatne funkcje, takie jak tworzenie, odczytywanie i edycja plików Excel. Więcej szczegółów można znaleźć w oficjalnej dokumentacji.
Ponadto IronPDF oferuje programistom metody renderowania dokumentów PDF na obrazy oraz wyodrębniania tekstu i treści z plików PDF. Ponadto IronPDF umożliwia również renderowanie wykresów w plikach PDF, dodawanie BARCODE-ów oraz programowe zwiększanie bezpieczeństwa za pomocą haseł.
Bezpłatna wersja IronXL służy do celów programistycznych. Aby wdrożyć aplikację w środowisku produkcyjnym, należy pobrać bezpłatną wersję próbną lub nabyć licencję komercyjną. IronXL jest częścią pakietu Iron Suite, który składa się z pięciu bibliotek:
- IronXL, który jest dzisiaj omawiany.
- IronPDF do generowania, odczytu i edycji plików PDF
- IronOCR do wyodrębniania tekstu z obrazów
- IronBarcode do odczytu i generowania kodów kreskowych
- IronWebScraper do pozyskiwania danych strukturalnych ze stron internetowych.
Wszystkie te produkty można nabyć w cenie dwóch, jeśli zostaną zakupione razem.

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.
Powiązane artykuły



