Przejdź do treści stopki
KORZYSTANIE Z IRONXL

C# Najszybsza metoda eksportowania DataTable do Excel

Pracując z arkuszami kalkulacyjnymi, aplikacja Microsoft Excel to popularne narzędzie do obsługi dużych zestawów danych w formacie tabelarycznym. Oferuje zaawansowane funkcje takie jak skomplikowane obliczenia, wizualizacja danych przez wykresy i grafiki, tabele przestawne oraz wsparcie dla automatyzacji za pomocą Visual Basic for Applications (VBA). Jej solidne narzędzia analizy danych i wizualizacji sprawiły, że Excel jest wiodącym wyborem w różnych branżach. Dzięki Excel można łatwo tworzyć, edytować, przeglądać i udostępniać pliki, ułatwiając zarządzanie danymi.

W C# obiekt DataTable z biblioteki ADO.NET reprezentuje dane tabelaryczne w obrębie programu, podobnie jak arkusz kalkulacyjny w Excelu. Organizuje dane w wiersze i kolumny, umożliwiając łatwą manipulację i eksport. Podobnie jak Excel, DataTable obsługuje opcje filtrowania, sortowania i formatowania, czyniąc go narzędziem do zarządzania zakresem danych w C#. Jednak DataTable jest tworzony w czasie wykonywania, a jego dane są tracone po zamknięciu aplikacji, chyba że zostaną wyeksportowane do trwalszego formatu, takiego jak plik Excel lub CSV.

Dziś będziemy badać, jak stworzyć DataTable w C# i wyeksportować jego dane do dokumentu Excel za pomocą IronXL, potężnej biblioteki .NET do Excela.

IronXL: Biblioteka Excel dla .NET

IronXL to biblioteka C# .NET, która upraszcza proces tworzenia plików Excel. Dzięki IronXL można tworzyć nowe arkusze kalkulacyjne, edytować istniejące, pracować z formułami Excela, ustawiać styl komórek w arkuszu i wiele więcej. Jej bogaty zakres funkcji sprawia, że praca z plikami Excel programowo jest niezwykle łatwa, a co najważniejsze, IronXL działa bez potrzeby używania Microsoft Office Interop. Oznacza to, że nie ma potrzeby instalowania Microsoft Office ani jakichkolwiek innych specjalnych zależności.

Z IronXL możesz zapisać lub wyeksportować dane w różnych formatach, takich jak XLS i XLSX, CSV, TSV, JSON, XML i HTML, a także w formacie binarnym i jako tablica bajtów. Posiada także silne funkcje zabezpieczeń skoroszytu, takie jak dodawanie uprawnień i haseł oraz umożliwia edycję metadanych skoroszytu.

Kroki eksportu danych z DataTable do pliku Excel

Wymagania wstępne

Aby użyć IronXL do eksportu danych z DataTable do pliku Excel w C#, potrzebujemy zainstalować następujące komponenty na lokalnym komputerze. Przyjrzyjmy się im po kolei.

  1. Visual Studio - Visual Studio to IDE do programowania w C# i musi być zainstalowane. Można pobrać i zainstalować najnowszą wersję z strony Visual Studio.

    • Po skonfigurowaniu IDE, należy utworzyć aplikację konsolową/formę w Windows, która ułatwi eksport DataTable do Excela. Poniższe zrzuty ekranu pokazują, jak utworzyć projekt.

Utwórz projekt

Teraz wybierz typ projektu. W naszym przykładzie stworzymy aplikację konsolową.

Aplikacja konsolowa

Nazwij swój projekt i wybierz lokalizację, w której zostanie zapisany.

Nazwij projekt

W końcu wybierz .NET Framework i kliknij "Utwórz".

.NET Framework

Po kliknięciu Utwórz na ostatnim zrzucie ekranu zostaje utworzony projekt o nazwie "DemoApp".

  1. Biblioteka IronXL - Biblioteka IronXL musi zostać pobrana i zainstalowana w projekcie Visual Studio. Istnieje wiele sposobów, aby to zrobić.
  • Użycie Visual Studio - Dostarcza managera pakietów NuGet do instalacji IronXL. Możesz go uruchomić przez menu Tools lub Solution Explorer. Poniższe zrzuty ekranu pomogą zainstalować IronXL. Najpierw przejdź do "Tools" na górnym pasku lub kliknij prawym przyciskiem myszy w obrębie Solution Explorer.

Eksplorator rozwiązań

Narzędzia - Menedżer pakietów NuGet

