DataTable do Excel w C# (Przykład kodu Samouczek)
Programowa modyfikacja arkusza kalkulacyjnego Excel może być trudna z dwóch głównych powodów. Po pierwsze, podczas pracy z arkuszami kalkulacyjnymi użytkownicy muszą zachować spójny interfejs i strukturę dokumentu, co nie zawsze jest proste. Po drugie, nie zawsze jest jasne, który kod zadziała w konkretnych sytuacjach, zwłaszcza gdy w grę wchodzą skomplikówane obliczenia. Istnieje wiele powodów, dla których programowe tworzenie pliku Excel jest trudne. Programiści muszą najpierw przekształcić dane z dokumentu Excel do formatu, który da się odczytać, a potem je przeanalizować i z powrotem przekształcić, co jest jeszcze trudniejsze. Wymyśliłem rozwiązanie tego problemu. Pokażę Ci, jak utworzyć plik Excel i bez problemu wyeksportować programowo tabelę danych (DataTable) do arkusza Excel przy użyciu biblioteki IronXL .NET Excel. Zacznijmy:
Jak wyeksportować tabelę danych do programu Excel w języku C#
- Zainstaluj bibliotekę C#, aby wyeksportować DataTable do Excela
- Utwórz nowy skoroszyt programu Excel i przejdź do arkusza
- Przeglądanie
DataRowwDataTablew języku C# - Uzyskaj dostęp do właściwości
Valuewkomórcei wypełnij arkusz danymi zDataRow - Eksportuj arkusz kalkulacyjny Excel do wybranej lokalizacji
Funkcje IronXL
- IronXL działa na różnych systemach operacyjnych, w tym Windows, Linux i macOS.
- IronXL obsługuje prawie wszystkie wersje .NET Framework, w tym aplikacje konsolowe, aplikacje Windows Forms oraz aplikacje internetowe.
- IronXL sprawia, że odczytywanie plików Excel jest proste i łatwe.
- Dzięki IronXL możemy ładować, edytować i eksportować tabele danych, eksportować zbiory danych oraz odczytywać pliki w formatach Excel, takich jak XLSX, XLS, CSV, TSV, XLST, XLSM i inne.
- IronXL pozwala nam zapisywać i eksportować pliki o różnych rozszerzeniach, w tym XLS, CSV, TSV, JSON, XLSX i inne.
- Formuły Excel można tworzyć za pomocą IronXL.
- IronXL obsługuje tekst, liczby, formuły, daty, waluty, wartości procentowe i inne formaty danych komórek programu Excel.
- Oferuje również liczne opcje sortowania, takie jak Zakres, Kolumny i Wiersze, a także inne.
- Stylizacja komórek w IronXL obejmuje między innymi czcionkę, rozmiar, wzór tła, obramowanie i wyrównanie.
- Za pomocą IronXL możemy odczytywać i eksportować dane z pliku Excel.
- IronXL nie wymaga instalacji programu Excel ani Interop na serwerze. Interfejs API IronXL jest szybszy i łatwiejszy w użyciu niż Microsoft Office, Interop i Excel.
1 Tworzenie nowego projektu w Visual Studio
Aby korzystać z biblioteki IronXL, musimy utworzyć projekt .NET w Visual Studio. Można używać dowolnej wersji programu Visual Studio, ale zalecana jest najnowsza wersja. W zależności od wymagań można utworzyć aplikację typu Windows Forms lub różne szablony projektów. Dla uproszczenia w tym samouczku wykorzystam aplikację konsolową.
Utwórz nowy interfejs użytkownika projektu w Visual Studio
Następnie wprowadź nazwę projektu i lokalizację projektu.
Krok konfiguracji podczas tworzenia nowego projektu
Następnie wybierz poniżej odpowiedni framework. W tym projekcie będziemy korzystać z .NET Core 6.
Interfejs użytkownika wyboru platformy .NET Framework
Gdy aplikacja utworzy rozwiązanie, otworzy plik program.cs, w którym można wprowadzić kod oraz skompilować i uruchomić aplikację.
Pusty plik program.cs w nowym projekcie
Następnie możemy dodać bibliotekę, aby przetestować kod.
2 Zainstaluj bibliotekę IronXL
Bibliotekę IronXL można pobrać i zainstalować na cztery sposoby.
Są to:
- Korzystanie z programu Visual Studio
- Korzystanie z wiersza poleceń programu Visual Studio.
- Bezpośrednie pobranie ze strony NuGet.
- Bezpośrednie pobranie ze strony internetowej IronXL.
2.1 Korzystanie z programu Visual Studio
Bibliotekę IronXL można zainstalować za pomocą menedżera pakietów NuGet. Najpierw musisz otworzyć menedżera pakietów NuGet, a następnie wyszukać IronXL w zakładce przeglądania. Wybierz IronXL z wyników wyszukiwania i zainstaluj go. Następnie nasz projekt będzie gotowy do użycia w bibliotece IronXL.
Poniższy zrzut ekranu pokazuje, jak otworzyć menedżera pakietów NuGet w programie Visual Studio.
Przejdź do menedżera pakietów NuGet w programie Visual Studio
IronXL w wynikach wyszukiwania:
Wyszukaj bibliotekę IronXL
2.2 Korzystanie z wiersza poleceń programu Visual Studio
Wiele osób chętnie korzysta z konsoli do wykonywania operacji. Możemy więc zainstalować to również za pomocą konsoli. Wykonaj poniższe kroki, aby zainstalować IronXL za pomocą wiersza poleceń.
- W programie Visual Studio przejdź do menu Narzędzia -> Menedżer pakietów NuGet -> Konsola menedżera pakietów.
- Wprowadź następujący wiersz w zakładce Konsola menedżera pakietów:
Install-Package IronXl.Excel
Teraz pakiet zostanie pobrany/zainstalowany w bieżącym projekcie i będzie gotowy do użycia.
Zainstaluj pakiet IronXL za pomocą konsoli
2.3 Bezpośrednie pobranie ze strony NuGet
Trzecim sposobem jest pobranie pakietu NuGet bezpośrednio ze strony internetowej.
- Przejdź do oficjalnej strony pakietu IronXL w serwisie NuGet.
- Wybierz opcję pakietu do pobrania z menu po prawej stronie.
- Kliknij dwukrotnie pobrany pakiet. Zostanie zainstalowany automatycznie.
- Następnie odśwież rozwiązanie i zacznij z niego korzystać w projekcie.
2.4 Bezpośrednie pobranie ze strony internetowej IronXL
Kliknij link, aby pobrać najnowszy pakiet bezpośrednio ze strony internetowej. Po pobraniu wykonaj poniższe kroki, aby dodać pakiet do projektu.
- Kliknij prawym przyciskiem myszy projekt w oknie rozwiązania.
- Następnie wybierz opcję "Odwołania" i wskaż lokalizację pobranego odwołania.
- Następnie kliknij OK, aby dodać odwołanie.
3 Eksportowanie tabeli danych do pliku Excel za pomocą IronXL
IronXL pozwala nam łatwo eksportować tabele danych do plików Excel przy użyciu ograniczonej liczby kroków.
Najpierw musimy dołączyć przestrzeń nazw IronXL, tak jak na poniższym zrzucie ekranu z kodem. Po dodaniu możemy używać klas i metod IronXL w naszym kodzie.
Przed użyciem biblioteki IronXL należy dołączyć namespace z IronXL
IronXL pozwala nam tworzyć pliki Excel i konwertować je na obiekty skoroszytu. Po przekształceniu ich w obiekty możemy wykonywać różnego rodzaju operacje. W poniższym przykładowym kodzie przekonwertujemy tabelę danych (DataTable) na arkusz kalkulacyjny Excel, a następnie utworzymy plik Excel.
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
Imports System
Imports System.Data
Imports IronXL
Public Class ExcelExporter
''' <summary>
''' Exports a DataTable to an Excel file using IronXL.
''' </summary>
''' <param name="filePath">The file path where the Excel file will be saved.</param>
Public Shared Sub ExportToExcel(ByVal filePath As String)
' Creating a DataTable with a single column
Dim table As New DataTable()
table.Columns.Add("DataSet_Animal", GetType(String))
' Adding some rows to the DataTable
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Cat")
table.Rows.Add("Goat")
table.Rows.Add("Panther")
table.Rows.Add("Fox")
table.Rows.Add("Cheetah")
' Creating a new Excel Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
' Accessing the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Iterating through the DataTable rows
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Adding each DataRow's first column value to the corresponding cell in the worksheet
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";")
End Sub
End Class
W powyższym kodzie eksportujemy tabelę DataTable do pliku Excel. Najpierw tworzymy DataTable, a następnie nagłówki kolumn. Po utworzeniu kolumn dodajemy wiersze jeden po drugim. Po dodaniu wierszy tworzymy obiekt WorkBook. Korzystając z obiektu, możemy dodać dane do arkusza Excel, a następnie zapisać je w wybranej lokalizacji. Tworzymy obiekt WorkSheet, który pozwala na utworzenie arkusza roboczego, a następnie możemy dodać go do obiektu WorkBook.
Używamy pętli foreach do odczytywania wartości z tabeli DataTable jedna po drugiej, a następnie dodajemy wartość do arkusza. Po dodaniu wszystkich wartości do arkusza roboczego zapisujemy je w pliku CSV za pomocą metody o nazwie SaveAsCsv — musimy przekazać jako parametr separator oraz nazwę pliku wraz z lokalizacją. Separator jest parametrem opcjonalnym, który możemy pominąć, jeśli nie jest wymagańy.
Gotowy kod w Visual Studio
Powyżej znajduje się pełny zrzut ekranu kodu, którego używamy w .NET Core 6.
Wynik:
Wynik po otwarciu pliku w programie Microsoft Excel
Powyżej znajduje się wynik wykonania przykładowego kodu. Na zrzucie ekranu wszystkie dane dostępne w tabeli DataTable zostały dodane pojedynczo do nowo utworzonego arkusza Excel.
4 Wnioski
IronXL jest jedną z najczęściej używanych bibliotek IronXL. Nie jest zależny od żadnej innej biblioteki stron trzecich. Jest to aplikacja niezależna i nie wymaga instalacji programu MS Excel. Działa na wielu platformach. Cena promocyjna IronXL zaczyna się od $799. Ponadto oferowana jest opcja rocznej opłaty za wsparcie techniczne i aktualizacje produktu. IronXL zapewnia bezpłatny zakres redystrybucji bez opłat licencyjnych za dodatkową opłatą. Aby dowiedzieć się więcej o szczegółach cenowych, odwiedź naszą stronę poświęconą licencjom.
Często Zadawane Pytania
Jak wyeksportować tabelę danych (DataTable) do pliku Excel w języku C#?
Możesz użyć klas WorkBook i WorkSheet biblioteki IronXL do wyeksportowania tabeli DataTable do pliku Excel. Utwórz tabelę DataTable, przejdź przez jej wiersze i wypełnij plik Excel danymi za pomocą interfejsu API biblioteki IronXL.
Jakie są zalety korzystania z IronXL zamiast Interop do operacji w Excelu?
IronXL jest szybszy i wydajniejszy niż Microsoft Interop, nie wymaga instalacji programu Microsoft Excel oraz obsługuje wiele platform i formatów plików.
Jakie formaty plików obsługuje IronXL dla plików Excel?
IronXL obsługuje różne formaty plików Excel, w tym XLSX, XLS, CSV, TSV, XLST i XLSM, co pozwala na wszechstronną obróbkę plików.
Czy IronXL obsługuje formuły Excela podczas eksportowania danych?
Tak, IronXL obsługuje formuły programu Excel, zapewniając zachowanie złożonych obliczeń podczas eksportowania danych z tabeli danych do pliku Excel.
Jakie systemy operacyjne są kompatybilne z IronXL?
IronXL jest kompatybilny z wieloma systemami operacyjnymi, w tym Windows, Linux i macOS, co pozwala na tworzenie oprogramowania na wiele platform.
Czy do korzystania z IronXL konieczne jest zainstalowanie programu Microsoft Excel?
Nie, IronXL działa niezależnie od programu Microsoft Excel, co pozwala na pracę z plikami Excel bez konieczności instalowania programu Excel na serwerze.
Jak zainstalować IronXL do wykorzystania w projekcie C#?
IronXL można zainstalować za pomocą menedżera pakietów NuGet w Visual Studio, z poziomu wiersza poleceń lub pobierając go bezpośrednio ze stron internetowych NuGet lub IronXL.
Jakie frameworki .NET Framework są obsługiwane przez IronXL?
IronXL obsługuje szeroki zakres frameworków .NET Framework, w tym Console, Windows Forms Application i Web Application, dzięki czemu jest wszechstronnym narzędziem do różnych typów projektów.
Czy IronXL obsługuje stylizację i formatowanie komórek w plikach Excel?
Tak, IronXL oferuje szeroki wybór opcji stylizacji i formatowania komórek, takich jak ustawianie stylów czcionek, kolorów i obramowań, aby poprawić wygląd plików Excel.
W jaki sposób IronXL upraszcza proces programowego tworzenia plików Excel?
IronXL upraszcza ten proces, udostępniając łatwe w użyciu API do tworzenia, modyfikowania i eksportowania plików Excel bez konieczności zajmowania się skomplikówanymi interfejsami i strukturami wymaganymi przez inne metody.




