Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak zaimportować dane z Excela w C# przy użyciu IronXL

Praca z plikami Microsoft Excel jest codziennym wymogiem dla wielu programistów .NET. Niezależnie od tego, czy chodzi o importowanie danych klientów, przetwarzanie raportów finansowych, czy migrację danych z arkuszy kalkulacyjnych do baz danych, programiści potrzebują niezawodnego sposobu odczytu plików Excel bez skomplikówanych zależności i konieczności instalowania programu Excel. Tradycyjne podejścia, takie jak automatyzacja COM za pośrednictwem Microsoft.Office.Interop, wymagają pełnej instalacji pakietu Office, wprowadzają ograniczenia platformowe i powodują powstawanie niestabilnych zależności wdrożeniowych. IronXL oferuje proste rozwiązanie, które działa na różnych platformach, eliminując wszystkie te problemy i umożliwiając operacje w Excelu bezpośrednio z poziomu kodu .NET.

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Obraz 1 – IronXL

Jak zainstalować IronXL i rozpocząć importowanie danych z Excela?

Rozpoczęcie importu z Excela w języku C# zajmuje zaledwie kilka minut dzięki IronXL. Biblioteka Excel obsługuje zarówno starszy format XLS, jak i nowoczesny format XLSX, a także CSV, TSV i inne formaty arkuszy kalkulacyjnych. W przeciwieństwie do rozwiązań opartych na Microsoft.Office.Interop.Excel, IronXL działa niezależnie na dowolnej platformie .NET lub .NET Core.

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Obraz 2 – Wielopłatformowy

Zainstaluj IronXL za pomocą menedżera pakietów NuGet lub interfejsu CLI .NET. Można również skorzystać z okna dialogowego Zarządzaj pakietami NuGet w programie Visual Studio i wyszukać "IronXL":

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 3 – Instalacja

Pełne informacje dotyczące instalacji, w tym kompatybilność wersji i uwagi dotyczące zależności, można znaleźć w przewodniku instalacji IronXL NuGet. Nie są wymagańe żadne dodatkowe zależności środowiskowe ani komponenty pakietu Office — pakiet jest samowystarczalny. Po zainstalowaniu pakietu importowanie danych z Excela jest proste:

using IronXL;

// Load any Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
// Access the first worksheet
WorkSheet sheet = workBook.WorkSheets[0];
// Read a cell value
string value = sheet["B1"].StringValue;
Console.WriteLine(value);
using IronXL;

// Load any Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
// Access the first worksheet
WorkSheet sheet = workBook.WorkSheets[0];
// Read a cell value
string value = sheet["B1"].StringValue;
Console.WriteLine(value);
Imports IronXL

' Load any Excel file
Dim workBook As WorkBook = WorkBook.Load("ProductData.xlsx")
' Access the first worksheet
Dim sheet As WorkSheet = workBook.WorkSheets(0)
' Read a cell value
Dim value As String = sheet("B1").StringValue
Console.WriteLine(value)
$vbLabelText   $csharpLabel

Ten kod ilustruje podstawowy przebieg pracy: ładowanie skoroszytu, uzyskiwanie dostępu do arkusza i odczytywanie wartości komórek. Metoda WorkBook.Load() automatycznie wykrywa format pliku — niezależnie od tego, czy jest to XLS, XLSX czy CSV. Intuicyjna składnia indeksatora sheet["B1"] sprawia, że dostęp do komórek jest tak naturalny, jak praca z tablicami. Pełny wykaz dostępnych elementów i przeciążeń znajduje się w dokumentacji API IronXL.

Przykładowe dane wejściowe

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 4 – Dane wejściowe z programu Excel

Wynik

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Obraz 5 – Wynik na konsoli

Jak wczytać dane z Excela do obiektów C#?

Rzeczywiste aplikacje wymagają więcej niż wartości pojedynczych komórek. IronXL doskonale radzi sobie z importowaniem całych zbiorów danych i przekształcaniem ich w użyteczne obiekty C#. Gdy zachodzi potrzeba importowania ustrukturyzowanych danych z Excela, biblioteka oferuje wiele metod, które bezpośrednio mapują się na modele domenowe.

Poniższy przykład odczytuje wiersze z arkusza i mapuje każdy wiersz na obiekt typu Product:

using IronXL;

// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Map rows to typed objects
var products = new List<Product>();
foreach (var row in sheet.Rows)
{
    var product = new Product
    {
        Id = row.Columns[0].IntValue,
        Name = row.Columns[1].StringValue,
        Price = row.Columns[2].DecimalValue,
        IsAvailable = row.Columns[3].BoolValue
    };
    products.Add(product);
}

foreach (var product in products)
{
    Console.WriteLine(
        $"Id: {product.Id}, Name: {product.Name}, " +
        $"Price: {product.Price}, Available: {product.IsAvailable}"
    );
}
using IronXL;

// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Map rows to typed objects
var products = new List<Product>();
foreach (var row in sheet.Rows)
{
    var product = new Product
    {
        Id = row.Columns[0].IntValue,
        Name = row.Columns[1].StringValue,
        Price = row.Columns[2].DecimalValue,
        IsAvailable = row.Columns[3].BoolValue
    };
    products.Add(product);
}

foreach (var product in products)
{
    Console.WriteLine(
        $"Id: {product.Id}, Name: {product.Name}, " +
        $"Price: {product.Price}, Available: {product.IsAvailable}"
    );
}
Imports IronXL

' Load the Excel file
Dim workBook As WorkBook = WorkBook.Load("ProductData.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Map rows to typed objects
Dim products As New List(Of Product)()
For Each row In sheet.Rows
    Dim product As New Product With {
        .Id = row.Columns(0).IntValue,
        .Name = row.Columns(1).StringValue,
        .Price = row.Columns(2).DecimalValue,
        .IsAvailable = row.Columns(3).BoolValue
    }
    products.Add(product)
Next

For Each product In products
    Console.WriteLine(
        $"Id: {product.Id}, Name: {product.Name}, " &
        $"Price: {product.Price}, Available: {product.IsAvailable}"
    )
Next
$vbLabelText   $csharpLabel

Właściwości typowane -- IntValue, StringValue, DecimalValue oraz BoolValue -- automatycznie obsługują konwersję typów. Takie podejście eliminuje ręczne parsowanie i zmniejsza liczbę błędów podczas pracy z kolumnami zawierającymi różne typy danych. Wielu programistów na Stack Overflow docenia to bezpieczne pod względem typów podejście do importu danych z Excela.

Wynik

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Obraz 6 – Wynik obiektowy

Jak pracować z zakresami komórek i LINQ?

W przypadku obliczeń zagregowanych i zapytań filtrowanych IronXL obsługuje operacje na zakresach dzięki wbudowanej zgodności z LINQ:

using IronXL;

WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Read a named cell range
Range dataRange = sheet["A1:D5"];

// Calculate aggregates directly on a range
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");

decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");

// Filter using LINQ
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();

Console.WriteLine("Orders above 100:");
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
using IronXL;

WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Read a named cell range
Range dataRange = sheet["A1:D5"];

// Calculate aggregates directly on a range
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");

decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");

// Filter using LINQ
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();

Console.WriteLine("Orders above 100:");
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("ProductData.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Read a named cell range
Dim dataRange As Range = sheet("A1:D5")

' Calculate aggregates directly on a range
Dim sum As Decimal = sheet("C1:C5").Sum()
Console.WriteLine($"Sum of C1:C5: {sum}")

Dim max As Decimal = sheet("C1:C5").Max(Function(c) c.DecimalValue)
Console.WriteLine($"Max of C1:C5: {max}")

' Filter using LINQ
Dim highValueOrders = dataRange _
    .Where(Function(cell) cell.DecimalValue > 100) _
    .Select(Function(cell) cell.Value) _
    .ToList()

Console.WriteLine("Orders above 100:")
For Each order In highValueOrders
    Console.WriteLine(order)
Next
$vbLabelText   $csharpLabel

Klasa Range zapewnia dostęp do wielu komórek jednocześnie, podobny do kolekcji. Kompatybilność z LINQ oznacza, że można filtrować, przekształcać i agregować dane z Excela przy użyciu znanych wzorców C# bez konieczności uprzedniej konwersji do kolekcji pośrednich. Wbudowane metody agregacji, takie jak Sum() i Max(), działają bezpośrednio na zakresach komórek. Aby uzyskać więcej informacji na temat odczytu danych z skoroszytów, zapoznaj się z przewodnikiem IronXl.Excel dotyczącym odczytu plików Excel.

Wynik

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 7 – Wynik zakresu

Jak przekonwertować plik Excel na DataTable w języku C#?

Konwersja DataTable jest niezbędna w operacjach na bazach danych i scenariuszach powiązania danych. IronXL udostępnia wbudowane metody obsługujące konwersję z formatu Excel do DataSet lub DataTable. Ta funkcja jest szczególnie przydatna, gdy trzeba zaimportować arkusze kalkulacyjne Excel do SQL Server lub innych relacyjnych baz danych. Ponieważ wynikowy obiekt jest standardowym System.Data.DataTable, działa on z każdą ścieżką kodu zgodną z ADO.NET bez konieczności wprowadzania zmian w warstwie dostępu do danych.

using IronXL;
using System.Data;
using System.Data.SqlClient;

// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select the first worksheet
WorkSheet sheet = workBook.WorkSheets.First();

// Convert to DataTable -- first row becomes column headers
DataTable dataTable = sheet.ToDataTable(true);

// Use SqlBulkCopy to insert directly into SQL Server
string connectionString = "Data Source=.;Initial Catalog=InventoryDB;Integrated Security=True;";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
using IronXL;
using System.Data;
using System.Data.SqlClient;

// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select the first worksheet
WorkSheet sheet = workBook.WorkSheets.First();

// Convert to DataTable -- first row becomes column headers
DataTable dataTable = sheet.ToDataTable(true);

// Use SqlBulkCopy to insert directly into SQL Server
string connectionString = "Data Source=.;Initial Catalog=InventoryDB;Integrated Security=True;";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

' Load Excel file
Dim workBook As WorkBook = WorkBook.Load("inventory.xlsx")
' Select the first worksheet
Dim sheet As WorkSheet = workBook.WorkSheets.First()

' Convert to DataTable -- first row becomes column headers
Dim dataTable As DataTable = sheet.ToDataTable(True)

' Use SqlBulkCopy to insert directly into SQL Server
Dim connectionString As String = "Data Source=.;Initial Catalog=InventoryDB;Integrated Security=True;"
Using bulkCopy As New SqlBulkCopy(connectionString)
    bulkCopy.DestinationTableName = "Inventory"
    bulkCopy.WriteToServer(dataTable)
End Using
$vbLabelText   $csharpLabel

Metoda ToDataTable() przyjmuje parametr logiczny wskazujący, czy pierwszy wiersz zawiera nagłówki. Po ustawieniu na true, IronXL automatycznie wykorzystuje wartości z pierwszego wiersza jako nazwy kolumn. Powstała tabela danych (DataTable) integruje się z ADO.NET Framework, Entity Framework i kontrolkami powiązania danych bez konieczności dodatkowej konfiguracji.

Aby uzyskać większą kontrolę nad procesem konwersji, można ręcznie utworzyć tabelę DataTable:

using IronXL;
using System.Data;

WorkBook workBook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workBook.WorkSheets.First();

// Build DataTable manually for custom column types or validation
DataTable customTable = new DataTable();

for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}

foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}