Przejdź do Manage NuGet Packages for Solution i wyszukaj IronXL. Następnie wystarczy nacisnąć "Zainstaluj", a biblioteka IronXL zostanie dodana do twojego projektu.

Przeglądaj IronXL

  • Developer Command Prompt - Otwórz Developer Command Prompt z menu narzędzi Visual Studio lub z folderu Visual Studio. Wpisz następujące polecenie, aby pobrać i zainstalować IronXL w swoim projekcie:

     PM > Install-Package IronXL.Excel
     PM > Install-Package IronXL.Excel
    SHELL
  1. Dodaj niezbędne przestrzenie nazw - Aby stworzyć DataTable i używać IronXL, oba powinny być odwoływane na początku pliku Program.cs.

    using IronXL; // Add reference to the IronXL library
    using System.Data; // Add reference to System.Data for DataTable
    using IronXL; // Add reference to the IronXL library
    using System.Data; // Add reference to System.Data for DataTable
    Imports IronXL ' Add reference to the IronXL library
    Imports System.Data ' Add reference to System.Data for DataTable
    $vbLabelText   $csharpLabel

Gdy wszystkie wymagania wstępne są spełnione, nadszedł czas na eksport danych z DataTable do arkusza Excela.

Create a DataTable in C

Poniższy kod tworzy nową tabelę danych z dwoma nagłówkami kolumn i wieloma wierszami:

// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
' Create a new DataTable object
Dim dt As New DataTable()
' Add column names to the DataTable
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
' Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars")
dt.Rows.Add("Dog", "Barks")
dt.Rows.Add("Cat", "Meows")
dt.Rows.Add("Goat", "Bleats")
dt.Rows.Add("Wolf", "Howls")
dt.Rows.Add("Cheetah", "Purrs")
$vbLabelText   $csharpLabel

Najpierw tworzymy nową DataTable o nazwie "dt". Następnie, używając Columns.Add, możemy dodać określoną liczbę kolumn do tabeli danych według nazwy; w naszym przykładzie mamy dwie kolumny o nazwach "Zwierzę" i "Dźwięk". Używamy następnie Rows.Add do dodawania nowych wierszy, umieszczając zawartość dla każdego wiersza w nawiasach. Zawartość jest oddzielona przecinkami, każda string dla kolumny.

Create Excel File using IronXL in C

Podczas tworzenia plików typu Excel od podstaw przy użyciu IronXL, proces ten składa się z dwóch kroków i łatwo go wdrożyć w C#. IronXL najpierw tworzy skoroszyt Excel, a następnie pomaga dodać do niego arkusz. Poniższy przykładowy kod demonstruje, jak utworzyć skoroszyt wraz z arkuszem:

// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheet
$vbLabelText   $csharpLabel

Eksportowanie danych z DataTable do arkusza Excel przy użyciu IronXL

Wykorzystanie IronXL do dodania wartości do arkusza znacznie upraszcza cały proces, umożliwiając realizację tego zadania przy minimum kodu. Tutaj nauczymy się, jak eksportować dane z DataTable utworzonego w poprzedniej sekcji do nowo utworzonego arkusza Excela. Spójrzmy na kod krok po kroku.

Dodawanie nagłówka kolumn do arkusza Excela

// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
' Assign DataTable column names to the first row of the Excel worksheet
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
' Start adding data from the second row
Dim rowCount As Integer = 2
$vbLabelText   $csharpLabel

W powyższym kodzie kolumna arkusza Excel "A1" jest przypisana wartości z kolumny DataTable 1 o indeksie 0, a następna wartość kolumny Excel "B1" jest przypisana z kolumny 2 o indeksie 1 w DataTable. Zmienna rowCount jest ustawiona na wartość 2, aby odczytać wiersze z DataTable od wiersza drugiego; to zapewnia, że nie liczymy wiersza nagłówka.

Dodawanie wierszy do arkusza Excela

Poniższy kod odczyta każdy wiersz z DataTable i przypisze go do nowego wiersza w pliku Excel:

// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
' Iterate through each row in the DataTable and add to Excel worksheet
For Each row As DataRow In dt.Rows
	ws("A" & (rowCount)).Value = row(0).ToString()
	ws("B" & (rowCount)).Value = row(1).ToString()
	rowCount += 1
Next row
$vbLabelText   $csharpLabel

Zmienna rowCount jest inkrementowana za każdym razem, aby nowy wiersz został odczytany z komórek arkusza DataTable do Excela w powyższym kodzie.

Zapisz plik Excel

W końcu zapisz plik Excel za pomocą metody SaveAs().

// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
$vbLabelText   $csharpLabel

