KORZYSTANIE Z IRONXL

Jak otworzyć pliki Excel w C#

Curtis Chau
Curtis Chau
Updated: 28 czerwca 2026

IronXL umożliwia programistom C# otwieranie, odczytywanie i manipulowanie plikami Excel bez konieczności instalacji Microsoft Office. Wystarczy załadować skoroszyty za pomocą WorkBook.Load(), uzyskać dostęp do arkuszy i odczytać wartości komórek przy użyciu intuicyjnej składni, jak sheet["A1"].

Ten samouczek bada użycie IronXL do otwierania i odczytywania plików Excel w projektach C#, dostarczając początkującym programistom kompleksowych przykładów i najlepszych praktyk dotyczących pracy z danymi Excel.

Czym jest biblioteka IronXL Excel?

IronXL to biblioteka .NET, która kładzie nacisk na łatwość użycia, dokładność i szybkość. Pomaga otwierać, odczytywać, tworzyć i edytować pliki Excel efektywnie, bez konieczności użycia MS Office Interop, co czyni ją praktycznym wyborem dla programistów chcących pracować z Excelem w C# bez Interop.

IronXL is compatible with all .NET Frameworks along with Linux, macOS, Docker, Azure, and AWS. Możesz go używać do tworzenia aplikacji konsolowych, webowych i desktopowych takich jak Blazor i .NET MAUI do nowoczesnych aplikacji webowych. Obsługuje różne formaty skoroszytów, jak pliki XLS i XLSX, XSLT i XLSM, CSV oraz TSV.

Jakie są kluczowe cechy IronXL?

Jak otworzyć plik Excel w C#?

Co jest potrzebne przed rozpoczęciem?

Aby używać IronXL w aplikacjach C#, zainstaluj następujące komponenty na lokalnym komputerze:

  1. Visual Studio - Oficjalne IDE do tworzenia aplikacji C# .NET. Program Visual Studio można pobrać i zainstalować ze strony internetowej firmy Microsoft. Możesz również użyć JetBrains ReSharper & Rider. W celu dodatkowych wskazówek dotyczących konfiguracji, odwiedź Przegląd rozpoczęcia.
  2. IronXL - Biblioteka Excel, która pomaga pracować z arkuszami Excel w C#. Przed użyciem należy zainstalować go w aplikacji C#. Możesz go pobrać ze strony NuGet lub z zarządzania pakietami NuGet w Visual Studio. Możesz również pobrać plik .NET Excel DLL bezpośrednio. W celu wdrożenia licencji, zobacz Używanie kluczy licencyjnych.

Jakie przestrzenie nazw należy importować?

Gdy Visual Studio i IronXL są zainstalowane, dodaj niezbędne przestrzenie nazw IronXL, umieszczając następującą linię na początku pliku C#:

// Add reference to the IronXL library
using IronXL;

Do pracy z określonymi formatami Excel lub zaawansowanymi funkcjami możesz również potrzebować:

using IronXL.Formatting;  // For cell styling
using IronXL.Drawing;     // For images and charts
using System.Data;        // For DataSet/DataTable operations

Jak załadować istniejący plik Excel?

Pliki Excel, znane również jako skoroszyty, składają się z wielu arkuszy, a każdy z nich zawiera wartości komórek. To open and read an Excel file, load it using the WorkBook class's Load method. Funkcjonalność LoadSpreadsheets obsługuje różne formaty.

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
//     WorkBook workbook = WorkBook.Load(stream);
// }

To inicjalizuje skoroszyt jako instancję WorkBook. Aby otworzyć konkretny WorkSheet, pobierz go z kolekcji WorkSheets. Przewodnik Zarządzaj arkuszem dostarcza więcej szczegółów na temat operacji na arkuszach:

// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();

// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0];  // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1");  // By name

To uzyskuje dostęp do pierwszego arkusza w pliku Excel, przygotowanego do odczytu i zapisu.

Arkusz Excel pokazujący dane pracowników z kolumnami dla Imię, Stanowisko i Wynagrodzenie dla 5 pracowników z sformatowanymi nagłówkami i obramowaniami komórek Plik Excel

Jak odczytać dane z komórek Excel?

Po otwarciu pliku Excel jest gotowy do odczytu danych. Odczytywanie danych z plików Excel w C# za pomocą IronXL jest proste. Możesz odczytywać wartości komórek, określając odnośnik do komórki przy użyciu funkcji Wybierz Zakres.

Następujący kod pobiera wartość komórki:

// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;

// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");

// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
    Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}

Oto wynik:

Okno Microsoft Visual Studio Debug Console pokazujące pomyślne wyodrębnienie wartości '100000' z komórki Excel C2 z komunikatem wyjściowym kontekstowym Odczytywanie Excela

Aby odczytać dane z zakresu komórek, użyj pętli do iteracji przez określony zakres. Przykład Wybierz zakres Excel dostarcza więcej wzorców:

// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Read an entire column
foreach (var cell in sheet.GetColumn(0))  // Column A
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine($"Column A value: {cell.Text}");
    }
}

