IRONSOFTWAREHOME
KORZYSTANIE Z IRONXL

Jak wyeksportować listę obiektów do programu Excel w języku C#

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

IronXL pozwala programistom eksportować obiekty List bezpośrednio do plików Excel w C# bez zależności od MS Office, automatycznie obsługując konwersję typów i mapowanie właściwości przez proste metody ImportData, które przekształcają kolekcje w profesjonalne arkusze kalkulacyjne XLSX.

Eksportowanie zbiorów obiektów do plików Excel jest podstawowym wymogiem w aplikacjach biznesowych. Czy generujesz raporty, dzielisz się wnioskami, czy tworzysz kopie zapasowe, potrzebujesz niezawodnego sposobu na przekształcenie obiektów List<t> w profesjonalne arkusze kalkulacyjne. IronXL zapewnia relaks rozwiązanie, które eliminuje tradycyjne złożoności tworzenia plików Excel w .NET, .NET Core lub .NET Framework.

Dlaczego eksportowanie list do plików Excel stanowi wyzwanie?

Tradycyjne podejścia do eksportowania danych do Excela często obejmują Microsoft Office Interop, który wymaga zainstalowania Excela na serwerze i powoduje problemy z wdrażaniem. Ręczne wypełnianie komórek za pomocą refleksji jest czasochłonne i podatne na błędy. Potężne funkcje importu danych IronXL rozwiązują te problemy poprzez inteligentne mapowanie właściwości między źródłami danych a nagłówkami kolumn Excel, bez potrzeby MS Office czy złożonego kodu refleksji.

Biblioteka automatycznie obsługuje konwersję typów, obsługuje obiekty zagnieżdżone i zachowuje integralność danych w różnych formatach, takich jak pliki CSV i XLSX. Dla programistów pracujących nad operacjami Excel w C# bez Interop, IronXL jest idealny dla nowoczesnych projektów .NET, które potrzebują solidnej generacji Excela i możliwości importu/eksportu danych. Biblioteka bezproblemowo integruje się z aplikacjami .NET MAUI i wspiera wdrożenia na platformach chmurowych Azure i AWS.

Pracując z dużymi zestawami danych, tradycyjne metody często zmagają się z zarządzaniem pamięcią i wydajnością. IronXL rozwiązuje te problemy dzięki zoptymalizowanym wewnętrznym strukturom danych, które skutecznie obsługują konwersję pomiędzy różnymi formatami arkuszy kalkulacyjnych, zachowując doskonałe charakterystyki wydajnościowe.

Jak eksportować proste dane listy do Excela?

Rozpoczęcie pracy z IronXL wymaga minimalnej konfiguracji. Najpierw zainstaluj bibliotekę przez konsolę Menedżera Pakietów NuGet:

PM > Install-Package IronXL.Excel

Po zainstalowaniu można od razu zacząć tworzyć arkusze kalkulacyjne Excel z użyciem struktur danych C#. Przyjrzyjmy się, jak eksportować dane za pomocą modelu Employee:

using IronXL;
using System.Collections.Generic;
using System.Data;
public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
    public DateTime HireDate { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        // Create sample data for Excel export
        var employees = new List<Employee>
        {
            new Employee { Id = 1, Name = "Alice Johnson", Department = "Engineering",
                           Salary = 95000, HireDate = new DateTime(2020, 3, 15) },
            new Employee { Id = 2, Name = "Bob Smith", Department = "Marketing",
                           Salary = 75000, HireDate = new DateTime(2021, 7, 1) },
            new Employee { Id = 3, Name = "Carol Williams", Department = "Engineering",
                           Salary = 105000, HireDate = new DateTime(2019, 11, 20) }
        };
        // Convert the list of employees to a DataTable
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("Id", typeof(int));
        dataTable.Columns.Add("Name", typeof(string));
        dataTable.Columns.Add("Department", typeof(string));
        dataTable.Columns.Add("Salary", typeof(decimal));
        dataTable.Columns.Add("HireDate", typeof(DateTime));
        foreach (var employee in employees)
        {
            dataTable.Rows.Add(employee.Id, employee.Name, employee.Department, employee.Salary, employee.HireDate);
        }
        // Export DataTable to Excel spreadsheet
        var workbook = new WorkBook();
        var worksheet = workbook.CreateWorkSheet("Employees");
        // Populate the worksheet
        for (int i = 0; i < dataTable.Columns.Count; i++)
        {
            worksheet.SetCellValue(0, i, dataTable.Columns[i].ColumnName); // Add column headers
        }
        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            for (int j = 0; j < dataTable.Columns.Count; j++)
            {
                worksheet.SetCellValue(i + 1, j, dataTable.Rows[i][j]); // Add data rows
            }
        }
        // Save as XLSX file
        workbook.SaveAs("EmployeeReport.xlsx");
    }
}