Plik można zapisać również w innych formatach, np. CSV (Comma Separated Values), JSON, XML.

// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
' Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
$vbLabelText   $csharpLabel

Możesz go także zapisać z niestandardowym separatorem.

Wynik

Ostateczny wynik pliku wygląda tak:

DataTable do Excel Output

Podsumowanie

W tym artykule pokazaliśmy, jak stworzyć DataTable z kolumnami i wierszami w C#, a następnie wygenerować skoroszyt Excel z domyślnym arkuszem przy użyciu IronXL. Pomyślnie wyeksportowaliśmy dane tabelaryczne z DataTable do pliku Excela i zapisaliśmy go w formacie .xlsx.

IronXL to przyjazna użytkownikowi biblioteka C#, która pozwala programistom pracować z plikami Excel bezproblemowo, nawet bez zainstalowanego MS Excela. Wsparcie eksportowania danych z różnych formatów, takich jak pliki CSV, do dalszej manipulacji i obliczeń.

Aby dowiedzieć się więcej o IronXL i jego solidnym zestawie funkcji, koniecznie zapoznaj się z jego obszerną dokumentacją. Chcesz wypróbować sam? IronXL oferuje również darmową wersję próbną z pełnym dostępem do wszystkich funkcji, dzięki czemu możesz rozpocząć odkrywanie, jak ta potężna biblioteka może ulepszyć twoje projekty arkuszy kalkulacyjnych już teraz!

Często Zadawane Pytania

Jak szybko wyeksportować tabelę danych do programu Excel przy użyciu języka C#?

Możesz użyć biblioteki IronXL.Excel, aby efektywnie eksportować tabelę danych do programu Excel. Biblioteka ta pozwala tworzyć pliki Excel i manipulować nimi bez konieczności korzystania z Microsoft Office Interop.

Jakie narzędzia są potrzebne do eksportowania tabeli danych (DataTable) do programu Excel w języku C#?

Aby wyeksportować tabelę danych do programu Excel za pomocą biblioteki IronXL, należy zainstalować program Visual Studio oraz dodać bibliotekę IronXL do projektu za pomocą menedżera pakietów NuGet.

Jak utworzyć tabelę danych (DataTable) w aplikacji napisanej w języku C#?

W języku C# tworzy się tabelę danych (DataTable) poprzez instancjonowanie nowego obiektu DataTable. Następnie można dodawać kolumny za pomocą metody Columns.Add i wypełniać ją wierszami za pomocą metody Rows.Add.

Jaka jest metoda eksportowania danych z tabeli DataTable do pliku Excel?

Aby wyeksportować dane z tabeli DataTable do pliku Excel, należy przejrzeć każdy wiersz tabeli DataTable i przypisać wartości do odpowiednich komórek w Excelu, korzystając z funkcji IronXL.

Czy mogę zapisać plik Excel w różnych formatach za pomocą biblioteki .NET?

Tak, dzięki IronXL możesz zapisywać pliki Excel w różnych formatach, w tym XLSX, CSV, JSON i XML, a nawet określać niestandardowe separatory.

Czy do zarządzania plikami Excel za pomocą biblioteki C# potrzebny jest pakiet Microsoft Office?

Nie, nie musisz mieć zainstalowanego pakietu Microsoft Office. IronXL umożliwia zarządzanie plikami Excel programowo bez konieczności korzystania z interfejsu Microsoft Office Interop.

Jakie są zalety korzystania z biblioteki .NET Excel?

IronXL oferuje wiele korzyści, takich jak tworzenie i edycja plików Excel, stosowanie formuł, formatowanie komórek oraz eksport danych w wielu formatach. Obsługuje również funkcje bezpieczeństwa, takie jak ochrona hasłem.

Jakie kroki należy wykonać, aby zapisać skoroszyt Excel programowo?

Aby zapisać skoroszyt Excel za pomocą IronXL, należy użyć metody SaveAs, wybierając żądany format pliku, taki jak XLSX, CSV lub JSON.

Czy dostępna jest bezpłatna wersja próbna biblioteki .NET Excel?

Tak, IronXL oferuje bezpłatną wersję próbną, która zapewnia pełny dostęp do wszystkich funkcji, umożliwiając programistom przetestowanie możliwości programu przed podjęciem decyzji o zakupie.

Gdzie mogę znaleźć szczegółową dokumentację dotyczącą korzystania z biblioteki .NET Excel?

Kompleksowa dokumentacja dotycząca IronXL, w tym przewodniki i przykłady, jest dostępna na oficjalnej stronie internetowej.

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