// Read an entire row
foreach (var cell in sheet.GetRow(1))  // Row 2
{
    Console.WriteLine($"Row 2 value: {cell.Text}");
}

Każda wartość w zakresie komórek A2:A6 jest dostępna i drukowana na konsoli.

Microsoft Visual Studio Debug Console z podświetlaniem składni pokazująca wyjście z odczytu zakresu Excel A2:A6, wyświetlająca imiona pracowników John, Sara, Peter, Method, oraz Katherine Odczytywanie zakresu komórek

Dla bardziej szczegółowych przykładów odczytu i zapisu sprawdź Samouczek odczytu pliku Excel w C#. Możesz również konwertować dane Excel na DataTables dla łatwiejszej manipulacji:

// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true);  // true = first row contains headers

// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}

Jak mogę stworzyć nowy plik Excel?

IronXL ułatwia również tworzenie nowych skoroszytów do zapisywania i pobierania danych. Przewodnik "Tworzenie arkuszy kalkulacyjnych" zawiera obszerne przykłady.

Możesz utworzyć nowy plik Excel za pomocą jednej linii kodu:

// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);

// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);

// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";

Następnie utwórz arkusz roboczy i dodaj do niego dane. Aby uzyskać informacje na temat bardziej zaawansowanych wzorców tworzenia, zobacz sekcję Tworzenie nowego pliku Excel.

Jak dodać arkusze do skoroszytu?

// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");

// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");

// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");

Ten kod dodaje do skoroszytu arkusz o nazwie "GDPByCountry", umożliwiający dodawanie wartości do komórek. Dowiedz się więcej o zarządzaniu arkuszami i kopiowaniu arkuszy.

Aby ustawić wartość dla konkretnej komórki, użyj poniższego kodu:

// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";

// Add different types of data
workSheet["A2"].Value = 12345;  // Integer
workSheet["A3"].Value = 99.99m;  // Decimal
workSheet["A4"].Value = DateTime.Now;  // Date
workSheet["A5"].Value = true;  // Boolean

// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";

// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";

// Save the workbook
workBook.SaveAs("output.xlsx");

Ostateczny wynik to:

Arkusz Excel pokazujący komórkę A1 wypełnioną tekstem 'Example' programowo dodanym przy użyciu C#, z widoczną zakładką arkusza GDPByCountry i podświetloną komórką, aby pokazać dodaną wartość Dodaj wartość do komórki

Praca z różnymi formatami plików Excel

IronXL obsługuje wiele formatów Excel. Oto jak postępować z różnymi typami plików:

// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx");  // Convert CSV to XLSX

// Export to different formats
workbook.SaveAsCsv("output.csv", ";");  // CSV with semicolon delimiter
workbook.SaveAsJson("output.json");     // Export as JSON
workbook.SaveAsXml("output.xml");       // Export as XML

Dowiedz się więcej o konwersji typów plików arkuszy kalkulacyjnych oraz konwersji plików XLSX do formatów CSV, JSON i XML.

Obsługa błędów i najlepsze praktyki

Podczas pracy z plikami Excel należy zapewnić odpowiednią obsługę błędów:

try
{
    WorkBook workbook = WorkBook.Load("test.xlsx");
    WorkSheet sheet = workbook.GetWorkSheet("Sheet1");
    
    // Check if sheet exists
    if (sheet == null)
    {
        Console.WriteLine("Worksheet not found!");
        return;
    }
    
    // Process data
    var value = sheet["A1"].Value;
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading Excel file: {ex.Message}");
}

W przypadku aplikacji produkcyjnych warto rozważyć skonfigurowanie logowania i wdrożenie odpowiednich wzorców obsługi błędów.

Czego się nauczyliśmy?

W tym artykułe pokazano, jak otwierać i odczytywać pliki Excel, takie jak XLS i XLSX, w języku C# przy użyciu biblioteki IronXL. IronXL nie wymaga instalacji programu Microsoft Excel w systemie do wykonywania zadań związanych z Excelem, dzięki czemu idealnie nadaje się do wdrożeń w Dockerze i Azure Functions.

IronXL zapewnia kompleksowe rozwiązanie do programowego wykonywania zadań związanych z programem Excel, w tym obliczania formuł, sortowania ciągów znaków, przycinania, wyszukiwania i zamiany, scałania i rozdzielania, zapisywania plików i wielu innych. Można również ustawić formaty danych w komórkach, korzystać z formatowania warunkowego oraz tworzyć wykresy.

Aby poznać zaawansowane funkcje, zapoznaj się z grupowaniem i rozgrupowywaniem, nazwanymi zakresami, hiperłączami oraz zabezpieczaniem plików Excel. Pełna dokumentacja API zawiera szczegółowe informacje na temat wszystkich funkcji.

IronXL jest dostępny w ramach bezpłatnego 30-dniowego okresu próbnego i można uzyskać licencję na jego komercyjne wykorzystanie. Pakiet Lite IronXL zaczyna się od $999. Aby uzyskać dodatkowe zasoby, odwiedź sekcję samouczków lub zapoznaj się z przykładami kodu dla typowych scenariuszy.

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