// Print headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();

// Print data rows
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
using IronXL;
using System.Data;

WorkBook workBook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workBook.WorkSheets.First();

// Build DataTable manually for custom column types or validation
DataTable customTable = new DataTable();

for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}

foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}

// Print headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();

// Print data rows
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
Imports IronXL
Imports System.Data

Dim workBook As WorkBook = WorkBook.Load("inventory.xlsx")
Dim sheet As WorkSheet = workBook.WorkSheets.First()

' Build DataTable manually for custom column types or validation
Dim customTable As New DataTable()

For col As Integer = 0 To sheet.ColumnCount - 1
    customTable.Columns.Add($"Column{col + 1}", GetType(String))
Next

For Each row In sheet.Rows
    Dim dataRow = customTable.NewRow()
    For col As Integer = 0 To sheet.ColumnCount - 1
        dataRow(col) = If(row.Columns(col).Value, DBNull.Value)
    Next
    customTable.Rows.Add(dataRow)
Next

' Print headers
For Each column As DataColumn In customTable.Columns
    Console.Write($"{column.ColumnName}" & vbTab)
Next
Console.WriteLine()

' Print data rows
For Each row As DataRow In customTable.Rows
    For Each item In row.ItemArray
        Console.Write($"{item}" & vbTab)
    Next
    Console.WriteLine()
Next
$vbLabelText   $csharpLabel