Ten przykładowy kod pokazuje, jak eksportować dane do Excela z List<Employee> używając IronXL. Najpierw konwertuje listę pracowników na DataTable, a następnie ręcznie zapisuje nagłówki kolumn i wiersze w arkuszu. IronXL automatycznie obsługuje typy danych, takie jak int, string i DateTime, zapewniając czyste formatowanie w generowanym arkuszu kalkulacyjnym. Na koniec funkcja zapisu Excela tworzy plik XLSX zapisany jako EmployeeReport.xlsx, oferując prosty i efektywny sposób przekształcenia ustrukturyzowanych danych C# w profesjonalny raport Excel.

Podejście przedstawione powyżej reprezentuje bazowy wzorzec, który można rozszerzyć dla bardziej złożonych scenariuszy. Na przykład, możesz potrzebować eksportować zestawy danych i tabele datowe z istniejących zapytań bazodanowych lub importować dane z Excela z zewnętrznych źródeł. IronXL zapewnia kompleksowe metody dla obu scenariuszy, czyniąc go wszechstronnym narzędziem do operacji wymiany danych.

Arkusz kalkulacyjny Excel wyświetlający wyeksportowane dane pracowników z kolumnami dla Id, Name, Department, Salary i HireDate, pokazujący 3 przykładowe rekordsy pracowników z poprawnym formatowaniem danych

Jak eksportować złożone obiekty biznesowe?

W rzeczywistych aplikacjach .NET często występują bardziej złożone struktury danych. Pracując z właściwościami zagnieżdżonymi, polami obliczonymi lub danymi hierarchicznymi, potrzebujesz bardziej zaawansowanego podejścia. IronXL doskonale radzi sobie z obsługą tych scenariuszy, zapewniając solidne wsparcie dla pracy z danymi w różnych formatach. Oto jak eksportować inwentaryzację produktów z zagnieżdżonymi właściwościami:

using IronXL;
using System.Collections.Generic;
using System.Data;
public class Product
{
    public string SKU { get; set; }
    public string ProductName { get; set; }
    public string Category { get; set; }
    public decimal Price { get; set; }
    public int StockLevel { get; set; }
    public bool IsActive { get; set; }
    public DateTime LastRestocked { get; set; }
    public decimal CalculatedValue => Price * StockLevel;
}
class Program
{
    static void Main(string[] args)
    {
        // Generate product inventory list for Excel export
        var products = new List<Product>
        {
            new Product
            {
                SKU = "TECH-001",
                ProductName = "Wireless Mouse",
                Category = "Electronics",
                Price = 29.99m,
                StockLevel = 150,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-5)
            },
            new Product
            {
                SKU = "TECH-002",
                ProductName = "Mechanical Keyboard",
                Category = "Electronics",
                Price = 89.99m,
                StockLevel = 75,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-12)
            },
            new Product
            {
                SKU = "OFF-001",
                ProductName = "Desk Organizer",
                Category = "Office Supplies",
                Price = 15.99m,
                StockLevel = 0,
                IsActive = false,
                LastRestocked = DateTime.Now.AddMonths(-1)
            }
        };
        // Create Excel workbook and import collection data
        var workbook = WorkBook.Create();
        var worksheet = workbook.CreateWorkSheet("Inventory");
        // Export generic list to Excel with headers
        var dataTable = new DataTable();
        dataTable.Columns.Add("SKU", typeof(string));
        dataTable.Columns.Add("ProductName", typeof(string));
        dataTable.Columns.Add("Category", typeof(string));
        dataTable.Columns.Add("Price", typeof(decimal));
        dataTable.Columns.Add("StockLevel", typeof(int));
        dataTable.Columns.Add("IsActive", typeof(bool));
        dataTable.Columns.Add("LastRestocked", typeof(DateTime));
        dataTable.Columns.Add("CalculatedValue", typeof(decimal));
        foreach (var product in products)
        {
            dataTable.Rows.Add(
                product.SKU,
                product.ProductName,
                product.Category,
                product.Price,
                product.StockLevel,
                product.IsActive,
                product.LastRestocked,
                product.CalculatedValue
            );
        }
        // With the following code:
        worksheet["A1"].Value = "SKU";
        worksheet["B1"].Value = "ProductName";
        worksheet["C1"].Value = "Category";
        worksheet["D1"].Value = "Price";
        worksheet["E1"].Value = "StockLevel";
        worksheet["F1"].Value = "IsActive";
        worksheet["G1"].Value = "LastRestocked";
        worksheet["H1"].Value = "CalculatedValue";
        int row = 2;
        foreach (DataRow dataRow in dataTable.Rows)
        {
            worksheet[$"A{row}"].Value = dataRow["SKU"];
            worksheet[$"B{row}"].Value = dataRow["ProductName"];
            worksheet[$"C{row}"].Value = dataRow["Category"];
            worksheet[$"D{row}"].Value = dataRow["Price"];
            worksheet[$"E{row}"].Value = dataRow["StockLevel"];
            worksheet[$"F{row}"].Value = dataRow["IsActive"];
            worksheet[$"G{row}"].Value = dataRow["LastRestocked"];
            worksheet[$"H{row}"].Value = dataRow["CalculatedValue"];
            row++;
        }
        // Auto-fit columns for optimal display
        for (int col = 0; col < 8; col++)
        {
            worksheet.AutoSizeColumn(col);
        }
        // Save as Excel XLSX format
        workbook.SaveAs("ProductInventory.xlsx");
    }
}

Ten kod demonstruje, jak wygenerować dynamiczny raport inwentaryzacyjny produktu w Excelu przy użyciu IronXL. Tworzy listę obiektów Product zawierających szczegóły takie jak SKU, cena, poziom zapasów i data uzupełnienia zapasów, po czym oblicza pochodną CalculatedValue dla każdego przedmiotu. Dane są konwertowane na DataTable, zapisywane w arkuszu Excel z nagłówkami i formatowane dla czytelności przy użyciu automatycznie rozmiarowych kolumn. IronXL bezproblemowo obsługuje typy danych, takie jak dziesiętne, booleany i daty, zapewniając profesjonalne wyjście z arkusza kalkulacyjnego. Rezultat, ProductInventory.xlsx, zapewnia czysty, oparty na danych eksport inwentarza idealny do raportowania biznesowego lub analizy.

Pracując z złożonymi obiektami, możesz także potrzebować zarządzać arkuszami roboczymi dla różnych kategorii danych lub tworzyć wiele arkuszy w jednym skoroszycie. IronXL wspiera zaawansowane operacje na arkuszach roboczych, pozwalając organizować eksportowane dane logicznie. Dodatkowo, możesz wybierać określone zakresy do ukierunkowanych operacji na danych lub sortować komórki w celu przedstawienia danych w znaczącej kolejności.

Arkusz kalkulacyjny Excel wyświetlający eksport inwentarza produktów z kolumnami dla SKU, ProductName, Category, Price, StockLevel, status IsActive, data LastRestocked i CalculatedValue pokazującą różne elektroniki i artykuły biurowe

Jak dodać profesjonalne formatowanie?

Przekształć podstawowe eksporty w wykończone raporty dzięki kompleksowym możliwościom stylistycznym IronXL. Profesjonalne formatowanie podnosi eksporty z Excela z prostych zrzutów danych do gotowych do prezentacji raportów, które efektywnie przekazują wnioski. IronXL zapewnia rozległe opcje formatowania, w tym dostosowanie czcionki i rozmiaru komórek, wzory tła i kolory oraz ustawienia obramowania i wyrównania:

// After importing data, apply professional formatting
var headerRange = worksheet["A1:H1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Format currency columns for Excel export
var priceColumn = worksheet["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";
// Apply conditional formatting to highlight business metrics
for (int row = 2; row <= products.Count + 1; row++)
{
    var stockCell = worksheet[$"E{row}"];
    if (stockCell.IntValue < 10)
    {
        stockCell.Style.BackgroundColor = "#FF6B6B";
    }
}
// Export formatted list to Excel file
workbook.SaveAs("FormattedInventory.xlsx");

Te opcje stylizacji przekształcają surowe dane eksportowane w raporty gotowe do przedstawienia kierownictwu. Pogrubione nagłówki z kolorami tła tworzą wizualną hierarchię podczas eksportowania kolekcji do Excela. Formatowanie liczb zapewnia profesjonalne wyświetlanie wartości walutowych. Warunkowe formatowanie podkreśla kluczowe metryki biznesowe, takie jak niskie poziomy zapasów, czyniąc wyeksportowany arkusz Excel od razu użytecznym dla zarządzania inwentaryzacją. Dowiedz się więcej o zaawansowanym formatowaniu komórek i stylach obramowania, aby jeszcze bardziej udoskonalić swoje eksporty.

Poza podstawowym formatowaniem, IronXL wspiera zaawansowane funkcje, takie jak tworzenie wykresów Excel do wizualizacji eksportowanych danych. Możesz także dodawać hiperłącza do łączenia powiązanych punktów danych lub zasobów zewnętrznych, zamrażać okienka dla lepszej nawigacji po dużych zbiorach danych, a nawet scalać komórki do tworzenia wyrafinowanych układów raportów.

Arkusz inwentarza Excel z profesjonalnym formatowaniem pokazujący SKU, ProductName, Category, Price, StockLevel z formatowaniem warunkowym podkreślającym zero zapasów kolorem czerwonym, status IsActive, daty LastRestocked i kolumny CalculatedValue

Jaki jest najlepszy sposób na rozpoczęcie z IronXL?

IronXL przekształca złożone zadanie generowania Excel w proste, łatwe do utrzymania kod. Inteligentna metoda ImportData eliminuje potrzebę zależności od Microsoft Office, zapewniając jednocześnie profesjonalne wyniki spełniające wymagania przedsiębiorstw. Kompleksowy zestaw funkcji biblioteki obsługuje wszystko, od podstawowego eksportu list po złożone transformacje danych z zastosowaniem stylizacji i formatowania.

Rozpoczęcie pracy z IronXL jest proste. Biblioteka obsługuje różne scenariusze wdrażania, w tym kontenery Docker, środowiska Linux i systemy macOS. W przypadku wdrożeń korporacyjnych IronXL oferuje kompleksowe opcje licencyjne z elastycznym Zarządzaniem kluczami licencyjnymi.

Biblioteka doskonale sprawdza się również w operacjach wymiany danych. Możesz konwertować pliki XLSX do formatu CSV, zapisywać pliki CSV, odczytywać dane CSV, a nawet konwertować tabele danych (DataTables) do formatu CSV. W przypadku aplikacji internetowych IronXL płynnie integruje się z frameworkami ASP.NET MVC i Blazor.

Podczas pracy z istniejącymi plikami Excel IronXL zapewnia zaawansowane funkcje do edycji plików Excel, otwierania arkuszy i odczytu plików XLSX. Możesz również pracować z plikami Excel w VB.NET, jeśli Twój projekt wymaga integracji z Visual Basic.

Pierwszy krok:
arrow pointer

Chcesz usprawnić eksport danych z Excel do C#? Pobierz IronXL już teraz, aby skalować rozwiązanie zgodnie z Twoimi potrzebami. Odwiedź naszą obszerną dokumentację, aby uzyskać więcej samouczków i przykładów. Zapoznaj się z dokumentacją API, aby uzyskać szczegółowe specyfikacje techniczne i dowiedzieć się, jak IronXL może zmienić Twoje procesy automatyzacji w Excelu.

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ęczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta