Przejdź do treści stopki
KORZYSTANIE Z IRONXL
Jak przekonwertować tabelę danych do pliku Excel

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:

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ą.

Jak wyeksportować duże zbiory danych z tabeli danych do programu Excel w języku C#, rysunek 1: Utwórz nowe środowisko projektowe w programie Visual Studio Utwórz nowy interfejs użytkownika projektu w Visual Studio

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

Jak wyeksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 2: Etap konfiguracji podczas tworzenia nowego projektu Krok konfiguracji podczas tworzenia nowego projektu

Następnie wybierz poniżej odpowiedni framework. W tym projekcie będziemy korzystać z .NET Core 6.

Jak eksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 3: Interfejs użytkownika wyboru platformy .NET Framework 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ę.

Jak wyeksportować duże ilości danych z tabeli danych do Excela w języku C#, rysunek 4: Pusty plik program.cs w nowym projekcie 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.

Jak wyeksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 5: Przejdź do menedżera pakietów NuGet w programie Visual Studio Przejdź do menedżera pakietów NuGet w programie Visual Studio

IronXL w wynikach wyszukiwania:

Jak eksportować duże zbiory danych z tabeli danych do programu Excel w języku C#, rysunek 6: Wyszukiwanie biblioteki IronXL 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.

Jak wyeksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 7: Zainstaluj pakiet IronXL za pomocą konsoli 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.

Jak wyeksportować duże ilości danych z tabeli danych do Excela w języku C#, rysunek 8: Przed użyciem biblioteki IronXL należy dołączyć przestrzeń nazw IronXL 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
$vbLabelText   $csharpLabel

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.

Jak wyeksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 9: Gotowy kod w programie Visual Studio Gotowy kod w Visual Studio

Powyżej znajduje się pełny zrzut ekranu kodu, którego używamy w .NET Core 6.

Wynik:

Jak wyeksportować duże ilości danych z tabeli danych do programu Excel w języku C#, rysunek 10: Wynik po otwarciu pliku w programie Microsoft Excel 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.

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