Takie podejście zapewnia pełną elastyczność podczas importu. Wartości null są obsługiwane w sposób elegancki poprzez konwersję ich na DBNull.Value, co zapewnia zgodność z ograniczeniami kolumn bazy danych. Więcej wskazówek na temat zapisywania danych z powrotem do plików znajdziesz w przewodniku IronXL dotyczącym zapisywania plików Excel.

Wynik

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 8 – Wynik w postaci tabeli danych

Jak pracować z formułami, skoroszytami wielarkuszowymi i Entity Framework?

IronXL wykracza poza podstawowe funkcje odczytu, oferując funkcje dostosowane do złożonych scenariuszy z życia codziennego. Biblioteka zachowuje formuły programu Excel, umożliwiając dynamiczne obliczanie wyników. Dla programistów pracujących ze złożonymi skoroszytami Excel zapewnia to zachowanie integralności danych podczas całego procesu importu.

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 9 – Funkcje

Odczytywanie wzorów i wartości obliczonych

using IronXL;

WorkBook workBook = WorkBook.Load("FinancialReport.xlsx");
WorkSheet sheet = workBook.GetWorkSheet("Reports");

// Read the evaluated result of a formula cell
decimal calculatedTotal = sheet["E10"].DecimalValue;
Console.WriteLine($"Total: {calculatedTotal}");

// Read the formula string itself
string formula = sheet["E10"].Formula;
Console.WriteLine($"Formula: {formula}"); // e.g. "=SUM(E2:E9)"
using IronXL;

WorkBook workBook = WorkBook.Load("FinancialReport.xlsx");
WorkSheet sheet = workBook.GetWorkSheet("Reports");

// Read the evaluated result of a formula cell
decimal calculatedTotal = sheet["E10"].DecimalValue;
Console.WriteLine($"Total: {calculatedTotal}");

// Read the formula string itself
string formula = sheet["E10"].Formula;
Console.WriteLine($"Formula: {formula}"); // e.g. "=SUM(E2:E9)"
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("FinancialReport.xlsx")
Dim sheet As WorkSheet = workBook.GetWorkSheet("Reports")

' Read the evaluated result of a formula cell
Dim calculatedTotal As Decimal = sheet("E10").DecimalValue
Console.WriteLine($"Total: {calculatedTotal}")

' Read the formula string itself
Dim formula As String = sheet("E10").Formula
Console.WriteLine($"Formula: {formula}") ' e.g. "=SUM(E2:E9)"
$vbLabelText   $csharpLabel

Obsługa formuł oznacza, że importowanie plików Excel zawierających złożone obliczenia działa bez konieczności odtwarzania logiki biznesowej w kodzie. Biblioteka automatycznie ocenia formuły, zwracając obliczone wartości przy zachowaniu oryginalnego ciągu formuły. Ma to nieocenione znaczenie podczas importowania modeli finansowych lub szablonów raportów zawierających zagnieżdżone formuły.

Kompatybilność międzyplatformowa zapewnia spójne działanie w systemach Windows, Linux, macOS oraz środowiskach kontenerowych. Dzięki temu IronXL doskonale nadaje się do wdrożeń w chmurze i mikrousług, gdzie instalacja pakietu Office nie jest możliwa. Dokumentacja Fundacji .NET podkreśla, w jaki sposób nowoczesne aplikacje .NET czerpią korzyści z niezależności od platformy.

Integracja danych z Excela z Entity Framework

Integracja z Entity Framework tworzy bezpośrednie potoki danych między Excelem a bazą danych. Poniższy wzorzec działa poprawnie z instrukcjami najwyższego poziomu w .NET 10:

using IronXL;

WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Skip the header row, map remaining rows to entity objects
var products = sheet.Rows
    .Skip(1)
    .Select(row => new Product
    {
        Name = row.Columns[0].StringValue,
        Price = row.Columns[1].DecimalValue
    })
    .ToList();

using var context = new AppDbContext();
await context.Products.AddRangeAsync(products);
await context.SaveChangesAsync();

Console.WriteLine($"Imported {products.Count} products.");
using IronXL;

WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Skip the header row, map remaining rows to entity objects
var products = sheet.Rows
    .Skip(1)
    .Select(row => new Product
    {
        Name = row.Columns[0].StringValue,
        Price = row.Columns[1].DecimalValue
    })
    .ToList();

using var context = new AppDbContext();
await context.Products.AddRangeAsync(products);
await context.SaveChangesAsync();

Console.WriteLine($"Imported {products.Count} products.");
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("ProductData.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Skip the header row, map remaining rows to entity objects
Dim products = sheet.Rows _
    .Skip(1) _
    .Select(Function(row) New Product With {
        .Name = row.Columns(0).StringValue,
        .Price = row.Columns(1).DecimalValue
    }) _
    .ToList()

Using context As New AppDbContext()
    Await context.Products.AddRangeAsync(products)
    Await context.SaveChangesAsync()
End Using

Console.WriteLine($"Imported {products.Count} products.")
$vbLabelText   $csharpLabel

Ten wzorzec umożliwia bezpośrednią migrację danych z Excela do bazy danych przy minimalnym nakładzie kodu, dzięki czemu doskonale nadaje się do procesów ETL, jednorazowych migracji danych oraz zaplanowanych zadań importu. Ponieważ projekcja LINQ działa w pamięci przed zapisaniem kontekstu, można zastosować logikę walidacji lub transformacji na tym samym etapie. Aby utworzyć nowe pliki Excel na podstawie danych C#, zapoznaj się z przewodnikiem IronXl.Excel dotyczącym tworzenia plików Excel.

Obsługiwane formaty plików

IronXL obsługuje szeroki zakres formatów arkuszy kalkulacyjnych bez konieczności instalowania dodatkowych bibliotek lub pakietu Office. Poniższa tabela zawiera podsumowanie obsługiwanych formatów i ich zastosowań:

Formaty plików Excel obsługiwane przez IronXL
Format Rozszerzenie Uwagi
Skoroszyt programu Excel .xlsx Domyślny format dla programu Excel 2007 i nowszych wersji
Starsza wersja skoroszytu Excel .xls Kompatybilny ze starszymi wersjami programu Excel
Wartości rozdzielone przecinkami .csv Dane tabelaryczne w postaci zwykłego tekstu, szeroko obsługiwane
Wartości rozdzielone tabulatorami .tsv Odpowiednie dla danych z wbudowanymi przecinkami
Binarny skoroszyt programu Excel .xlsb Kompaktowy format binarny dla dużych plików

Aby wyeksportować dane z powrotem do tych formatów, zapoznaj się z przewodnikiem IronXL dotyczącym eksportu do Excela.

Jak radzisz sobie z formatowaniem komórek podczas importu?

Podczas importowania plików Excel zachowanie lub sprawdzenie formatowania komórek jest często równie ważne jak odczytanie surowych wartości. IronXL udostępnia właściwości czcionki, koloru, wyrównania i obramowania dla każdej komórki, dzięki czemu można programowo stosować reguły walidacji lub odtwarzać style. Jest to szczególnie przydatne w przypadku raportów, w których formatowanie wizualne ma znaczenie semantyczne — na przykład kolorowe komórki wskazujące poziomy ryzyka lub pogrubione wiersze oznaczające sumy.

Na przykład, przed podjęciem decyzji o włączeniu danego wiersza do importowanego zestawu danych warto sprawdzić, czy komórki zawierają pogrubiony tekst — co często oznacza, że wiersz jest wierszem podsumowującym lub sumującym:

using IronXL;

WorkBook workBook = WorkBook.Load("StyledReport.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

foreach (var row in sheet.Rows)
{
    var firstCell = row.Columns[0];

    // Skip rows where the first cell is bold (typically header or total rows)
    if (firstCell.Style.Font.Bold)
    {
        continue;
    }

    Console.WriteLine($"Data row: {firstCell.StringValue}");
}
using IronXL;

WorkBook workBook = WorkBook.Load("StyledReport.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

foreach (var row in sheet.Rows)
{
    var firstCell = row.Columns[0];

    // Skip rows where the first cell is bold (typically header or total rows)
    if (firstCell.Style.Font.Bold)
    {
        continue;
    }

    Console.WriteLine($"Data row: {firstCell.StringValue}");
}
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("StyledReport.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

For Each row In sheet.Rows
    Dim firstCell = row.Columns(0)

    ' Skip rows where the first cell is bold (typically header or total rows)
    If firstCell.Style.Font.Bold Then
        Continue For
    End If

    Console.WriteLine($"Data row: {firstCell.StringValue}")
Next
$vbLabelText   $csharpLabel

Pełne informacje na temat formatowania komórek i zakresów, w tym ciągów formatów liczbowych i dostępu do koloru tła, można znaleźć w przewodniku po formatowaniu komórek IronXL. Można również zastosować operacje scałania do plików wyjściowych po przetworzeniu — zobacz przewodnik IronXL dotyczący scałania komórek.

Jak wybrać odpowiednią licencję IronXL dla swojego projektu?

IronXL oferuje elastyczne opcje licencyjne dostosowane do skali Twojego projektu. Dostępna jest bezpłatna licencja próbna, która zapewnia dostęp do wszystkich funkcji bez ograniczeń czasowych podczas tworzenia oprogramowania. Wersja próbna dodaje znak wodny do plików wyjściowych, który jest usuwany po zakupie ważnej licencji produkcyjnej.

Jak łatwo importować, odczytywać i przetwarzać dane z plików MS Excel w języku C# przy użyciu IronXL: Ilustracja 10 – Licencjonowanie

Dla zespołów tworzących aplikacje produkcyjne licencja IronXL obejmuje opcje dla indywidualnych programistów, zespołów oraz wdrożeń w całej organizacji. Wszystkie licencje produkcyjne obejmują:

  • Prawa do redystrybucji bez opłat licencyjnych
  • Priorytetowe wsparcie ze strony zespołu programistów IronXL
  • Dostęp do wszystkich aktualizacji bieżących i pomniejszych wersji w okresie obowiązywania licencji

Jeśli porównujesz IronXL z innymi bibliotekami IronXL, przegląd funkcji IronXL zawiera szczegółowy opis tego, co obejmuje każdy poziom.

Aby już dziś zacząć korzystać z IronXL w swoim projekcie, odwiedź stronę produktu IronXL lub przejdź bezpośrednio do dokumentacji IronXL, gdzie znajdziesz przewodniki konfiguracji, artykuły instruktażowe oraz Dokumentację API obejmującą wszystkie funkcje biblioteki IronXL.

Często Zadawane Pytania

Jak zaimportować dane z Excela w C#?

Możesz użyć IronXL do łatwego importowania danych z Excela w języku C#, bez konieczności instalowania programu Microsoft Excel na swoim komputerze.

Jakie są zalety korzystania z IronXL do manipulacji plikami Excel?

IronXL pozwala programistom na odczyt, zapis i manipulowanie plikami Excel w języku C# bez skomplikowanych zależności i działa na różnych platformach.

Czy do korzystania z IronXL muszę mieć zainstalowany pakiet Microsoft Office?

Nie, IronXL eliminuje konieczność instalacji pakietu Microsoft Office, umożliwiając pracę z plikami Excel bezpośrednio w aplikacjach napisanych w języku C#.

Czy IronXL obsługuje zarówno formaty plików XLSX, jak i CSV?

Tak, IronXL obsługuje różne formaty plików Excel, w tym XLSX i CSV, dzięki czemu jest wszechstronnym rozwiązaniem dostosowanym do różnych potrzeb w zakresie przetwarzania danych.

Czy IronXL nadaje się do przetwarzania dużych plików Excel?

Tak, IronXL został zaprojektowany do wydajnej obsługi dużych plików Excel, umożliwiając programistom przetwarzanie rozległych zbiorów danych bez problemów z wydajnością.

Jakie platformy obsługuje IronXL?

IronXL jest kompatybilny z wieloma platformami, umożliwiając wieloplatformowe tworzenie i wdrażanie aplikacji obsługujących pliki Excel.

W jaki sposób IronXL upraszcza migrację danych z Excela do baz danych?

IronXL zapewnia proste metody odczytu i eksportu danych z arkuszy Excel, ułatwiając przenoszenie danych do baz danych bez skomplikowanego kodowania.

Czy mogę używać IronXL do automatycznego generowania raportów w Excelu?

Tak, IronXL umożliwia automatyzację generowania raportów w Excelu, pozwalając na programowe tworzenie i edycję plików Excel w języku C#.

Czy IronXL nadaje się zarówno do zastosowań na małą skalę, jak i do aplikacji na poziomie przedsiębiorstwa?

IronXL jest wszechstronny i skalowalny, co czyni go odpowiednim zarówno dla projektów na małą skalę, jak i dużych aplikacji na poziomie przedsiębiorstwa wymagających manipulacji plikami Excel.

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